0s autopkgtest [23:49:15]: starting date and time: 2026-01-30 23:49:15+0000 0s autopkgtest [23:49:15]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [23:49:15]: host juju-7f2275-prod-proposed-migration-environment-20; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.y594ip8t/out --timeout-copy=6000 --needs-internet=try --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:ruamel.yaml --apt-upgrade translate-toolkit --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=ruamel.yaml/0.18.10+ds-1build1 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest-cpu2-ram4-disk20-amd64 --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-20@sto01-2.secgroup --name adt-resolute-amd64-translate-toolkit-20260130-234915-juju-7f2275-prod-proposed-migration-environment-20-06025705-37e3-4006-967b-e925797c3124 --image adt/ubuntu-resolute-amd64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-20 --net-id=net_prod-autopkgtest-workers-amd64 -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 3s Creating nova instance adt-resolute-amd64-translate-toolkit-20260130-234915-juju-7f2275-prod-proposed-migration-environment-20-06025705-37e3-4006-967b-e925797c3124 from image adt/ubuntu-resolute-amd64-server-20260130.img (UUID afba56f8-6ab4-44eb-9e07-036bcbd7054f)... 73s autopkgtest [23:50:28]: testbed dpkg architecture: amd64 73s autopkgtest [23:50:28]: testbed apt version: 3.1.14 73s autopkgtest [23:50:28]: @@@@@@@@@@@@@@@@@@@@ test bed setup 74s autopkgtest [23:50:29]: testbed release detected to be: None 74s autopkgtest [23:50:29]: updating testbed package index (apt update) 75s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 75s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 75s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 75s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 75s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [1187 kB] 76s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [26.6 kB] 76s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [105 kB] 76s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [4676 B] 76s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 Packages [118 kB] 76s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/main i386 Packages [101 kB] 76s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 c-n-f Metadata [4196 B] 76s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/restricted i386 Packages [6164 B] 76s Get:13 http://ftpmaster.internal/ubuntu resolute-proposed/restricted amd64 Packages [20.9 kB] 76s Get:14 http://ftpmaster.internal/ubuntu resolute-proposed/restricted amd64 c-n-f Metadata [388 B] 76s Get:15 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 Packages [963 kB] 76s Get:16 http://ftpmaster.internal/ubuntu resolute-proposed/universe i386 Packages [382 kB] 76s Get:17 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 c-n-f Metadata [26.2 kB] 76s Get:18 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse amd64 Packages [24.0 kB] 76s Get:19 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse i386 Packages [3336 B] 76s Get:20 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse amd64 c-n-f Metadata [1304 B] 77s Fetched 3099 kB in 2s (1668 kB/s) 77s Reading package lists... 78s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 78s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 78s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 78s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 79s Reading package lists... 79s Reading package lists... 79s Building dependency tree... 79s Reading state information... 79s Calculating upgrade... 79s The following packages will be upgraded: 79s 3cpio bzip2 inetutils-telnet libbz2-1.0 libsqlite3-0 rng-tools-debian telnet 79s 7 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 79s Need to get 1234 kB of archives. 79s After this operation, 18.4 kB disk space will be freed. 79s Get:1 http://ftpmaster.internal/ubuntu resolute/universe amd64 rng-tools-debian amd64 2.6build1 [46.1 kB] 79s Get:2 http://ftpmaster.internal/ubuntu resolute/main amd64 bzip2 amd64 1.0.8-6build2 [34.3 kB] 79s Get:3 http://ftpmaster.internal/ubuntu resolute/main amd64 libbz2-1.0 amd64 1.0.8-6build2 [37.0 kB] 79s Get:4 http://ftpmaster.internal/ubuntu resolute/main amd64 libsqlite3-0 amd64 3.46.1-9 [722 kB] 79s Get:5 http://ftpmaster.internal/ubuntu resolute/main amd64 inetutils-telnet amd64 2:2.7-2ubuntu1 [107 kB] 79s Get:6 http://ftpmaster.internal/ubuntu resolute/main amd64 telnet all 0.17+2.7-2ubuntu1 [3636 B] 79s Get:7 http://ftpmaster.internal/ubuntu resolute/main amd64 3cpio amd64 0.13.1-1ubuntu1 [284 kB] 79s dpkg-preconfigure: unable to re-open stdin: No such file or directory 79s Fetched 1234 kB in 0s (5934 kB/s) 80s (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 ... 124211 files and directories currently installed.) 80s Preparing to unpack .../rng-tools-debian_2.6build1_amd64.deb ... 80s Unpacking rng-tools-debian (2.6build1) over (2.6) ... 80s Preparing to unpack .../bzip2_1.0.8-6build2_amd64.deb ... 80s Unpacking bzip2 (1.0.8-6build2) over (1.0.8-6build1) ... 80s Preparing to unpack .../libbz2-1.0_1.0.8-6build2_amd64.deb ... 80s Unpacking libbz2-1.0:amd64 (1.0.8-6build2) over (1.0.8-6build1) ... 80s Setting up libbz2-1.0:amd64 (1.0.8-6build2) ... 80s (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 ... 124211 files and directories currently installed.) 80s Preparing to unpack .../libsqlite3-0_3.46.1-9_amd64.deb ... 80s Unpacking libsqlite3-0:amd64 (3.46.1-9) over (3.46.1-8) ... 80s Preparing to unpack .../inetutils-telnet_2%3a2.7-2ubuntu1_amd64.deb ... 80s Unpacking inetutils-telnet (2:2.7-2ubuntu1) over (2:2.6-4ubuntu1) ... 80s Preparing to unpack .../telnet_0.17+2.7-2ubuntu1_all.deb ... 80s Unpacking telnet (0.17+2.7-2ubuntu1) over (0.17+2.6-4ubuntu1) ... 80s Preparing to unpack .../3cpio_0.13.1-1ubuntu1_amd64.deb ... 80s Unpacking 3cpio (0.13.1-1ubuntu1) over (0.12.0-1ubuntu1) ... 80s Setting up 3cpio (0.13.1-1ubuntu1) ... 80s Setting up libsqlite3-0:amd64 (3.46.1-9) ... 80s Setting up inetutils-telnet (2:2.7-2ubuntu1) ... 80s Setting up bzip2 (1.0.8-6build2) ... 80s Setting up rng-tools-debian (2.6build1) ... 81s Setting up telnet (0.17+2.7-2ubuntu1) ... 81s Processing triggers for man-db (2.13.1-1) ... 81s Processing triggers for libc-bin (2.42-2ubuntu4) ... 81s autopkgtest [23:50:36]: upgrading testbed (apt dist-upgrade and autopurge) 82s Reading package lists... 82s Building dependency tree... 82s Reading state information... 82s Calculating upgrade... 82s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 82s Reading package lists... 82s Building dependency tree... 82s Reading state information... 82s Solving dependencies... 82s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 83s autopkgtest [23:50:38]: rebooting testbed after setup commands that affected boot 111s autopkgtest [23:51:06]: testbed running kernel: Linux 6.18.0-9-generic #9-Ubuntu SMP PREEMPT_DYNAMIC Mon Jan 12 16:49:02 UTC 2026 113s autopkgtest [23:51:08]: @@@@@@@@@@@@@@@@@@@@ apt-source translate-toolkit 115s Get:1 http://ftpmaster.internal/ubuntu resolute/universe translate-toolkit 3.18.1-1 (dsc) [3515 B] 115s Get:2 http://ftpmaster.internal/ubuntu resolute/universe translate-toolkit 3.18.1-1 (tar) [962 kB] 115s Get:3 http://ftpmaster.internal/ubuntu resolute/universe translate-toolkit 3.18.1-1 (diff) [22.7 kB] 115s gpgv: Signature made Sat Jan 24 03:45:51 2026 UTC 115s gpgv: using RSA key 374D8CE4DB96E9CBD4C0972A606D084E4683C079 115s gpgv: Can't check signature: No public key 115s dpkg-source: warning: cannot verify inline signature for ./translate-toolkit_3.18.1-1.dsc: no acceptable signature found 115s autopkgtest [23:51:10]: testing package translate-toolkit version 3.18.1-1 115s autopkgtest [23:51:10]: build not needed 117s autopkgtest [23:51:12]: test translate-toolkit: preparing testbed 117s Reading package lists... 117s Building dependency tree... 117s Reading state information... 117s Solving dependencies... 117s The following NEW packages will be installed: 117s dictionaries-common emacsen-common gettext hunspell-en-us libapr1t64 117s libaprutil1t64 libaspell15 libenchant-2-2 libexttextcat-data libgomp1 117s libhunspell-1.7-0 libserf-1-1 libsvn1 libutf8proc3 libxapian30 libxslt1.1 117s python3-aeidon python3-bs4 python3-charset-normalizer python3-cheroot 117s python3-diff-match-patch python3-enchant python3-iniparse 117s python3-levenshtein python3-lxml python3-mistletoe python3-phply python3-ply 117s python3-pycountry python3-pytz python3-rapidfuzz python3-ruamel.yaml 117s python3-ruamel.yaml.clib python3-soupsieve python3-tomlkit python3-translate 117s python3-unicode-segmentation-rs python3-vobject python3-xapian subversion 117s translate-toolkit 117s 0 upgraded, 41 newly installed, 0 to remove and 0 not upgraded. 117s Need to get 14.1 MB of archives. 117s After this operation, 75.3 MB of additional disk space will be used. 117s Get:1 http://ftpmaster.internal/ubuntu resolute/main amd64 emacsen-common all 3.0.8 [13.9 kB] 117s Get:2 http://ftpmaster.internal/ubuntu resolute/main amd64 dictionaries-common all 1.31.3 [179 kB] 117s Get:3 http://ftpmaster.internal/ubuntu resolute/main amd64 libgomp1 amd64 15.2.0-12ubuntu1 [151 kB] 117s Get:4 http://ftpmaster.internal/ubuntu resolute/main amd64 gettext amd64 0.23.2-1 [1019 kB] 118s Get:5 http://ftpmaster.internal/ubuntu resolute/main amd64 hunspell-en-us all 1:2020.12.07-4build1 [585 kB] 118s Get:6 http://ftpmaster.internal/ubuntu resolute/main amd64 libapr1t64 amd64 1.7.6-3 [109 kB] 118s Get:7 http://ftpmaster.internal/ubuntu resolute/main amd64 libaprutil1t64 amd64 1.6.3-3ubuntu3 [93.8 kB] 118s Get:8 http://ftpmaster.internal/ubuntu resolute/main amd64 libaspell15 amd64 0.60.8.2-1 [333 kB] 118s Get:9 http://ftpmaster.internal/ubuntu resolute/main amd64 libhunspell-1.7-0 amd64 1.7.2+really1.7.2-11 [316 kB] 118s Get:10 http://ftpmaster.internal/ubuntu resolute/main amd64 libenchant-2-2 amd64 2.8.2+dfsg1-3build1 [59.2 kB] 118s Get:11 http://ftpmaster.internal/ubuntu resolute/main amd64 libexttextcat-data all 3.4.7-1ubuntu2 [193 kB] 118s Get:12 http://ftpmaster.internal/ubuntu resolute/universe amd64 libserf-1-1 amd64 1.3.10-3ubuntu1 [48.2 kB] 118s Get:13 http://ftpmaster.internal/ubuntu resolute/universe amd64 libutf8proc3 amd64 2.10.0-2 [71.6 kB] 118s Get:14 http://ftpmaster.internal/ubuntu resolute/universe amd64 libsvn1 amd64 1.14.5-5 [1360 kB] 118s Get:15 http://ftpmaster.internal/ubuntu resolute/universe amd64 libxapian30 amd64 1.4.29-3 [740 kB] 118s Get:16 http://ftpmaster.internal/ubuntu resolute/main amd64 libxslt1.1 amd64 1.1.43-0.3 [172 kB] 118s Get:17 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-aeidon all 1.15-2build1 [225 kB] 118s Get:18 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-soupsieve all 2.8.3-1 [34.0 kB] 118s Get:19 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-bs4 all 4.14.3-2build1 [84.8 kB] 118s Get:20 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-charset-normalizer amd64 3.4.4-2 [173 kB] 118s Get:21 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-cheroot all 11.1.2+ds1-1 [81.5 kB] 118s Get:22 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-diff-match-patch all 20241021-1 [33.6 kB] 118s Get:23 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-enchant all 3.3.0-1 [35.0 kB] 118s Get:24 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-rapidfuzz amd64 3.12.2+ds-1build1 [2746 kB] 118s Get:25 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-levenshtein amd64 0.27.1-2build1 [145 kB] 118s Get:26 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-lxml amd64 6.0.2-1 [2333 kB] 118s Get:27 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-mistletoe all 1.5.1-1 [41.7 kB] 118s Get:28 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-ply all 3.11-10 [45.9 kB] 118s Get:29 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-phply all 1.2.6-1build1 [50.6 kB] 118s Get:30 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pytz all 2025.2-5 [32.4 kB] 118s Get:31 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-ruamel.yaml.clib amd64 0.2.15+ds-1 [200 kB] 118s Get:32 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 python3-ruamel.yaml all 0.18.10+ds-1build1 [127 kB] 118s Get:33 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-tomlkit all 0.13.3-2 [39.1 kB] 118s Get:34 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-translate all 3.18.1-1 [339 kB] 118s Get:35 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-unicode-segmentation-rs amd64 0.2.1-1 [225 kB] 118s Get:36 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-vobject all 0.9.9+dfsg-1 [41.5 kB] 118s Get:37 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-xapian amd64 1.4.29-1build1 [588 kB] 118s Get:38 http://ftpmaster.internal/ubuntu resolute/universe amd64 subversion amd64 1.14.5-5 [900 kB] 118s Get:39 http://ftpmaster.internal/ubuntu resolute/universe amd64 translate-toolkit all 3.18.1-1 [83.7 kB] 118s Get:40 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-iniparse all 0.5.1-2 [21.4 kB] 118s Get:41 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pycountry all 24.6.1+ds1-1 [30.0 kB] 119s Preconfiguring packages ... 119s Fetched 14.1 MB in 1s (11.6 MB/s) 119s Selecting previously unselected package emacsen-common. 119s (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 ... 124211 files and directories currently installed.) 119s Preparing to unpack .../00-emacsen-common_3.0.8_all.deb ... 119s Unpacking emacsen-common (3.0.8) ... 119s Selecting previously unselected package dictionaries-common. 119s Preparing to unpack .../01-dictionaries-common_1.31.3_all.deb ... 119s Adding 'diversion of /usr/share/dict/words to /usr/share/dict/words.pre-dictionaries-common by dictionaries-common' 119s Unpacking dictionaries-common (1.31.3) ... 119s Selecting previously unselected package libgomp1:amd64. 119s Preparing to unpack .../02-libgomp1_15.2.0-12ubuntu1_amd64.deb ... 119s Unpacking libgomp1:amd64 (15.2.0-12ubuntu1) ... 119s Selecting previously unselected package gettext. 119s Preparing to unpack .../03-gettext_0.23.2-1_amd64.deb ... 119s Unpacking gettext (0.23.2-1) ... 119s Selecting previously unselected package hunspell-en-us. 119s Preparing to unpack .../04-hunspell-en-us_1%3a2020.12.07-4build1_all.deb ... 119s Unpacking hunspell-en-us (1:2020.12.07-4build1) ... 119s Selecting previously unselected package libapr1t64:amd64. 119s Preparing to unpack .../05-libapr1t64_1.7.6-3_amd64.deb ... 119s Unpacking libapr1t64:amd64 (1.7.6-3) ... 119s Selecting previously unselected package libaprutil1t64:amd64. 119s Preparing to unpack .../06-libaprutil1t64_1.6.3-3ubuntu3_amd64.deb ... 119s Unpacking libaprutil1t64:amd64 (1.6.3-3ubuntu3) ... 119s Selecting previously unselected package libaspell15:amd64. 119s Preparing to unpack .../07-libaspell15_0.60.8.2-1_amd64.deb ... 119s Unpacking libaspell15:amd64 (0.60.8.2-1) ... 119s Selecting previously unselected package libhunspell-1.7-0:amd64. 119s Preparing to unpack .../08-libhunspell-1.7-0_1.7.2+really1.7.2-11_amd64.deb ... 119s Unpacking libhunspell-1.7-0:amd64 (1.7.2+really1.7.2-11) ... 119s Selecting previously unselected package libenchant-2-2:amd64. 119s Preparing to unpack .../09-libenchant-2-2_2.8.2+dfsg1-3build1_amd64.deb ... 119s Unpacking libenchant-2-2:amd64 (2.8.2+dfsg1-3build1) ... 119s Selecting previously unselected package libexttextcat-data. 119s Preparing to unpack .../10-libexttextcat-data_3.4.7-1ubuntu2_all.deb ... 119s Unpacking libexttextcat-data (3.4.7-1ubuntu2) ... 119s Selecting previously unselected package libserf-1-1:amd64. 119s Preparing to unpack .../11-libserf-1-1_1.3.10-3ubuntu1_amd64.deb ... 119s Unpacking libserf-1-1:amd64 (1.3.10-3ubuntu1) ... 119s Selecting previously unselected package libutf8proc3:amd64. 119s Preparing to unpack .../12-libutf8proc3_2.10.0-2_amd64.deb ... 119s Unpacking libutf8proc3:amd64 (2.10.0-2) ... 119s Selecting previously unselected package libsvn1:amd64. 119s Preparing to unpack .../13-libsvn1_1.14.5-5_amd64.deb ... 119s Unpacking libsvn1:amd64 (1.14.5-5) ... 119s Selecting previously unselected package libxapian30:amd64. 119s Preparing to unpack .../14-libxapian30_1.4.29-3_amd64.deb ... 119s Unpacking libxapian30:amd64 (1.4.29-3) ... 119s Selecting previously unselected package libxslt1.1:amd64. 119s Preparing to unpack .../15-libxslt1.1_1.1.43-0.3_amd64.deb ... 119s Unpacking libxslt1.1:amd64 (1.1.43-0.3) ... 119s Selecting previously unselected package python3-aeidon. 119s Preparing to unpack .../16-python3-aeidon_1.15-2build1_all.deb ... 119s Unpacking python3-aeidon (1.15-2build1) ... 119s Selecting previously unselected package python3-soupsieve. 119s Preparing to unpack .../17-python3-soupsieve_2.8.3-1_all.deb ... 119s Unpacking python3-soupsieve (2.8.3-1) ... 119s Selecting previously unselected package python3-bs4. 119s Preparing to unpack .../18-python3-bs4_4.14.3-2build1_all.deb ... 119s Unpacking python3-bs4 (4.14.3-2build1) ... 119s Selecting previously unselected package python3-charset-normalizer. 119s Preparing to unpack .../19-python3-charset-normalizer_3.4.4-2_amd64.deb ... 119s Unpacking python3-charset-normalizer (3.4.4-2) ... 119s Selecting previously unselected package python3-cheroot. 119s Preparing to unpack .../20-python3-cheroot_11.1.2+ds1-1_all.deb ... 119s Unpacking python3-cheroot (11.1.2+ds1-1) ... 119s Selecting previously unselected package python3-diff-match-patch. 119s Preparing to unpack .../21-python3-diff-match-patch_20241021-1_all.deb ... 119s Unpacking python3-diff-match-patch (20241021-1) ... 119s Selecting previously unselected package python3-enchant. 119s Preparing to unpack .../22-python3-enchant_3.3.0-1_all.deb ... 119s Unpacking python3-enchant (3.3.0-1) ... 119s Selecting previously unselected package python3-rapidfuzz. 119s Preparing to unpack .../23-python3-rapidfuzz_3.12.2+ds-1build1_amd64.deb ... 119s Unpacking python3-rapidfuzz (3.12.2+ds-1build1) ... 119s Selecting previously unselected package python3-levenshtein. 119s Preparing to unpack .../24-python3-levenshtein_0.27.1-2build1_amd64.deb ... 119s Unpacking python3-levenshtein (0.27.1-2build1) ... 119s Selecting previously unselected package python3-lxml:amd64. 119s Preparing to unpack .../25-python3-lxml_6.0.2-1_amd64.deb ... 119s Unpacking python3-lxml:amd64 (6.0.2-1) ... 119s Selecting previously unselected package python3-mistletoe. 119s Preparing to unpack .../26-python3-mistletoe_1.5.1-1_all.deb ... 119s Unpacking python3-mistletoe (1.5.1-1) ... 119s Selecting previously unselected package python3-ply. 119s Preparing to unpack .../27-python3-ply_3.11-10_all.deb ... 119s Unpacking python3-ply (3.11-10) ... 119s Selecting previously unselected package python3-phply. 119s Preparing to unpack .../28-python3-phply_1.2.6-1build1_all.deb ... 119s Unpacking python3-phply (1.2.6-1build1) ... 119s Selecting previously unselected package python3-pytz. 119s Preparing to unpack .../29-python3-pytz_2025.2-5_all.deb ... 119s Unpacking python3-pytz (2025.2-5) ... 119s Selecting previously unselected package python3-ruamel.yaml.clib. 119s Preparing to unpack .../30-python3-ruamel.yaml.clib_0.2.15+ds-1_amd64.deb ... 119s Unpacking python3-ruamel.yaml.clib (0.2.15+ds-1) ... 119s Selecting previously unselected package python3-ruamel.yaml. 119s Preparing to unpack .../31-python3-ruamel.yaml_0.18.10+ds-1build1_all.deb ... 119s Unpacking python3-ruamel.yaml (0.18.10+ds-1build1) ... 120s Selecting previously unselected package python3-tomlkit. 120s Preparing to unpack .../32-python3-tomlkit_0.13.3-2_all.deb ... 120s Unpacking python3-tomlkit (0.13.3-2) ... 120s Selecting previously unselected package python3-translate. 120s Preparing to unpack .../33-python3-translate_3.18.1-1_all.deb ... 120s Unpacking python3-translate (3.18.1-1) ... 120s Selecting previously unselected package python3-unicode-segmentation-rs. 120s Preparing to unpack .../34-python3-unicode-segmentation-rs_0.2.1-1_amd64.deb ... 120s Unpacking python3-unicode-segmentation-rs (0.2.1-1) ... 120s Selecting previously unselected package python3-vobject. 120s Preparing to unpack .../35-python3-vobject_0.9.9+dfsg-1_all.deb ... 120s Unpacking python3-vobject (0.9.9+dfsg-1) ... 120s Selecting previously unselected package python3-xapian. 120s Preparing to unpack .../36-python3-xapian_1.4.29-1build1_amd64.deb ... 120s Unpacking python3-xapian (1.4.29-1build1) ... 120s Selecting previously unselected package subversion. 120s Preparing to unpack .../37-subversion_1.14.5-5_amd64.deb ... 120s Unpacking subversion (1.14.5-5) ... 120s Selecting previously unselected package translate-toolkit. 120s Preparing to unpack .../38-translate-toolkit_3.18.1-1_all.deb ... 120s Unpacking translate-toolkit (3.18.1-1) ... 120s Selecting previously unselected package python3-iniparse. 120s Preparing to unpack .../39-python3-iniparse_0.5.1-2_all.deb ... 120s Unpacking python3-iniparse (0.5.1-2) ... 120s Selecting previously unselected package python3-pycountry. 120s Preparing to unpack .../40-python3-pycountry_24.6.1+ds1-1_all.deb ... 120s Unpacking python3-pycountry (24.6.1+ds1-1) ... 120s Setting up libxapian30:amd64 (1.4.29-3) ... 120s Setting up python3-rapidfuzz (3.12.2+ds-1build1) ... 120s Setting up python3-diff-match-patch (20241021-1) ... 120s Setting up python3-aeidon (1.15-2build1) ... 120s Setting up libutf8proc3:amd64 (2.10.0-2) ... 120s Setting up libaspell15:amd64 (0.60.8.2-1) ... 120s Setting up python3-charset-normalizer (3.4.4-2) ... 120s Setting up python3-ply (3.11-10) ... 120s Setting up python3-ruamel.yaml.clib (0.2.15+ds-1) ... 120s Setting up python3-pytz (2025.2-5) ... 120s Setting up python3-unicode-segmentation-rs (0.2.1-1) ... 120s Setting up libgomp1:amd64 (15.2.0-12ubuntu1) ... 120s Setting up emacsen-common (3.0.8) ... 120s Setting up python3-cheroot (11.1.2+ds1-1) ... 120s Setting up python3-pycountry (24.6.1+ds1-1) ... 120s Setting up python3-xapian (1.4.29-1build1) ... 121s Setting up python3-ruamel.yaml (0.18.10+ds-1build1) ... 121s Setting up python3-mistletoe (1.5.1-1) ... 121s Setting up libexttextcat-data (3.4.7-1ubuntu2) ... 121s Setting up libapr1t64:amd64 (1.7.6-3) ... 121s Setting up libxslt1.1:amd64 (1.1.43-0.3) ... 121s Setting up python3-levenshtein (0.27.1-2build1) ... 121s Setting up libhunspell-1.7-0:amd64 (1.7.2+really1.7.2-11) ... 121s Setting up python3-tomlkit (0.13.3-2) ... 121s Setting up python3-soupsieve (2.8.3-1) ... 121s Setting up python3-iniparse (0.5.1-2) ... 121s Setting up libaprutil1t64:amd64 (1.6.3-3ubuntu3) ... 121s Setting up python3-vobject (0.9.9+dfsg-1) ... 121s Setting up gettext (0.23.2-1) ... 121s Setting up python3-phply (1.2.6-1build1) ... 121s Setting up dictionaries-common (1.31.3) ... 121s Setting up libserf-1-1:amd64 (1.3.10-3ubuntu1) ... 121s Setting up python3-bs4 (4.14.3-2build1) ... 122s Setting up python3-lxml:amd64 (6.0.2-1) ... 122s Setting up hunspell-en-us (1:2020.12.07-4build1) ... 122s Setting up libsvn1:amd64 (1.14.5-5) ... 122s Setting up libenchant-2-2:amd64 (2.8.2+dfsg1-3build1) ... 122s Setting up subversion (1.14.5-5) ... 122s Setting up python3-enchant (3.3.0-1) ... 122s Setting up python3-translate (3.18.1-1) ... 122s Setting up translate-toolkit (3.18.1-1) ... 122s Processing triggers for libc-bin (2.42-2ubuntu4) ... 122s Processing triggers for man-db (2.13.1-1) ... 123s Processing triggers for install-info (7.2-5) ... 123s Processing triggers for dictionaries-common (1.31.3) ... 124s autopkgtest [23:51:19]: test translate-toolkit: [----------------------- 124s ========= SMOKE TEST: /usr/bin/android2po =========== 124s Usage: android2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 124s 124s Convert Android string files to Gettext PO localization files. See: 124s http://docs.translatehouse.org/projects/translate- 124s toolkit/en/latest/commands/android2po.html for examples and usage 124s instructions. 124s 124s Options: 124s --version show program's version number and exit 124s -h, --help show this help message and exit 124s --manpage output a manpage based on the help 124s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 124s --errorlevel=ERRORLEVEL 124s show errorlevel as: none, message, exception, 124s traceback 124s -i INPUT, --input=INPUT 124s read from INPUT in xml format 124s -x EXCLUDE, --exclude=EXCLUDE 124s exclude names matching EXCLUDE from input paths 124s -o OUTPUT, --output=OUTPUT 124s write to OUTPUT in po, pot formats 124s -t TEMPLATE, --template=TEMPLATE 124s read from TEMPLATE in xml format 124s -S, --timestamp skip conversion if the output file has newer timestamp 124s --duplicates=DUPLICATESTYLE 124s what to do with duplicate strings (identical source 124s text): merge, msgctxt (default: 'msgctxt') 124s ========= SMOKE TEST: /usr/bin/build_tmdb =========== 124s usage: build_tmdb [-h] [-d TMDB_FILE] [-s SOURCE_LANG] -t TARGET_LANG 124s input files [input files ...] 124s 124s positional arguments: 124s input files 124s 124s options: 124s -h, --help show this help message and exit 124s -d, --tmdb TMDB_FILE translation memory database file (default: tm.db) 124s -s, --import-source-lang SOURCE_LANG 124s source language of translation files (default: en) 124s -t, --import-target-lang TARGET_LANG 124s target language of translation files 124s ========= SMOKE TEST: /usr/bin/csv2po =========== 124s 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] 124s 124s Convert Comma-Separated Value (.csv) files to Gettext PO localization files. 124s See: http://docs.translatehouse.org/projects/translate- 124s toolkit/en/latest/commands/csv2po.html for examples and usage instructions. 124s 124s Options: 124s --version show program's version number and exit 124s -h, --help show this help message and exit 124s --manpage output a manpage based on the help 124s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 124s --errorlevel=ERRORLEVEL 124s show errorlevel as: none, message, exception, 124s traceback 124s -i INPUT, --input=INPUT 124s read from INPUT in csv format 124s -x EXCLUDE, --exclude=EXCLUDE 124s exclude names matching EXCLUDE from input paths 124s -o OUTPUT, --output=OUTPUT 124s write to OUTPUT in po, pot formats 124s -t TEMPLATE, --template=TEMPLATE 124s read from TEMPLATE in po, pot, pot formats 124s -S, --timestamp skip conversion if the output file has newer timestamp 124s -P, --pot output PO Templates (.pot) rather than PO files (.po) 124s --charset=CHARSET set charset to decode from csv files 124s --columnorder=COLUMNORDER 124s specify the order and position of columns 124s (location,source,target,context) 124s --duplicates=DUPLICATESTYLE 124s what to do with duplicate strings (identical source 124s text): merge, msgctxt (default: 'msgctxt') 124s ========= SMOKE TEST: /usr/bin/csv2tbx =========== 124s Usage: csv2tbx [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 124s 124s Convert Comma-Separated Value (.csv) files to a TermBase eXchange (.tbx) 124s glossary file. See: http://docs.translatehouse.org/projects/translate- 124s toolkit/en/latest/commands/csv2tbx.html for examples and usage instructions 124s 124s Options: 124s --version show program's version number and exit 124s -h, --help show this help message and exit 124s --manpage output a manpage based on the help 124s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 124s --errorlevel=ERRORLEVEL 124s show errorlevel as: none, message, exception, 124s traceback 124s -i INPUT, --input=INPUT 124s read from INPUT in csv format 124s -x EXCLUDE, --exclude=EXCLUDE 124s exclude names matching EXCLUDE from input paths 124s -o OUTPUT, --output=OUTPUT 124s write to OUTPUT in tbx format 124s -S, --timestamp skip conversion if the output file has newer timestamp 124s --charset=CHARSET set charset to decode from csv files 124s --columnorder=COLUMNORDER 124s specify the order and position of columns 124s (comment,source,target) 124s ========= SMOKE TEST: /usr/bin/dtd2po =========== 124s 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] 124s 124s Convert a Mozilla .dtd UTF-8 localization format to a Gettext PO localization 124s file. Uses the po and dtd modules, and the dtd2po convertor class which is in 124s this module You can convert back to .dtd using po2dtd.py. 124s 124s Options: 124s --version show program's version number and exit 124s -h, --help show this help message and exit 124s --manpage output a manpage based on the help 124s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 124s --errorlevel=ERRORLEVEL 124s show errorlevel as: none, message, exception, 124s traceback 124s -i INPUT, --input=INPUT 124s read from INPUT in dtd format 124s -x EXCLUDE, --exclude=EXCLUDE 124s exclude names matching EXCLUDE from input paths 124s -o OUTPUT, --output=OUTPUT 124s write to OUTPUT in po, pot formats 124s -t TEMPLATE, --template=TEMPLATE 124s read from TEMPLATE in dtd format 124s -S, --timestamp skip conversion if the output file has newer timestamp 124s -P, --pot output PO Templates (.pot) rather than PO files (.po) 124s --duplicates=DUPLICATESTYLE 124s what to do with duplicate strings (identical source 124s text): merge, msgctxt (default: 'msgctxt') 124s ========= SMOKE TEST: /usr/bin/flatxml2po =========== 124s Usage: flatxml2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 124s 124s Convert flat XML files to Gettext PO localization files. See: 124s http://docs.translatehouse.org/projects/translate- 124s toolkit/en/latest/commands/flatxml2po.html for examples and usage 124s instructions. 124s 124s Options: 124s --version show program's version number and exit 124s -h, --help show this help message and exit 124s --manpage output a manpage based on the help 124s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 124s --errorlevel=ERRORLEVEL 124s show errorlevel as: none, message, exception, 124s traceback 124s -i INPUT, --input=INPUT 124s read from INPUT in xml format 124s -x EXCLUDE, --exclude=EXCLUDE 124s exclude names matching EXCLUDE from input paths 124s -o OUTPUT, --output=OUTPUT 124s write to OUTPUT in po, pot formats 124s -S, --timestamp skip conversion if the output file has newer timestamp 124s -r ROOT, --root=ROOT name of the XML root element (default: "root") 124s -v VALUE, --value=VALUE 124s name of the XML value element (default: "str") 124s -k KEY, --key=KEY name of the XML key attribute (default: "key") 124s -n NS, --namespace=NS 124s XML namespace uri (default: None) 124s ========= SMOKE TEST: /usr/bin/html2po =========== 125s Usage: html2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 125s 125s Convert HTML files to Gettext PO localization files. See: 125s http://docs.translatehouse.org/projects/translate- 125s toolkit/en/latest/commands/html2po.html for examples and usage instructions. 125s 125s Options: 125s --version show program's version number and exit 125s -h, --help show this help message and exit 125s --manpage output a manpage based on the help 125s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 125s --errorlevel=ERRORLEVEL 125s show errorlevel as: none, message, exception, 125s traceback 125s -i INPUT, --input=INPUT 125s read from INPUT in htm, html, xhtml formats 125s -x EXCLUDE, --exclude=EXCLUDE 125s exclude names matching EXCLUDE from input paths 125s -o OUTPUT, --output=OUTPUT 125s write to OUTPUT in po, pot formats 125s -S, --timestamp skip conversion if the output file has newer timestamp 125s -P, --pot output PO Templates (.pot) rather than PO files (.po) 125s --keepcomments preserve html comments as translation notes in the 125s output 125s --duplicates=DUPLICATESTYLE 125s what to do with duplicate strings (identical source 125s text): merge, msgctxt (default: 'msgctxt') 125s --multifile=MULTIFILESTYLE 125s how to split po/pot files (single, toplevel or 125s onefile) 125s ========= SMOKE TEST: /usr/bin/ical2po =========== 125s 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] 125s 125s Convert iCalendar files to Gettext PO localization files. See: 125s http://docs.translatehouse.org/projects/translate- 125s toolkit/en/latest/commands/ical2po.html for examples and usage instructions. 125s 125s Options: 125s --version show program's version number and exit 125s -h, --help show this help message and exit 125s --manpage output a manpage based on the help 125s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 125s --errorlevel=ERRORLEVEL 125s show errorlevel as: none, message, exception, 125s traceback 125s -i INPUT, --input=INPUT 125s read from INPUT in ics format 125s -x EXCLUDE, --exclude=EXCLUDE 125s exclude names matching EXCLUDE from input paths 125s -o OUTPUT, --output=OUTPUT 125s write to OUTPUT in po, pot formats 125s -t TEMPLATE, --template=TEMPLATE 125s read from TEMPLATE in ics format 125s -S, --timestamp skip conversion if the output file has newer timestamp 125s -P, --pot output PO Templates (.pot) rather than PO files (.po) 125s --duplicates=DUPLICATESTYLE 125s what to do with duplicate strings (identical source 125s text): merge, msgctxt (default: 'msgctxt') 125s ========= SMOKE TEST: /usr/bin/idml2po =========== 125s Usage: idml2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 125s 125s Convert IDML files to PO localization files. 125s 125s Options: 125s --version show program's version number and exit 125s -h, --help show this help message and exit 125s --manpage output a manpage based on the help 125s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 125s --errorlevel=ERRORLEVEL 125s show errorlevel as: none, message, exception, 125s traceback 125s -i INPUT, --input=INPUT 125s read from INPUT in idml format 125s -x EXCLUDE, --exclude=EXCLUDE 125s exclude names matching EXCLUDE from input paths 125s -o OUTPUT, --output=OUTPUT 125s write to OUTPUT in po, pot formats 125s -S, --timestamp skip conversion if the output file has newer timestamp 125s ========= SMOKE TEST: /usr/bin/ini2po =========== 125s 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] 125s 125s Convert .ini files to Gettext PO localization files. See: 125s http://docs.translatehouse.org/projects/translate- 125s toolkit/en/latest/commands/ini2po.html for examples and usage instructions. 125s 125s Options: 125s --version show program's version number and exit 125s -h, --help show this help message and exit 125s --manpage output a manpage based on the help 125s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 125s --errorlevel=ERRORLEVEL 125s show errorlevel as: none, message, exception, 125s traceback 125s -i INPUT, --input=INPUT 125s read from INPUT in ini, isl, iss formats 125s -x EXCLUDE, --exclude=EXCLUDE 125s exclude names matching EXCLUDE from input paths 125s -o OUTPUT, --output=OUTPUT 125s write to OUTPUT in po, pot formats 125s -t TEMPLATE, --template=TEMPLATE 125s read from TEMPLATE in ini, isl, iss formats 125s -S, --timestamp skip conversion if the output file has newer timestamp 125s -P, --pot output PO Templates (.pot) rather than PO files (.po) 125s --duplicates=DUPLICATESTYLE 125s what to do with duplicate strings (identical source 125s text): merge, msgctxt (default: 'msgctxt') 125s ========= SMOKE TEST: /usr/bin/json2po =========== 125s 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] 125s 125s Convert JSON files to Gettext PO localization files. See: 125s http://docs.translatehouse.org/projects/translate- 125s toolkit/en/latest/commands/json2po.html for examples and usage instructions. 125s 125s Options: 125s --version show program's version number and exit 125s -h, --help show this help message and exit 125s --manpage output a manpage based on the help 125s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 125s --errorlevel=ERRORLEVEL 125s show errorlevel as: none, message, exception, 125s traceback 125s -i INPUT, --input=INPUT 125s read from INPUT in json format 125s -x EXCLUDE, --exclude=EXCLUDE 125s exclude names matching EXCLUDE from input paths 125s -o OUTPUT, --output=OUTPUT 125s write to OUTPUT in po, pot formats 125s -t TEMPLATE, --template=TEMPLATE 125s read from TEMPLATE in json format 125s -S, --timestamp skip conversion if the output file has newer timestamp 125s -P, --pot output PO Templates (.pot) rather than PO files (.po) 125s --filter=FILTER leaves to extract e.g. 'name,desc': (default: extract 125s everything) 125s --duplicates=DUPLICATESTYLE 125s what to do with duplicate strings (identical source 125s text): merge, msgctxt (default: 'msgctxt') 125s ========= SMOKE TEST: /usr/bin/md2po =========== 125s Usage: md2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 125s 125s Convert Markdown files to Gettext PO localization files. See: 125s http://docs.translatehouse.org/projects/translate- 125s toolkit/en/latest/commands/md2po.html for examples and usage instructions. 125s 125s Options: 125s --version show program's version number and exit 125s -h, --help show this help message and exit 125s --manpage output a manpage based on the help 125s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 125s --errorlevel=ERRORLEVEL 125s show errorlevel as: none, message, exception, 125s traceback 125s -i INPUT, --input=INPUT 125s read from INPUT in markdown, md, text, txt formats 125s -x EXCLUDE, --exclude=EXCLUDE 125s exclude names matching EXCLUDE from input paths 125s -o OUTPUT, --output=OUTPUT 125s write to OUTPUT in po, pot formats 125s -S, --timestamp skip conversion if the output file has newer timestamp 125s -P, --pot output PO Templates (.pot) rather than PO files (.po) 125s --duplicates=DUPLICATESTYLE 125s what to do with duplicate strings (identical source 125s text): merge, msgctxt (default: 'msgctxt') 125s --multifile=MULTIFILESTYLE 125s how to split po/pot files (single, toplevel or 125s onefile) 125s ========= SMOKE TEST: /usr/bin/moz2po =========== 125s 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] 125s 125s Convert Mozilla .dtd and .properties files to Gettext PO localization files. 125s See: http://docs.translatehouse.org/projects/translate- 125s toolkit/en/latest/commands/moz2po.html for examples and usage instructions. 125s 125s Options: 125s --version show program's version number and exit 125s -h, --help show this help message and exit 125s --manpage output a manpage based on the help 125s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 125s --errorlevel=ERRORLEVEL 125s show errorlevel as: none, message, exception, 125s traceback 125s -i INPUT, --input=INPUT 125s read from INPUT in *, dtd, inc, ini, it, js, lang, 125s manifest, properties, rdf formats 125s -x EXCLUDE, --exclude=EXCLUDE 125s exclude names matching EXCLUDE from input paths 125s -o OUTPUT, --output=OUTPUT 125s write to OUTPUT in *, dtd.po, dtd.pot, inc.po, 125s inc.pot, ini.po, ini.pot, it.po, it.pot, js, lang.po, 125s lang.pot, manifest, properties.po, properties.pot, rdf 125s formats 125s -t TEMPLATE, --template=TEMPLATE 125s read from TEMPLATE in *, dtd, inc, ini, it, js, lang, 125s manifest, properties, rdf formats 125s -S, --timestamp skip conversion if the output file has newer timestamp 125s -P, --pot output PO Templates (.pot) rather than PO files (.po) 125s --duplicates=DUPLICATESTYLE 125s what to do with duplicate strings (identical source 125s text): merge, msgctxt (default: 'msgctxt') 126s ========= SMOKE TEST: /usr/bin/mozlang2po =========== 126s Usage: mozlang2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 126s 126s Convert Mozilla .lang files to Gettext PO localization files. 126s 126s Options: 126s --version show program's version number and exit 126s -h, --help show this help message and exit 126s --manpage output a manpage based on the help 126s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 126s --errorlevel=ERRORLEVEL 126s show errorlevel as: none, message, exception, 126s traceback 126s -i INPUT, --input=INPUT 126s read from INPUT in lang format 126s -x EXCLUDE, --exclude=EXCLUDE 126s exclude names matching EXCLUDE from input paths 126s -o OUTPUT, --output=OUTPUT 126s write to OUTPUT in po, pot formats 126s -S, --timestamp skip conversion if the output file has newer timestamp 126s -P, --pot output PO Templates (.pot) rather than PO files (.po) 126s --encoding=ENCODING The encoding of the input file (default: UTF-8) 126s --duplicates=DUPLICATESTYLE 126s what to do with duplicate strings (identical source 126s text): merge, msgctxt (default: 'msgctxt') 126s ========= SMOKE TEST: /usr/bin/msghack =========== 126s Usage: /usr/bin/msghack [OPTION] file.po [ref.po] 126s This program can be used to alter .po files in ways no sane mind would think about. 126s -o result will be written to FILE 126s --invert invert a po file by switching msgid and msgstr 126s --master join any number of files in a master-formatted catalog 126s --empty empty the contents of the .po file, creating a .pot 126s --append append entries from ref.po that don't exist in file.po 126s 126s Note: It is just a replacement of msghack for backward support. 126s 126s ========= SMOKE TEST: /usr/bin/odf2xliff =========== 126s Usage: odf2xliff [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 126s 126s Convert OpenDocument (ODF) files to XLIFF localization files. See: 126s http://docs.translatehouse.org/projects/translate- 126s toolkit/en/latest/commands/odf2xliff.html for examples and usage instructions. 126s 126s Options: 126s --version show program's version number and exit 126s -h, --help show this help message and exit 126s --manpage output a manpage based on the help 126s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 126s --errorlevel=ERRORLEVEL 126s show errorlevel as: none, message, exception, 126s traceback 126s -i INPUT, --input=INPUT 126s read from INPUT in odc, odf, odg, odi, odm, odp, ods, 126s odt, otc, otf, otg, oth, oti, otp, ots, ott, sxw 126s formats 126s -x EXCLUDE, --exclude=EXCLUDE 126s exclude names matching EXCLUDE from input paths 126s -o OUTPUT, --output=OUTPUT 126s write to OUTPUT in xlf, xliff formats 126s -S, --timestamp skip conversion if the output file has newer timestamp 126s ========= SMOKE TEST: /usr/bin/oo2po =========== 126s Usage: oo2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 126s 126s Convert an OpenOffice.org (SDF) localization file to Gettext PO localization 126s files. See: http://docs.translatehouse.org/projects/translate- 126s toolkit/en/latest/commands/oo2po.html for examples and usage instructions. 126s 126s Options: 126s --version show program's version number and exit 126s -h, --help show this help message and exit 126s --manpage output a manpage based on the help 126s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 126s --errorlevel=ERRORLEVEL 126s show errorlevel as: none, message, exception, 126s traceback 126s -i INPUT, --input=INPUT 126s read from INPUT in oo, sdf formats 126s -x EXCLUDE, --exclude=EXCLUDE 126s exclude names matching EXCLUDE from input paths 126s -o OUTPUT, --output=OUTPUT 126s write to OUTPUT in po, pot formats 126s -S, --timestamp skip conversion if the output file has newer timestamp 126s -P, --pot output PO Templates (.pot) rather than PO files (.po) 126s -l LANG, --language=LANG 126s set target language to extract from oo file (e.g. af- 126s ZA) 126s --source-language=LANG 126s set source language code (default en-US) 126s --nonrecursiveinput don't treat the input oo as a recursive store 126s --duplicates=DUPLICATESTYLE 126s what to do with duplicate strings (identical source 126s text): merge, msgctxt (default: 'msgctxt') 126s --multifile=MULTIFILESTYLE 126s how to split po/pot files (single, toplevel or 126s onefile) 126s ========= SMOKE TEST: /usr/bin/oo2xliff =========== 126s Usage: oo2xliff [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 126s 126s Convert an OpenOffice.org (SDF) localization file to XLIFF localization 126s files. See: http://docs.translatehouse.org/projects/translate- 126s toolkit/en/latest/commands/oo2po.html for examples and usage instructions. 126s 126s Options: 126s --version show program's version number and exit 126s -h, --help show this help message and exit 126s --manpage output a manpage based on the help 126s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 126s --errorlevel=ERRORLEVEL 126s show errorlevel as: none, message, exception, 126s traceback 126s -i INPUT, --input=INPUT 126s read from INPUT in oo, sdf formats 126s -x EXCLUDE, --exclude=EXCLUDE 126s exclude names matching EXCLUDE from input paths 126s -o OUTPUT, --output=OUTPUT 126s write to OUTPUT in xlf, xliff formats 126s -S, --timestamp skip conversion if the output file has newer timestamp 126s -l LANG, --language=LANG 126s set target language to extract from oo file (e.g. af- 126s ZA) 126s --source-language=LANG 126s set source language code (default en-US) 126s --nonrecursiveinput don't treat the input oo as a recursive store 126s --duplicates=DUPLICATESTYLE 126s what to do with duplicate strings (identical source 126s text): merge, msgctxt (default: 'msgctxt') 126s --multifile=MULTIFILESTYLE 126s how to split po/pot files (single, toplevel or 126s onefile) 126s ========= SMOKE TEST: /usr/bin/php2po =========== 126s 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] 126s 126s Convert PHP localization files to Gettext PO localization files. See: 126s http://docs.translatehouse.org/projects/translate- 126s toolkit/en/latest/commands/php2po.html for examples and usage instructions. 126s 126s Options: 126s --version show program's version number and exit 126s -h, --help show this help message and exit 126s --manpage output a manpage based on the help 126s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 126s --errorlevel=ERRORLEVEL 126s show errorlevel as: none, message, exception, 126s traceback 126s -i INPUT, --input=INPUT 126s read from INPUT in html, php formats 126s -x EXCLUDE, --exclude=EXCLUDE 126s exclude names matching EXCLUDE from input paths 126s -o OUTPUT, --output=OUTPUT 126s write to OUTPUT in po, pot formats 126s -t TEMPLATE, --template=TEMPLATE 126s read from TEMPLATE in html, php formats 126s -S, --timestamp skip conversion if the output file has newer timestamp 126s -P, --pot output PO Templates (.pot) rather than PO files (.po) 126s --duplicates=DUPLICATESTYLE 126s what to do with duplicate strings (identical source 126s text): merge, msgctxt (default: 'msgctxt') 126s ========= SMOKE TEST: /usr/bin/phppo2pypo =========== 126s Usage: phppo2pypo [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 126s 126s Convert PHP format .po files to Python format .po files. 126s 126s Options: 126s --version show program's version number and exit 126s -h, --help show this help message and exit 126s --manpage output a manpage based on the help 126s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 126s --errorlevel=ERRORLEVEL 126s show errorlevel as: none, message, exception, 126s traceback 126s -i INPUT, --input=INPUT 126s read from INPUT in po, pot formats 126s -x EXCLUDE, --exclude=EXCLUDE 126s exclude names matching EXCLUDE from input paths 126s -o OUTPUT, --output=OUTPUT 126s write to OUTPUT in po, pot formats 126s -S, --timestamp skip conversion if the output file has newer timestamp 126s ========= SMOKE TEST: /usr/bin/po2csv =========== 126s Usage: po2csv [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 126s 126s Convert Gettext PO localization files to Comma-Separated Value (.csv) files. 126s See: http://docs.translatehouse.org/projects/translate- 126s toolkit/en/latest/commands/csv2po.html for examples and usage instructions. 126s 126s Options: 126s --version show program's version number and exit 126s -h, --help show this help message and exit 126s --manpage output a manpage based on the help 126s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 126s --errorlevel=ERRORLEVEL 126s show errorlevel as: none, message, exception, 126s traceback 126s -i INPUT, --input=INPUT 126s read from INPUT in po, pot formats 126s -x EXCLUDE, --exclude=EXCLUDE 126s exclude names matching EXCLUDE from input paths 126s -o OUTPUT, --output=OUTPUT 126s write to OUTPUT in csv format 126s -S, --timestamp skip conversion if the output file has newer timestamp 126s --columnorder=COLUMNORDER 126s specify the order and position of columns 126s (location,source,target,context) 126s ========= SMOKE TEST: /usr/bin/po2dtd =========== 126s Usage: po2dtd [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 126s 126s Converts a Gettext PO file to a UTF-8 encoded Mozilla .dtd file. .. note: 126s Conversion is either done using a template plus PO file or just using the 126s .po file. 126s 126s Options: 126s --version show program's version number and exit 126s -h, --help show this help message and exit 126s --manpage output a manpage based on the help 126s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 126s --errorlevel=ERRORLEVEL 126s show errorlevel as: none, message, exception, 126s traceback 126s -i INPUT, --input=INPUT 126s read from INPUT in po, pot formats 126s -x EXCLUDE, --exclude=EXCLUDE 126s exclude names matching EXCLUDE from input paths 126s -o OUTPUT, --output=OUTPUT 126s write to OUTPUT in dtd format 126s -t TEMPLATE, --template=TEMPLATE 126s read from TEMPLATE in dtd format 126s -S, --timestamp skip conversion if the output file has newer timestamp 126s --threshold=PERCENT only convert files where the translation completion is 126s above PERCENT 126s --fuzzy use translations marked fuzzy 126s --nofuzzy don't use translations marked fuzzy (default) 126s --removeuntranslated remove untranslated strings from output 126s ========= SMOKE TEST: /usr/bin/po2flatxml =========== 126s Usage: po2flatxml [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 126s 126s Convert Gettext PO localization files to flat XML files. See: 126s http://docs.translatehouse.org/projects/translate- 126s toolkit/en/latest/commands/flatxml2po.html for examples and usage 126s instructions. 126s 126s Options: 126s --version show program's version number and exit 126s -h, --help show this help message and exit 126s --manpage output a manpage based on the help 126s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 126s --errorlevel=ERRORLEVEL 126s show errorlevel as: none, message, exception, 126s traceback 126s -i INPUT, --input=INPUT 126s read from INPUT in po, pot formats 126s -x EXCLUDE, --exclude=EXCLUDE 126s exclude names matching EXCLUDE from input paths 126s -o OUTPUT, --output=OUTPUT 126s write to OUTPUT in xml format 126s -t TEMPLATE, --template=TEMPLATE 126s read from TEMPLATE in xml format 126s -S, --timestamp skip conversion if the output file has newer timestamp 126s -r ROOT, --root=ROOT name of the XML root element (default: "root") 126s -v VALUE, --value=VALUE 126s name of the XML value element (default: "str") 126s -k KEY, --key=KEY name of the XML key attribute (default: "key") 126s -n NS, --namespace=NS 126s XML namespace uri (default: None) 126s -w INDENT, --indent=INDENT 126s indent width in spaces, 0 for no indent (default: 2) 127s ========= SMOKE TEST: /usr/bin/po2html =========== 127s Usage: po2html [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 127s 127s Translate HTML files using Gettext PO localization files. See: 127s http://docs.translatehouse.org/projects/translate- 127s toolkit/en/latest/commands/html2po.html for examples and usage instructions. 127s 127s Options: 127s --version show program's version number and exit 127s -h, --help show this help message and exit 127s --manpage output a manpage based on the help 127s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 127s --errorlevel=ERRORLEVEL 127s show errorlevel as: none, message, exception, 127s traceback 127s -i INPUT, --input=INPUT 127s read from INPUT in po, pot formats 127s -x EXCLUDE, --exclude=EXCLUDE 127s exclude names matching EXCLUDE from input paths 127s -o OUTPUT, --output=OUTPUT 127s write to OUTPUT in htm, html, xhtml formats 127s -t TEMPLATE, --template=TEMPLATE 127s read from TEMPLATE in htm, html, xhtml formats 127s -S, --timestamp skip conversion if the output file has newer timestamp 127s --threshold=PERCENT only convert files where the translation completion is 127s above PERCENT 127s --fuzzy use translations marked fuzzy 127s --nofuzzy don't use translations marked fuzzy (default) 127s ========= SMOKE TEST: /usr/bin/po2ical =========== 127s Usage: po2ical [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 127s 127s Convert Gettext PO localization files to iCalendar files. See: 127s http://docs.translatehouse.org/projects/translate- 127s toolkit/en/latest/commands/ical2po.html for examples and usage instructions. 127s 127s Options: 127s --version show program's version number and exit 127s -h, --help show this help message and exit 127s --manpage output a manpage based on the help 127s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 127s --errorlevel=ERRORLEVEL 127s show errorlevel as: none, message, exception, 127s traceback 127s -i INPUT, --input=INPUT 127s read from INPUT in po, pot formats 127s -x EXCLUDE, --exclude=EXCLUDE 127s exclude names matching EXCLUDE from input paths 127s -o OUTPUT, --output=OUTPUT 127s write to OUTPUT in ics format 127s -t TEMPLATE, --template=TEMPLATE 127s read from TEMPLATE in ics format 127s -S, --timestamp skip conversion if the output file has newer timestamp 127s --threshold=PERCENT only convert files where the translation completion is 127s above PERCENT 127s --fuzzy use translations marked fuzzy 127s --nofuzzy don't use translations marked fuzzy (default) 127s ========= SMOKE TEST: /usr/bin/po2idml =========== 127s Usage: po2idml [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 127s 127s Takes an IDML template file and a PO file containing translations of strings 127s in the IDML template. It creates a new IDML file using the translations of the 127s PO file. 127s 127s Options: 127s --version show program's version number and exit 127s -h, --help show this help message and exit 127s --manpage output a manpage based on the help 127s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 127s --errorlevel=ERRORLEVEL 127s show errorlevel as: none, message, exception, 127s traceback 127s -i INPUT, --input=INPUT 127s read from INPUT in po, pot formats 127s -x EXCLUDE, --exclude=EXCLUDE 127s exclude names matching EXCLUDE from input paths 127s -o OUTPUT, --output=OUTPUT 127s write to OUTPUT in idml format 127s -t TEMPLATE, --template=TEMPLATE 127s read from TEMPLATE in idml format 127s -S, --timestamp skip conversion if the output file has newer timestamp 127s ========= SMOKE TEST: /usr/bin/po2ini =========== 127s Usage: po2ini [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 127s 127s Convert Gettext PO localization files to .ini files. See: 127s http://docs.translatehouse.org/projects/translate- 127s toolkit/en/latest/commands/ini2po.html for examples and usage instructions. 127s 127s Options: 127s --version show program's version number and exit 127s -h, --help show this help message and exit 127s --manpage output a manpage based on the help 127s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 127s --errorlevel=ERRORLEVEL 127s show errorlevel as: none, message, exception, 127s traceback 127s -i INPUT, --input=INPUT 127s read from INPUT in po, pot formats 127s -x EXCLUDE, --exclude=EXCLUDE 127s exclude names matching EXCLUDE from input paths 127s -o OUTPUT, --output=OUTPUT 127s write to OUTPUT in ini, isl formats 127s -t TEMPLATE, --template=TEMPLATE 127s read from TEMPLATE in ini, isl formats 127s -S, --timestamp skip conversion if the output file has newer timestamp 127s --threshold=PERCENT only convert files where the translation completion is 127s above PERCENT 127s --fuzzy use translations marked fuzzy 127s --nofuzzy don't use translations marked fuzzy (default) 127s ========= SMOKE TEST: /usr/bin/po2json =========== 127s Usage: po2json [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 127s 127s Convert Gettext PO localization files to JSON files. See: 127s http://docs.translatehouse.org/projects/translate- 127s toolkit/en/latest/commands/json2po.html for examples and usage instructions. 127s 127s Options: 127s --version show program's version number and exit 127s -h, --help show this help message and exit 127s --manpage output a manpage based on the help 127s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 127s --errorlevel=ERRORLEVEL 127s show errorlevel as: none, message, exception, 127s traceback 127s -i INPUT, --input=INPUT 127s read from INPUT in po, pot formats 127s -x EXCLUDE, --exclude=EXCLUDE 127s exclude names matching EXCLUDE from input paths 127s -o OUTPUT, --output=OUTPUT 127s write to OUTPUT in json format 127s -t TEMPLATE, --template=TEMPLATE 127s read from TEMPLATE in json format 127s -S, --timestamp skip conversion if the output file has newer timestamp 127s --threshold=PERCENT only convert files where the translation completion is 127s above PERCENT 127s --fuzzy use translations marked fuzzy 127s --nofuzzy don't use translations marked fuzzy (default) 127s --removeuntranslated remove untranslated strings from output 127s ========= SMOKE TEST: /usr/bin/po2md =========== 127s Usage: po2md [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 127s 127s Translate Markdown files using Gettext PO localization files. See: 127s http://docs.translatehouse.org/projects/translate- 127s toolkit/en/latest/commands/md2po.html for examples and usage instructions. 127s 127s Options: 127s --version show program's version number and exit 127s -h, --help show this help message and exit 127s --manpage output a manpage based on the help 127s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 127s --errorlevel=ERRORLEVEL 127s show errorlevel as: none, message, exception, 127s traceback 127s -i INPUT, --input=INPUT 127s read from INPUT in po, pot formats 127s -x EXCLUDE, --exclude=EXCLUDE 127s exclude names matching EXCLUDE from input paths 127s -o OUTPUT, --output=OUTPUT 127s write to OUTPUT in markdown, md, text, txt formats 127s -t TEMPLATE, --template=TEMPLATE 127s read from TEMPLATE in markdown, md, text, txt formats 127s -S, --timestamp skip conversion if the output file has newer timestamp 127s -m MAXLENGTH, --maxlinelength=MAXLENGTH 127s reflow (word wrap) the output to the given maximum 127s line length. set to 0 to disable 127s --threshold=PERCENT only convert files where the translation completion is 127s above PERCENT 127s --fuzzy use translations marked fuzzy 127s --nofuzzy don't use translations marked fuzzy (default) 127s ========= SMOKE TEST: /usr/bin/po2moz =========== 127s Usage: po2moz [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 127s 127s Convert Gettext PO localization files to Mozilla .dtd and .properties files. 127s See: http://docs.translatehouse.org/projects/translate- 127s toolkit/en/latest/commands/moz2po.html for examples and usage instructions. 127s 127s Options: 127s --version show program's version number and exit 127s -h, --help show this help message and exit 127s --manpage output a manpage based on the help 127s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 127s --errorlevel=ERRORLEVEL 127s show errorlevel as: none, message, exception, 127s traceback 127s -i INPUT, --input=INPUT 127s read from INPUT in *, dtd.po, dtd.pot, inc.po, 127s inc.pot, ini.po, ini.pot, it.po, it.pot, js, lang.po, 127s lang.pot, manifest, properties.po, properties.pot, rdf 127s formats 127s -x EXCLUDE, --exclude=EXCLUDE 127s exclude names matching EXCLUDE from input paths 127s -o OUTPUT, --output=OUTPUT 127s write to OUTPUT in *, dtd, inc, ini, it, js, lang, 127s manifest, properties, rdf formats 127s -t TEMPLATE, --template=TEMPLATE 127s read from TEMPLATE in *, dtd, inc, ini, it, js, lang, 127s manifest, properties, rdf formats 127s -S, --timestamp skip conversion if the output file has newer timestamp 127s -l LOCALE, --locale=LOCALE 127s set output locale (required as this sets the directory 127s names) 127s --threshold=PERCENT only convert files where the translation completion is 127s above PERCENT 127s --fuzzy use translations marked fuzzy 127s --nofuzzy don't use translations marked fuzzy (default) 127s --removeuntranslated remove untranslated strings from output 128s ========= SMOKE TEST: /usr/bin/po2mozlang =========== 128s Usage: po2mozlang [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 128s 128s Convert Gettext PO localization files to Mozilla .lang files. 128s 128s Options: 128s --version show program's version number and exit 128s -h, --help show this help message and exit 128s --manpage output a manpage based on the help 128s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 128s --errorlevel=ERRORLEVEL 128s show errorlevel as: none, message, exception, 128s traceback 128s -i INPUT, --input=INPUT 128s read from INPUT in po, pot formats 128s -x EXCLUDE, --exclude=EXCLUDE 128s exclude names matching EXCLUDE from input paths 128s -o OUTPUT, --output=OUTPUT 128s write to OUTPUT in lang format 128s -t TEMPLATE, --template=TEMPLATE 128s read from TEMPLATE in lang format 128s -S, --timestamp skip conversion if the output file has newer timestamp 128s --mark-active mark the file as active 128s --threshold=PERCENT only convert files where the translation completion is 128s above PERCENT 128s --fuzzy use translations marked fuzzy 128s --nofuzzy don't use translations marked fuzzy (default) 128s ========= SMOKE TEST: /usr/bin/po2odf =========== 128s Usage: po2odf [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 128s 128s Convert Gettext PO localization files to OpenDocument (ODF) files. This 128s converter combines the functionality of po2xliff and xliff2odf to provide a 128s direct conversion from PO files to ODF files. See: 128s http://docs.translatehouse.org/projects/translate-toolkit/en/latest/commands/ 128s for examples and usage instructions. 128s 128s Options: 128s --version show program's version number and exit 128s -h, --help show this help message and exit 128s --manpage output a manpage based on the help 128s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 128s --errorlevel=ERRORLEVEL 128s show errorlevel as: none, message, exception, 128s traceback 128s -i INPUT, --input=INPUT 128s read from INPUT in po, pot formats 128s -x EXCLUDE, --exclude=EXCLUDE 128s exclude names matching EXCLUDE from input paths 128s -o OUTPUT, --output=OUTPUT 128s write to OUTPUT in odc, odf, odg, odi, odm, odp, ods, 128s odt, otc, otf, otg, oth, oti, otp, ots, ott formats 128s -t TEMPLATE, --template=TEMPLATE 128s read from TEMPLATE in odc, odf, odg, odi, odm, odp, 128s ods, odt, otc, otf, otg, oth, oti, otp, ots, ott 128s formats 128s -S, --timestamp skip conversion if the output file has newer timestamp 128s ========= SMOKE TEST: /usr/bin/po2oo =========== 128s Usage: po2oo [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 128s 128s Convert Gettext PO localization files to an OpenOffice.org (SDF) localization 128s file. See: http://docs.translatehouse.org/projects/translate- 128s toolkit/en/latest/commands/oo2po.html for examples and usage instructions. 128s 128s Options: 128s --version show program's version number and exit 128s -h, --help show this help message and exit 128s --manpage output a manpage based on the help 128s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 128s --errorlevel=ERRORLEVEL 128s show errorlevel as: none, message, exception, 128s traceback 128s -i INPUT, --input=INPUT 128s read from INPUT in po, pot, xlf, xliff formats 128s -x EXCLUDE, --exclude=EXCLUDE 128s exclude names matching EXCLUDE from input paths 128s -o OUTPUT, --output=OUTPUT 128s write to OUTPUT in oo, sdf formats 128s -t TEMPLATE, --template=TEMPLATE 128s read from TEMPLATE in oo, sdf formats 128s -S, --timestamp skip conversion if the output file has newer timestamp 128s -l LANG, --language=LANG 128s set target language code (e.g. af-ZA) [required] 128s --source-language=LANG 128s set source language code (default en-US) 128s -T, --keeptimestamp don't change the timestamps of the strings 128s --nonrecursiveoutput don't treat the output oo as a recursive store 128s --nonrecursivetemplate 128s don't treat the template oo as a recursive store 128s --skipsource don't output the source language, but fallback to it 128s where needed 128s --filteraction=ACTION 128s action on pofilter failure: none (default), warn, 128s exclude-serious, exclude-all 128s --threshold=PERCENT only convert files where the translation completion is 128s above PERCENT 128s --fuzzy use translations marked fuzzy 128s --nofuzzy don't use translations marked fuzzy (default) 128s --multifile=MULTIFILESTYLE 128s how to split po/pot files (single, toplevel or 128s onefile) 128s ========= SMOKE TEST: /usr/bin/po2php =========== 128s Usage: po2php [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 128s 128s Convert Gettext PO localization files to PHP localization files. See: 128s http://docs.translatehouse.org/projects/translate- 128s toolkit/en/latest/commands/php2po.html for examples and usage instructions. 128s 128s Options: 128s --version show program's version number and exit 128s -h, --help show this help message and exit 128s --manpage output a manpage based on the help 128s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 128s --errorlevel=ERRORLEVEL 128s show errorlevel as: none, message, exception, 128s traceback 128s -i INPUT, --input=INPUT 128s read from INPUT in po, pot formats 128s -x EXCLUDE, --exclude=EXCLUDE 128s exclude names matching EXCLUDE from input paths 128s -o OUTPUT, --output=OUTPUT 128s write to OUTPUT in html, php formats 128s -t TEMPLATE, --template=TEMPLATE 128s read from TEMPLATE in html, php formats 128s -S, --timestamp skip conversion if the output file has newer timestamp 128s --threshold=PERCENT only convert files where the translation completion is 128s above PERCENT 128s --fuzzy use translations marked fuzzy 128s --nofuzzy don't use translations marked fuzzy (default) 128s ========= SMOKE TEST: /usr/bin/po2prop =========== 128s Usage: po2prop [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 128s 128s Convert Gettext PO localization files to Java/Mozilla .properties files. 128s See: http://docs.translatehouse.org/projects/translate- 128s toolkit/en/latest/commands/prop2po.html for examples and usage instructions. 128s 128s Options: 128s --version show program's version number and exit 128s -h, --help show this help message and exit 128s --manpage output a manpage based on the help 128s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 128s --errorlevel=ERRORLEVEL 128s show errorlevel as: none, message, exception, 128s traceback 128s -i INPUT, --input=INPUT 128s read from INPUT in po, pot formats 128s -x EXCLUDE, --exclude=EXCLUDE 128s exclude names matching EXCLUDE from input paths 128s -o OUTPUT, --output=OUTPUT 128s write to OUTPUT in lang, properties, strings formats 128s -t TEMPLATE, --template=TEMPLATE 128s read from TEMPLATE in lang, properties, strings 128s formats 128s -S, --timestamp skip conversion if the output file has newer timestamp 128s --personality=TYPE override the input file format: java, java-utf8, java- 128s utf16, xwiki, flex, mozilla, gaia, gwt, skype, 128s strings, strings-utf8, joomla (for .properties files, 128s default: java) 128s --encoding=ENCODING override the encoding set by the personality 128s --threshold=PERCENT only convert files where the translation completion is 128s above PERCENT 128s --fuzzy use translations marked fuzzy 128s --nofuzzy don't use translations marked fuzzy (default) 128s --removeuntranslated remove untranslated strings from output 128s ========= SMOKE TEST: /usr/bin/po2rc =========== 128s Usage: po2rc [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 128s 128s Convert Gettext PO localization files back to Windows Resource (.rc) files. 128s See: http://docs.translatehouse.org/projects/translate- 128s toolkit/en/latest/commands/rc2po.html for examples and usage instructions. 128s 128s Options: 128s --version show program's version number and exit 128s -h, --help show this help message and exit 128s --manpage output a manpage based on the help 128s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 128s --errorlevel=ERRORLEVEL 128s show errorlevel as: none, message, exception, 128s traceback 128s -i INPUT, --input=INPUT 128s read from INPUT in po, pot formats 128s -x EXCLUDE, --exclude=EXCLUDE 128s exclude names matching EXCLUDE from input paths 128s -o OUTPUT, --output=OUTPUT 128s write to OUTPUT in rc format 128s -t TEMPLATE, --template=TEMPLATE 128s read from TEMPLATE in rc format 128s -S, --timestamp skip conversion if the output file has newer timestamp 128s --charset=CHARSET charset to use to decode the template RC files 128s (default: utf-8) 128s --charset-output=CHARSET 128s charset to use to encode the RC file (default: auto) 128s -l LANG, --lang=LANG LANG entry 128s --sublang=SUBLANG SUBLANG entry (default: SUBLANG_DEFAULT) 128s --threshold=PERCENT only convert files where the translation completion is 128s above PERCENT 128s --fuzzy use translations marked fuzzy 128s --nofuzzy don't use translations marked fuzzy (default) 128s ========= SMOKE TEST: /usr/bin/po2resx =========== 128s Usage: po2resx [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 128s 128s Convert Gettext PO localisation files to .Net Resource (.resx) files. See: 128s http://docs.translatehouse.org/projects/translate- 128s toolkit/en/latest/commands/resx2po.html for examples and usage instructions. 128s 128s Options: 128s --version show program's version number and exit 128s -h, --help show this help message and exit 128s --manpage output a manpage based on the help 128s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 128s --errorlevel=ERRORLEVEL 128s show errorlevel as: none, message, exception, 128s traceback 128s -i INPUT, --input=INPUT 128s read from INPUT in po, pot formats 128s -x EXCLUDE, --exclude=EXCLUDE 128s exclude names matching EXCLUDE from input paths 128s -o OUTPUT, --output=OUTPUT 128s write to OUTPUT in resx format 128s -t TEMPLATE, --template=TEMPLATE 128s read from TEMPLATE in resx format 128s -S, --timestamp skip conversion if the output file has newer timestamp 128s --fuzzy use translations marked fuzzy 128s --nofuzzy don't use translations marked fuzzy (default) 128s ========= SMOKE TEST: /usr/bin/po2sub =========== 128s Usage: po2sub [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 128s 128s Convert Gettext PO localization files to subtitle files. See: 128s http://docs.translatehouse.org/projects/translate- 128s toolkit/en/latest/commands/sub2po.html for examples and usage instructions. 128s 128s Options: 128s --version show program's version number and exit 128s -h, --help show this help message and exit 128s --manpage output a manpage based on the help 128s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 128s --errorlevel=ERRORLEVEL 128s show errorlevel as: none, message, exception, 128s traceback 128s -i INPUT, --input=INPUT 128s read from INPUT in po, pot formats 128s -x EXCLUDE, --exclude=EXCLUDE 128s exclude names matching EXCLUDE from input paths 128s -o OUTPUT, --output=OUTPUT 128s write to OUTPUT in ass, srt, ssa, sub formats 128s -t TEMPLATE, --template=TEMPLATE 128s read from TEMPLATE in ass, srt, ssa, sub formats 128s -S, --timestamp skip conversion if the output file has newer timestamp 128s --threshold=PERCENT only convert files where the translation completion is 128s above PERCENT 128s --fuzzy use translations marked fuzzy 128s --nofuzzy don't use translations marked fuzzy (default) 129s ========= SMOKE TEST: /usr/bin/po2symb =========== 129s Usage: po2symb [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 129s 129s Convert Gettext PO localization files to Symbian translation files. See: 129s http://docs.translatehouse.org/projects/translate- 129s toolkit/en/latest/commands/symb2po.html for examples and usage instructions. 129s 129s Options: 129s --version show program's version number and exit 129s -h, --help show this help message and exit 129s --manpage output a manpage based on the help 129s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 129s --errorlevel=ERRORLEVEL 129s show errorlevel as: none, message, exception, 129s traceback 129s -i INPUT, --input=INPUT 129s read from INPUT in po, pot formats 129s -x EXCLUDE, --exclude=EXCLUDE 129s exclude names matching EXCLUDE from input paths 129s -o OUTPUT, --output=OUTPUT 129s write to OUTPUT in r0 format 129s -t TEMPLATE, --template=TEMPLATE 129s read from TEMPLATE in 129s -S, --timestamp skip conversion if the output file has newer timestamp 129s --duplicates=DUPLICATESTYLE 129s what to do with duplicate strings (identical source 129s text): merge, msgctxt (default: 'msgctxt') 129s ========= SMOKE TEST: /usr/bin/po2tiki =========== 129s Usage: po2tiki [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 129s 129s Convert Gettext PO files to TikiWiki's language.php files. See: 129s http://docs.translatehouse.org/projects/translate- 129s toolkit/en/latest/commands/tiki2po.html for examples and usage instructions. 129s 129s Options: 129s --version show program's version number and exit 129s -h, --help show this help message and exit 129s --manpage output a manpage based on the help 129s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 129s --errorlevel=ERRORLEVEL 129s show errorlevel as: none, message, exception, 129s traceback 129s -i INPUT, --input=INPUT 129s read from INPUT in po, pot formats 129s -x EXCLUDE, --exclude=EXCLUDE 129s exclude names matching EXCLUDE from input paths 129s -o OUTPUT, --output=OUTPUT 129s write to OUTPUT in tiki format 129s -S, --timestamp skip conversion if the output file has newer timestamp 129s ========= SMOKE TEST: /usr/bin/po2tmx =========== 129s Usage: po2tmx [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 129s 129s Convert Gettext PO localization files to a TMX (Translation Memory eXchange) 129s file. See: http://docs.translatehouse.org/projects/translate- 129s toolkit/en/latest/commands/po2tmx.html for examples and usage instructions. 129s 129s Options: 129s --version show program's version number and exit 129s -h, --help show this help message and exit 129s --manpage output a manpage based on the help 129s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 129s --errorlevel=ERRORLEVEL 129s show errorlevel as: none, message, exception, 129s traceback 129s -i INPUT, --input=INPUT 129s read from INPUT in po, pot formats 129s -x EXCLUDE, --exclude=EXCLUDE 129s exclude names matching EXCLUDE from input paths 129s -o OUTPUT, --output=OUTPUT 129s write to OUTPUT in tmx format 129s -S, --timestamp skip conversion if the output file has newer timestamp 129s -l LANG, --language=LANG 129s set target language code (e.g. af-ZA) [required] 129s --source-language=LANG 129s set source language code (default: en) 129s --comments=COMMENT set default comment import: none, source, type or 129s others (default: none) 129s ========= SMOKE TEST: /usr/bin/po2toml =========== 129s Usage: po2toml [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 129s 129s Convert Gettext PO localization files to TOML files. See: 129s http://docs.translatehouse.org/projects/translate- 129s toolkit/en/latest/commands/toml2po.html for examples and usage instructions. 129s 129s Options: 129s --version show program's version number and exit 129s -h, --help show this help message and exit 129s --manpage output a manpage based on the help 129s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 129s --errorlevel=ERRORLEVEL 129s show errorlevel as: none, message, exception, 129s traceback 129s -i INPUT, --input=INPUT 129s read from INPUT in po, pot formats 129s -x EXCLUDE, --exclude=EXCLUDE 129s exclude names matching EXCLUDE from input paths 129s -o OUTPUT, --output=OUTPUT 129s write to OUTPUT in toml format 129s -t TEMPLATE, --template=TEMPLATE 129s read from TEMPLATE in toml format 129s -S, --timestamp skip conversion if the output file has newer timestamp 129s --threshold=PERCENT only convert files where the translation completion is 129s above PERCENT 129s --fuzzy use translations marked fuzzy 129s --nofuzzy don't use translations marked fuzzy (default) 129s ========= SMOKE TEST: /usr/bin/po2ts =========== 129s Usage: po2ts [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 129s 129s Convert Gettext PO localization files to Qt Linguist (.ts) files. See: 129s http://docs.translatehouse.org/projects/translate- 129s toolkit/en/latest/commands/ts2po.html for examples and usage instructions. 129s 129s Options: 129s --version show program's version number and exit 129s -h, --help show this help message and exit 129s --manpage output a manpage based on the help 129s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 129s --errorlevel=ERRORLEVEL 129s show errorlevel as: none, message, exception, 129s traceback 129s -i INPUT, --input=INPUT 129s read from INPUT in po, pot formats 129s -x EXCLUDE, --exclude=EXCLUDE 129s exclude names matching EXCLUDE from input paths 129s -o OUTPUT, --output=OUTPUT 129s write to OUTPUT in ts format 129s -t TEMPLATE, --template=TEMPLATE 129s read from TEMPLATE in ts format 129s -S, --timestamp skip conversion if the output file has newer timestamp 129s -c CONTEXT, --context=CONTEXT 129s use supplied context instead of the one in the .po 129s file comment 129s ========= SMOKE TEST: /usr/bin/po2txt =========== 129s Usage: po2txt [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 129s 129s Convert Gettext PO localization files to plain text (.txt) files. See: 129s http://docs.translatehouse.org/projects/translate- 129s toolkit/en/latest/commands/txt2po.html for examples and usage instructions. 129s 129s Options: 129s --version show program's version number and exit 129s -h, --help show this help message and exit 129s --manpage output a manpage based on the help 129s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 129s --errorlevel=ERRORLEVEL 129s show errorlevel as: none, message, exception, 129s traceback 129s -i INPUT, --input=INPUT 129s read from INPUT in po, pot, xlf, xliff formats 129s -x EXCLUDE, --exclude=EXCLUDE 129s exclude names matching EXCLUDE from input paths 129s -o OUTPUT, --output=OUTPUT 129s write to OUTPUT in txt format 129s -t TEMPLATE, --template=TEMPLATE 129s read from TEMPLATE in txt format 129s -S, --timestamp skip conversion if the output file has newer timestamp 129s --encoding=ENCODING The encoding of the template file (default: UTF-8) 129s -w WRAP, --wrap=WRAP set number of columns to wrap text at 129s --flavour=FLAVOUR The flavour of text file: plain (default), dokuwiki, 129s mediawiki 129s --no-segmentation Don't segment the file, treat it like a single message 129s --threshold=PERCENT only convert files where the translation completion is 129s above PERCENT 129s --fuzzy use translations marked fuzzy 129s --nofuzzy don't use translations marked fuzzy (default) 129s ========= SMOKE TEST: /usr/bin/po2web2py =========== 129s Usage: po2web2py [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 129s 129s Convert GNU/gettext PO files to web2py translation dictionaries (.py). See: 129s http://docs.translatehouse.org/projects/translate- 129s toolkit/en/latest/commands/web2py2po.html for examples and usage instructions. 129s 129s Options: 129s --version show program's version number and exit 129s -h, --help show this help message and exit 129s --manpage output a manpage based on the help 129s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 129s --errorlevel=ERRORLEVEL 129s show errorlevel as: none, message, exception, 129s traceback 129s -i INPUT, --input=INPUT 129s read from INPUT in po, pot formats 129s -x EXCLUDE, --exclude=EXCLUDE 129s exclude names matching EXCLUDE from input paths 129s -o OUTPUT, --output=OUTPUT 129s write to OUTPUT in py format 129s -S, --timestamp skip conversion if the output file has newer timestamp 129s --threshold=PERCENT only convert files where the translation completion is 129s above PERCENT 129s --fuzzy use translations marked fuzzy 129s --nofuzzy don't use translations marked fuzzy (default) 129s ========= SMOKE TEST: /usr/bin/po2wordfast =========== 129s Usage: po2wordfast [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 129s 129s Convert Gettext PO localization files to a Wordfast translation memory file. 129s See: http://docs.translatehouse.org/projects/translate- 129s toolkit/en/latest/commands/po2wordfast.html for examples and usage 129s instructions. 129s 129s Options: 129s --version show program's version number and exit 129s -h, --help show this help message and exit 129s --manpage output a manpage based on the help 129s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 129s --errorlevel=ERRORLEVEL 129s show errorlevel as: none, message, exception, 129s traceback 129s -i INPUT, --input=INPUT 129s read from INPUT in po, pot formats 129s -x EXCLUDE, --exclude=EXCLUDE 129s exclude names matching EXCLUDE from input paths 129s -o OUTPUT, --output=OUTPUT 129s write to OUTPUT in txt format 129s -S, --timestamp skip conversion if the output file has newer timestamp 129s -l LANG, --language=LANG 129s set target language code (e.g. af-ZA) [required] 129s --source-language=LANG 129s set source language code (default: en) 129s ========= SMOKE TEST: /usr/bin/po2xliff =========== 129s Usage: po2xliff [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 129s 129s Convert Gettext PO localization files to XLIFF localization files. See: 129s http://docs.translatehouse.org/projects/translate- 129s toolkit/en/latest/commands/xliff2po.html for examples and usage instructions. 129s 129s Options: 129s --version show program's version number and exit 129s -h, --help show this help message and exit 129s --manpage output a manpage based on the help 129s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 129s --errorlevel=ERRORLEVEL 129s show errorlevel as: none, message, exception, 129s traceback 129s -i INPUT, --input=INPUT 129s read from INPUT in po, pot formats 129s -x EXCLUDE, --exclude=EXCLUDE 129s exclude names matching EXCLUDE from input paths 129s -o OUTPUT, --output=OUTPUT 129s write to OUTPUT in xlf, xliff formats 129s -t TEMPLATE, --template=TEMPLATE 129s read from TEMPLATE in xlf, xliff formats 129s -S, --timestamp skip conversion if the output file has newer timestamp 129s ========= SMOKE TEST: /usr/bin/po2yaml =========== 130s Usage: po2yaml [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 130s 130s Convert Gettext PO localization files to YAML files. See: 130s http://docs.translatehouse.org/projects/translate- 130s toolkit/en/latest/commands/yaml2po.html for examples and usage instructions. 130s 130s Options: 130s --version show program's version number and exit 130s -h, --help show this help message and exit 130s --manpage output a manpage based on the help 130s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 130s --errorlevel=ERRORLEVEL 130s show errorlevel as: none, message, exception, 130s traceback 130s -i INPUT, --input=INPUT 130s read from INPUT in po, pot formats 130s -x EXCLUDE, --exclude=EXCLUDE 130s exclude names matching EXCLUDE from input paths 130s -o OUTPUT, --output=OUTPUT 130s write to OUTPUT in yaml, yml formats 130s -t TEMPLATE, --template=TEMPLATE 130s read from TEMPLATE in yaml, yml formats 130s -S, --timestamp skip conversion if the output file has newer timestamp 130s --threshold=PERCENT only convert files where the translation completion is 130s above PERCENT 130s --fuzzy use translations marked fuzzy 130s --nofuzzy don't use translations marked fuzzy (default) 130s ========= SMOKE TEST: /usr/bin/poclean =========== 130s Usage: poclean [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 130s 130s Produces a clean file from an unclean file (Trados/Wordfast) by stripping out 130s the tw4win indicators. This does not convert an RTF file to PO/XLIFF, but 130s produces the target file with only the target text in from a text version of 130s the RTF. 130s 130s Options: 130s --version show program's version number and exit 130s -h, --help show this help message and exit 130s --manpage output a manpage based on the help 130s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 130s --errorlevel=ERRORLEVEL 130s show errorlevel as: none, message, exception, 130s traceback 130s -i INPUT, --input=INPUT 130s read from INPUT in po, pot, xlf, xliff formats 130s -x EXCLUDE, --exclude=EXCLUDE 130s exclude names matching EXCLUDE from input paths 130s -o OUTPUT, --output=OUTPUT 130s write to OUTPUT in po, pot, xlf, xliff formats 130s -S, --timestamp skip conversion if the output file has newer timestamp 130s ========= SMOKE TEST: /usr/bin/pocompendium =========== 130s Usage: pocompendium [options] output.po <-d directory(s)|file(s)> 130s The first parameter is the output file, standard output if the output file is '-'. 130s Any number of directories may be specified for input files. 130s Options: 130s --invert|v Creates an inverse compendium with msgid and msgstr swapped 130s --errors|e Only output msg bundles that have errors 130s --correct|c Only output msg bundles that are correctly translated 130s --ignore-case|i Drops all strings to lowercase 130s --strip-accel-tilde|-st Strip all tilde (~) accelerator characters 130s --strip-accel-amp|-sa Strip all ampersand (&) accelerator characters 130s --strip-accel-under|-su Strip all underscore (_) accelerator characters 130s ========= SMOKE TEST: /usr/bin/pocompile =========== 130s Usage: pocompile [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 130s 130s Compile XLIFF and Gettext PO localization files into Gettext MO (Machine 130s Object) files. See: http://docs.translatehouse.org/projects/translate- 130s toolkit/en/latest/commands/pocompile.html for examples and usage instructions. 130s 130s Options: 130s --version show program's version number and exit 130s -h, --help show this help message and exit 130s --manpage output a manpage based on the help 130s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 130s --errorlevel=ERRORLEVEL 130s show errorlevel as: none, message, exception, 130s traceback 130s -i INPUT, --input=INPUT 130s read from INPUT in po, pot, xlf, xliff formats 130s -x EXCLUDE, --exclude=EXCLUDE 130s exclude names matching EXCLUDE from input paths 130s -o OUTPUT, --output=OUTPUT 130s write to OUTPUT in mo format 130s -S, --timestamp skip conversion if the output file has newer timestamp 130s --fuzzy use translations marked fuzzy 130s --nofuzzy don't use translations marked fuzzy (default) 130s ========= SMOKE TEST: /usr/bin/poconflicts =========== 130s Usage: poconflicts [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-x|--exclude EXCLUDE] [-i|--input] INPUT [-o|--output] OUTPUT [-I|--ignore-case] [-v|--invert] [--accelerator ACCELERATORS] 130s poconflicts [options] 130s poconflicts [options] ... 130s 130s Input is searched for PO files, output directory will contain PO files named after conflicting strings. 130s Both -i/--input and -o/--output are optional when using positional arguments. 130s 130s Conflict finder for Gettext PO localization files. See: 130s http://docs.translatehouse.org/projects/translate- 130s toolkit/en/latest/commands/poconflicts.html for examples and usage 130s instructions. 130s 130s Options: 130s --version show program's version number and exit 130s -h, --help show this help message and exit 130s --manpage output a manpage based on the help 130s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 130s --errorlevel=ERRORLEVEL 130s show errorlevel as: none, message, exception, 130s traceback 130s -x EXCLUDE, --exclude=EXCLUDE 130s exclude names matching EXCLUDE from input paths 130s -i INPUT, --input=INPUT 130s read from INPUT (directory or file(s)) in po format 130s -o OUTPUT, --output=OUTPUT 130s write to OUTPUT (directory) in po format 130s -I, --ignore-case ignore case distinctions 130s -v, --invert invert the conflicts thus extracting conflicting 130s destination words 130s --accelerator=ACCELERATORS 130s ignores the given accelerator characters when matching 130s ========= SMOKE TEST: /usr/bin/pocount =========== 130s usage: pocount [-h] [--incomplete] [--full | --csv | --short | 130s --short-strings | --short-words] [--no-color] 130s files [files ...] 130s 130s positional arguments: 130s files 130s 130s options: 130s -h, --help show this help message and exit 130s --incomplete skip 100% translated files. 130s 130s Output format: 130s --full (default) statistics in full, verbose format 130s --csv statistics in CSV format 130s --short same as --short-strings 130s --short-strings statistics of strings in short format - one line per file 130s --short-words statistics of words in short format - one line per file 130s --no-color show output without color 130s ========= SMOKE TEST: /usr/bin/podebug =========== 130s Usage: podebug [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 130s 130s Insert debug messages into XLIFF and Gettext PO localization files. See: 130s http://docs.translatehouse.org/projects/translate- 130s toolkit/en/latest/commands/podebug.html for examples and usage instructions. 130s 130s Options: 130s --version show program's version number and exit 130s -h, --help show this help message and exit 130s --manpage output a manpage based on the help 130s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 130s --errorlevel=ERRORLEVEL 130s show errorlevel as: none, message, exception, 130s traceback 130s -i INPUT, --input=INPUT 130s read from INPUT in po, pot, pot, tmx, xlf, xliff 130s formats 130s -x EXCLUDE, --exclude=EXCLUDE 130s exclude names matching EXCLUDE from input paths 130s -o OUTPUT, --output=OUTPUT 130s write to OUTPUT in po, pot, tmx, xlf, xliff formats 130s -S, --timestamp skip conversion if the output file has newer timestamp 130s -f FORMAT, --format=FORMAT 130s specify format string 130s --rewrite=STYLE the translation rewrite style: blank, bracket, chef, 130s classified, en, flipped, unicode, xxx 130s --ignore=APPLICATION apply tagging ignore rules for the given application: 130s gtk, kde, libreoffice, mozilla, openoffice 130s --preserveplaceholders 130s attempt to exclude characters that are part of 130s placeholders when performing character-level rewrites 130s so that consuming applications can still use the 130s placeholders to generate final output 130s ========= SMOKE TEST: /usr/bin/pofilter =========== 130s Usage: pofilter [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT 130s 130s Perform quality checks on Gettext PO, XLIFF and TMX localization files. 130s Snippet files are created whenever a test fails. These can be examined, 130s corrected and merged back into the originals using pomerge. See: 130s http://docs.translatehouse.org/projects/translate- 130s toolkit/en/latest/commands/pofilter.html for examples and usage instructions 130s and http://docs.translatehouse.org/projects/translate- 130s toolkit/en/latest/commands/pofilter_tests.html for full descriptions of all 130s tests. 130s 130s Options: 130s --version show program's version number and exit 130s -h, --help show this help message and exit 130s --manpage output a manpage based on the help 130s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 130s --errorlevel=ERRORLEVEL 130s show errorlevel as: none, message, exception, 130s traceback 130s -i INPUT, --input=INPUT 130s read from INPUT in po, pot, tmx, xlf, xliff formats 130s -x EXCLUDE, --exclude=EXCLUDE 130s exclude names matching EXCLUDE from input paths 130s -o OUTPUT, --output=OUTPUT 130s write to OUTPUT in po, pot, tmx, xlf, xliff formats 130s -l, --listfilters list filters available 130s --review include units marked for review (default) 130s --noreview exclude units marked for review 130s --fuzzy include units marked fuzzy (default) 130s --nofuzzy exclude units marked fuzzy 130s --nonotes don't add notes about the errors 130s --autocorrect output automatic corrections where possible rather 130s than describing issues 130s --language=LANG set target language code (e.g. af-ZA) [required for 130s spell check and recommended in general] 130s --openoffice use the standard checks for OpenOffice translations 130s --libreoffice use the standard checks for LibreOffice translations 130s --mozilla use the standard checks for Mozilla translations 130s --drupal use the standard checks for Drupal translations 130s --gnome use the standard checks for Gnome translations 130s --kde use the standard checks for KDE translations 130s --wx use the standard checks for wxWidgets translations 130s --excludefilter=FILTER 130s don't use FILTER when filtering 130s -t FILTER, --test=FILTER 130s only use test FILTERs specified with this option when 130s filtering 130s --notranslatefile=FILE 130s read list of untranslatable words from FILE (must not 130s be translated) 130s --musttranslatefile=FILE 130s read list of translatable words from FILE (must be 130s translated) 130s --validcharsfile=FILE 130s read list of all valid characters from FILE (must be 130s in UTF-8) 130s ========= SMOKE TEST: /usr/bin/pogrep =========== 130s 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] 130s 130s Grep XLIFF, Gettext PO and TMX localization files. Matches are output to 130s snippet files of the same type which can then be reviewed and later merged 130s using :doc:`pomerge `. See: 130s http://docs.translatehouse.org/projects/translate- 130s toolkit/en/latest/commands/pogrep.html for examples and usage instructions. 130s 130s Options: 130s --version show program's version number and exit 130s -h, --help show this help message and exit 130s --manpage output a manpage based on the help 130s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 130s --errorlevel=ERRORLEVEL 130s show errorlevel as: none, message, exception, 130s traceback 130s -i INPUT, --input=INPUT 130s read from INPUT in gmo, mo, po, pot, tmx, xlf, xlff, 130s xliff formats 130s -x EXCLUDE, --exclude=EXCLUDE 130s exclude names matching EXCLUDE from input paths 130s -o OUTPUT, --output=OUTPUT 130s write to OUTPUT in gmo, mo, po, pot, tmx, xlf, xlff, 130s xliff formats 130s --search=SEARCHPARTS searches the given parts (source, target, notes and 130s locations) 130s -I, --ignore-case ignore case distinctions 130s -e, --regexp use regular expression matching 130s -v, --invert-match select non-matching lines 130s --accelerator=ACCELERATOR 130s ignores the given accelerator when matching 130s -k, --keep-translations 130s always extract units with translations 130s ========= SMOKE TEST: /usr/bin/pomerge =========== 130s Usage: pomerge [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 130s 130s Merges XLIFF and Gettext PO localization files. Snippet file produced by 130s e.g. :doc:`pogrep ` and updated by a translator can be 130s merged back into the original files. See: 130s http://docs.translatehouse.org/projects/translate- 130s toolkit/en/latest/commands/pomerge.html for examples and usage instructions. 130s 130s Options: 130s --version show program's version number and exit 130s -h, --help show this help message and exit 130s --manpage output a manpage based on the help 130s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 130s --errorlevel=ERRORLEVEL 130s show errorlevel as: none, message, exception, 130s traceback 130s -i INPUT, --input=INPUT 130s read from INPUT in po, pot, pot, xlf, xliff formats 130s -x EXCLUDE, --exclude=EXCLUDE 130s exclude names matching EXCLUDE from input paths 130s -o OUTPUT, --output=OUTPUT 130s write to OUTPUT in po, pot, pot, xlf, xliff formats 130s -t TEMPLATE, --template=TEMPLATE 130s read from TEMPLATE in po, pot, pot, xlf, xliff formats 130s -S, --timestamp skip conversion if the output file has newer timestamp 130s --mergeblanks=MERGEBLANKS 130s whether to overwrite existing translations with blank 130s translations (yes/no). Default is yes. 130s --mergefuzzy=MERGEFUZZY 130s whether to consider fuzzy translations from input 130s (yes/no). Default is yes. 130s --mergecomments=MERGECOMMENTS 130s whether to merge comments as well as translations 130s (yes/no). Default is yes. 130s ========= SMOKE TEST: /usr/bin/pomigrate2 =========== 130s Usage pomigrate2 [options] 130s 130s Options: 130s -F|--use-fuzzy-matching - use fuzzy algorithms when merging to attempt to match strings 130s -C|--use-compendium - create and use a compendium built from the migrating files 130s -C|--use-compendium=some-compendium.po 130s - use an external compendium during the migration 130s --no-wrap - do not wrap long lines 130s --locale=lang - set locale for newly born files 130s -q|--quiet - suppress most output 130s -p|--pot2po - use pot2po instead of msgmerge to migrate 130s ========= SMOKE TEST: /usr/bin/popuretext =========== 130s Usage: popuretext ( -P pot-dir | po-dir ) file.txt [accelerator] 130s ========= SMOKE TEST: /usr/bin/poreencode =========== 130s Usage: poreencode 130s eg: poreencode UTF-8 af/ 130s ========= SMOKE TEST: /usr/bin/porestructure =========== 130s Usage: porestructure [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT 130s input directory is searched for PO files with (poconflicts) comments, all entries are written to files in a directory structure for pomerge 130s 130s Restructure Gettxt PO files produced by :doc:`poconflicts 130s ` into the original directory tree for merging using 130s :doc:`pomerge `. See: 130s http://docs.translatehouse.org/projects/translate- 130s toolkit/en/latest/commands/pomerge.html for examples and usage instructions. 130s 130s Options: 130s --version show program's version number and exit 130s -h, --help show this help message and exit 130s --manpage output a manpage based on the help 130s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 130s --errorlevel=ERRORLEVEL 130s show errorlevel as: none, message, exception, 130s traceback 130s -i INPUT, --input=INPUT 130s read from INPUT in po format 130s -x EXCLUDE, --exclude=EXCLUDE 130s exclude names matching EXCLUDE from input paths 130s -o OUTPUT, --output=OUTPUT 130s write to OUTPUT in po format 130s ========= SMOKE TEST: /usr/bin/posegment =========== 130s Usage: posegment [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 130s 130s Segment Gettext PO, XLIFF and TMX localization files at the sentence level. 130s See: http://docs.translatehouse.org/projects/translate- 130s toolkit/en/latest/commands/posegment.html for examples and usage instructions. 130s 130s Options: 130s --version show program's version number and exit 130s -h, --help show this help message and exit 130s --manpage output a manpage based on the help 130s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 130s --errorlevel=ERRORLEVEL 130s show errorlevel as: none, message, exception, 130s traceback 130s -i INPUT, --input=INPUT 130s read from INPUT in po, pot, tmx, xlf, xliff formats 130s -x EXCLUDE, --exclude=EXCLUDE 130s exclude names matching EXCLUDE from input paths 130s -o OUTPUT, --output=OUTPUT 130s write to OUTPUT in po, pot, tmx, xlf, xliff formats 130s -S, --timestamp skip conversion if the output file has newer timestamp 130s -P, --pot output PO Templates (.pot) rather than PO files (.po) 130s -l LANG, --language=LANG 130s the target language code 130s --source-language=LANG 130s the source language code (default 'en') 130s --keepspaces Disable automatic stripping of whitespace 130s --only-aligned Removes units where sentence number does not 130s correspond 130s ========= SMOKE TEST: /usr/bin/poswap =========== 131s Usage: poswap [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 131s 131s Builds a new translation file with the target of the input language as source 131s language. .. note:: Ensure that the two po files correspond 100% to the same 131s pot file before using this. To translate Kurdish (ku) through French:: 131s poswap -i fr/ -t ku -o fr-ku To convert the fr-ku files back to en-ku:: 131s poswap --reverse -i fr/ -t fr-ku -o en-ku To translate Quechua (qu) through 131s Spanish (es) using intermediate mode:: poswap --intermediate -t en/ es/ 131s es-qu/ Intermediate mode keeps the original source language (English) and 131s adds the intermediate language translation (Spanish) as a translator comment, 131s making it easier to translate through an intermediate language while keeping 131s both languages visible. See: 131s http://docs.translatehouse.org/projects/translate- 131s toolkit/en/latest/commands/poswap.html for examples and usage instructions. 131s 131s Options: 131s --version show program's version number and exit 131s -h, --help show this help message and exit 131s --manpage output a manpage based on the help 131s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 131s --errorlevel=ERRORLEVEL 131s show errorlevel as: none, message, exception, 131s traceback 131s -i INPUT, --input=INPUT 131s read from INPUT in po, pot formats 131s -x EXCLUDE, --exclude=EXCLUDE 131s exclude names matching EXCLUDE from input paths 131s -o OUTPUT, --output=OUTPUT 131s write to OUTPUT in po, pot formats 131s -t TEMPLATE, --template=TEMPLATE 131s read from TEMPLATE in po, pot, pot formats 131s -S, --timestamp skip conversion if the output file has newer timestamp 131s --reverse reverse the process of intermediate language 131s conversion 131s --intermediate use intermediate language mode: keep original source 131s and add target as translator comment 131s ========= SMOKE TEST: /usr/bin/pot2po =========== 131s 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] 131s 131s Convert template files (like .pot or template .xlf files) to translation 131s files, preserving existing translations. See: 131s http://docs.translatehouse.org/projects/translate- 131s toolkit/en/latest/commands/pot2po.html for examples and usage instructions. 131s 131s Options: 131s --version show program's version number and exit 131s -h, --help show this help message and exit 131s --manpage output a manpage based on the help 131s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 131s --errorlevel=ERRORLEVEL 131s show errorlevel as: none, message, exception, 131s traceback 131s -i INPUT, --input=INPUT 131s read from INPUT in catkeys, lang, pot, ts, xlf, xliff 131s formats 131s -x EXCLUDE, --exclude=EXCLUDE 131s exclude names matching EXCLUDE from input paths 131s -o OUTPUT, --output=OUTPUT 131s write to OUTPUT in catkeys, lang, po, pot, ts, xlf, 131s xliff formats 131s -t TEMPLATE, --template=TEMPLATE 131s read from TEMPLATE in catkeys, lang, po, pot, ts, xlf, 131s xliff formats 131s -S, --timestamp skip conversion if the output file has newer timestamp 131s -P, --pot output PO Templates (.pot) rather than PO files (.po) 131s --tm=TM The file to use as translation memory when fuzzy 131s matching 131s -s MIN_SIMILARITY, --similarity=MIN_SIMILARITY 131s The minimum similarity for inclusion (default: 75%) 131s --nofuzzymatching Disable fuzzy matching 131s ========= SMOKE TEST: /usr/bin/poterminology =========== 131s 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] 131s input directory is searched for PO files, terminology PO file is output file 131s 131s Create a terminology file by reading a set of .po or .pot files to produce a 131s pootle-terminology.pot. See: 131s http://docs.translatehouse.org/projects/translate- 131s toolkit/en/latest/commands/poterminology.html for examples and usage 131s instructions. 131s 131s Options: 131s --version show program's version number and exit 131s -h, --help show this help message and exit 131s --manpage output a manpage based on the help 131s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 131s --errorlevel=ERRORLEVEL 131s show errorlevel as: none, message, exception, 131s traceback 131s -i INPUT, --input=INPUT 131s read from INPUT in po, pot formats 131s -x EXCLUDE, --exclude=EXCLUDE 131s exclude names matching EXCLUDE from input paths 131s -o OUTPUT, --output=OUTPUT 131s write to OUTPUT in po, pot formats 131s -u UPDATEFILE, --update=UPDATEFILE 131s update terminology in UPDATEFILE 131s -S STOPFILE, --stopword-list=STOPFILE 131s read stopword (term exclusion) list from STOPFILE 131s (default /usr/lib/python3/dist- 131s packages/translate/share/stoplist-en) 131s -F, --fold-titlecase fold "Title Case" to lowercase (default) 131s -C, --preserve-case preserve all uppercase/lowercase 131s -I, --ignore-case make all terms lowercase 131s --accelerator=ACCELERATORS 131s ignore the given accelerator characters when matching 131s -t LENGTH, --term-words=LENGTH 131s generate terms of up to LENGTH words (default 3) 131s --nonstop-needed=MIN omit terms with less than MIN nonstop words (default 131s 1) 131s --inputs-needed=MIN omit terms appearing in less than MIN input files 131s (default 2, or 1 if only one input file) 131s --fullmsg-needed=MIN omit full message terms appearing in less than MIN 131s different messages (default 1) 131s --substr-needed=MIN omit substring-only terms appearing in less than MIN 131s different messages (default 2) 131s --locs-needed=MIN omit terms appearing in less than MIN different 131s original source files (default 2) 131s --sort=ORDER output sort order(s): frequency, dictionary, length 131s (may repeat option, default is all in above order) 131s --source-language=LANG 131s the source language code (default 'en') 131s -v, --invert invert the source and target languages for terminology 131s ========= SMOKE TEST: /usr/bin/pretranslate =========== 131s Usage: pretranslate [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 131s 131s Fill localization files with suggested translations based on translation 131s memory and existing translations. See: 131s http://docs.translatehouse.org/projects/translate- 131s toolkit/en/latest/commands/pretranslate.html for examples and usage 131s instructions. 131s 131s Options: 131s --version show program's version number and exit 131s -h, --help show this help message and exit 131s --manpage output a manpage based on the help 131s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 131s --errorlevel=ERRORLEVEL 131s show errorlevel as: none, message, exception, 131s traceback 131s -i INPUT, --input=INPUT 131s read from INPUT in po, pot, pot, xlf, xliff formats 131s -x EXCLUDE, --exclude=EXCLUDE 131s exclude names matching EXCLUDE from input paths 131s -o OUTPUT, --output=OUTPUT 131s write to OUTPUT in po, pot, xlf, xliff formats 131s -t TEMPLATE, --template=TEMPLATE 131s read from TEMPLATE in po, pot, xlf, xliff formats 131s -S, --timestamp skip conversion if the output file has newer timestamp 131s --tm=TM The file to use as translation memory when fuzzy 131s matching 131s -s MIN_SIMILARITY, --similarity=MIN_SIMILARITY 131s The minimum similarity for inclusion (default: 75%) 131s --nofuzzymatching Disable fuzzy matching 131s ========= SMOKE TEST: /usr/bin/prop2po =========== 131s 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] 131s 131s Convert Java/Mozilla .properties files to Gettext PO localization files. 131s See: http://docs.translatehouse.org/projects/translate- 131s toolkit/en/latest/commands/prop2po.html for examples and usage instructions. 131s 131s Options: 131s --version show program's version number and exit 131s -h, --help show this help message and exit 131s --manpage output a manpage based on the help 131s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 131s --errorlevel=ERRORLEVEL 131s show errorlevel as: none, message, exception, 131s traceback 131s -i INPUT, --input=INPUT 131s read from INPUT in lang, properties, strings formats 131s -x EXCLUDE, --exclude=EXCLUDE 131s exclude names matching EXCLUDE from input paths 131s -o OUTPUT, --output=OUTPUT 131s write to OUTPUT in po, pot formats 131s -t TEMPLATE, --template=TEMPLATE 131s read from TEMPLATE in lang, properties, strings 131s formats 131s -S, --timestamp skip conversion if the output file has newer timestamp 131s -P, --pot output PO Templates (.pot) rather than PO files (.po) 131s --personality=TYPE override the input file format: java, java-utf8, java- 131s utf16, xwiki, flex, mozilla, gaia, gwt, skype, 131s strings, strings-utf8, joomla (for .properties files, 131s default: java) 131s --encoding=ENCODING override the encoding set by the personality 131s --duplicates=DUPLICATESTYLE 131s what to do with duplicate strings (identical source 131s text): merge, msgctxt (default: 'msgctxt') 131s ========= SMOKE TEST: /usr/bin/pydiff =========== 131s usage: pydiff [-h] [-i] [-U NUM] [-r] [-N] [--unidirectional-new-file] [-s] 131s [-x PAT] [--fromcontains TEXT] [--tocontains TEXT] 131s [--contains TEXT] [-I] [--accelerator ACCELERATORS] 131s fromfile tofile 131s 131s positional arguments: 131s fromfile 131s tofile 131s 131s options: 131s -h, --help show this help message and exit 131s -i, --ignore-case Ignore case differences in file contents. 131s -U, --unified NUM Output NUM (default 3) lines of unified context 131s -r, --recursive Recursively compare any subdirectories found. 131s -N, --new-file Treat absent files as empty. 131s --unidirectional-new-file 131s Treat absent first files as empty. 131s -s, --report-identical-files 131s Report when two files are the same. 131s -x, --exclude PAT Exclude files that match PAT. 131s --fromcontains TEXT Only show changes where fromfile contains TEXT 131s --tocontains TEXT Only show changes where tofile contains TEXT 131s --contains TEXT Only show changes where fromfile or tofile contains 131s TEXT 131s -I, --ignore-case-contains 131s Ignore case differences when matching any of the 131s changes 131s --accelerator ACCELERATORS 131s ignores the given accelerator characters when matching 131s ========= SMOKE TEST: /usr/bin/pypo2phppo =========== 131s Usage: pypo2phppo [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 131s 131s Convert Python format .po files to PHP format .po files. 131s 131s Options: 131s --version show program's version number and exit 131s -h, --help show this help message and exit 131s --manpage output a manpage based on the help 131s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 131s --errorlevel=ERRORLEVEL 131s show errorlevel as: none, message, exception, 131s traceback 131s -i INPUT, --input=INPUT 131s read from INPUT in po, pot formats 131s -x EXCLUDE, --exclude=EXCLUDE 131s exclude names matching EXCLUDE from input paths 131s -o OUTPUT, --output=OUTPUT 131s write to OUTPUT in po, pot formats 131s -S, --timestamp skip conversion if the output file has newer timestamp 131s ========= SMOKE TEST: /usr/bin/rc2po =========== 131s 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] 131s 131s Convert Windows RC files to Gettext PO localization files. See: 131s http://docs.translatehouse.org/projects/translate- 131s toolkit/en/latest/commands/rc2po.html for examples and usage instructions. 131s 131s Options: 131s --version show program's version number and exit 131s -h, --help show this help message and exit 131s --manpage output a manpage based on the help 131s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 131s --errorlevel=ERRORLEVEL 131s show errorlevel as: none, message, exception, 131s traceback 131s -i INPUT, --input=INPUT 131s read from INPUT in nls, rc formats 131s -x EXCLUDE, --exclude=EXCLUDE 131s exclude names matching EXCLUDE from input paths 131s -o OUTPUT, --output=OUTPUT 131s write to OUTPUT in po, pot formats 131s -t TEMPLATE, --template=TEMPLATE 131s read from TEMPLATE in nls, rc formats 131s -S, --timestamp skip conversion if the output file has newer timestamp 131s -P, --pot output PO Templates (.pot) rather than PO files (.po) 131s --charset=CHARSET charset to use to decode the RC files (autodetection 131s is used by default) 131s -l LANG, --lang=LANG LANG entry (default: None) 131s --sublang=SUBLANG SUBLANG entry (default: None) 131s --duplicates=DUPLICATESTYLE 131s what to do with duplicate strings (identical source 131s text): merge, msgctxt (default: 'msgctxt') 131s ========= SMOKE TEST: /usr/bin/resx2po =========== 131s 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] 131s 131s Convert .Net Resource (.resx) to Gettext PO localisation files. See: 131s http://docs.translatehouse.org/projects/translate- 131s toolkit/en/latest/commands/resx2po.html for examples and usage instructions. 131s 131s Options: 131s --version show program's version number and exit 131s -h, --help show this help message and exit 131s --manpage output a manpage based on the help 131s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 131s --errorlevel=ERRORLEVEL 131s show errorlevel as: none, message, exception, 131s traceback 131s -i INPUT, --input=INPUT 131s read from INPUT in resx format 131s -x EXCLUDE, --exclude=EXCLUDE 131s exclude names matching EXCLUDE from input paths 131s -o OUTPUT, --output=OUTPUT 131s write to OUTPUT in po, pot formats 131s -t TEMPLATE, --template=TEMPLATE 131s read from TEMPLATE in resx format 131s -S, --timestamp skip conversion if the output file has newer timestamp 131s -P, --pot output PO Templates (.pot) rather than PO files (.po) 131s --filter=FILTER leaves to extract e.g. 'name,desc': (default: extract 131s everything) 131s --duplicates=DUPLICATESTYLE 131s what to do with duplicate strings (identical source 131s text): merge, msgctxt (default: 'msgctxt') 131s ========= SMOKE TEST: /usr/bin/sub2po =========== 131s 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] 131s 131s Convert subtitle files to Gettext PO localization files. See: 131s http://docs.translatehouse.org/projects/translate- 131s toolkit/en/latest/commands/sub2po.html for examples and usage instructions. 131s 131s Options: 131s --version show program's version number and exit 131s -h, --help show this help message and exit 131s --manpage output a manpage based on the help 131s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 131s --errorlevel=ERRORLEVEL 131s show errorlevel as: none, message, exception, 131s traceback 131s -i INPUT, --input=INPUT 131s read from INPUT in ass, srt, ssa, sub formats 131s -x EXCLUDE, --exclude=EXCLUDE 131s exclude names matching EXCLUDE from input paths 131s -o OUTPUT, --output=OUTPUT 131s write to OUTPUT in po, pot formats 131s -t TEMPLATE, --template=TEMPLATE 131s read from TEMPLATE in ass, srt, ssa, sub formats 131s -S, --timestamp skip conversion if the output file has newer timestamp 131s -P, --pot output PO Templates (.pot) rather than PO files (.po) 131s --duplicates=DUPLICATESTYLE 131s what to do with duplicate strings (identical source 131s text): merge, msgctxt (default: 'msgctxt') 132s ========= SMOKE TEST: /usr/bin/symb2po =========== 132s 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] 132s 132s Convert Symbian localisation files to Gettext PO localization files. See: 132s http://docs.translatehouse.org/projects/translate- 132s toolkit/en/latest/commands/symb2po.html for examples and usage instructions. 132s 132s Options: 132s --version show program's version number and exit 132s -h, --help show this help message and exit 132s --manpage output a manpage based on the help 132s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 132s --errorlevel=ERRORLEVEL 132s show errorlevel as: none, message, exception, 132s traceback 132s -i INPUT, --input=INPUT 132s read from INPUT in r01 format 132s -x EXCLUDE, --exclude=EXCLUDE 132s exclude names matching EXCLUDE from input paths 132s -o OUTPUT, --output=OUTPUT 132s write to OUTPUT in po, pot formats 132s -t TEMPLATE, --template=TEMPLATE 132s read from TEMPLATE in 132s -S, --timestamp skip conversion if the output file has newer timestamp 132s -P, --pot output PO Templates (.pot) rather than PO files (.po) 132s --duplicates=DUPLICATESTYLE 132s what to do with duplicate strings (identical source 132s text): merge, msgctxt (default: 'msgctxt') 132s ========= SMOKE TEST: /usr/bin/tbx2po =========== 132s Usage: tbx2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 132s 132s Convert TermBase eXchange (.tbx) glossary file into a Gettext PO file. See: 132s http://docs.translatehouse.org/projects/translate- 132s toolkit/en/latest/commands/tbx2po.html for examples and usage instructions 132s 132s Options: 132s --version show program's version number and exit 132s -h, --help show this help message and exit 132s --manpage output a manpage based on the help 132s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 132s --errorlevel=ERRORLEVEL 132s show errorlevel as: none, message, exception, 132s traceback 132s -i INPUT, --input=INPUT 132s read from INPUT in tbx format 132s -x EXCLUDE, --exclude=EXCLUDE 132s exclude names matching EXCLUDE from input paths 132s -o OUTPUT, --output=OUTPUT 132s write to OUTPUT in po, pot formats 132s -S, --timestamp skip conversion if the output file has newer timestamp 132s ========= SMOKE TEST: /usr/bin/tiki2po =========== 132s Usage: tiki2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 132s 132s Convert TikiWiki's language.php files to Gettext PO localization files. See: 132s http://docs.translatehouse.org/projects/translate- 132s toolkit/en/latest/commands/tiki2po.html for examples and usage instructions. 132s 132s Options: 132s --version show program's version number and exit 132s -h, --help show this help message and exit 132s --manpage output a manpage based on the help 132s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 132s --errorlevel=ERRORLEVEL 132s show errorlevel as: none, message, exception, 132s traceback 132s -i INPUT, --input=INPUT 132s read from INPUT in php format 132s -x EXCLUDE, --exclude=EXCLUDE 132s exclude names matching EXCLUDE from input paths 132s -o OUTPUT, --output=OUTPUT 132s write to OUTPUT in po, pot formats 132s -S, --timestamp skip conversion if the output file has newer timestamp 132s --include-unused Include strings in the unused section 132s ========= SMOKE TEST: /usr/bin/tmserver =========== 132s usage: tmserver [-h] [-d TMDBFILE] [-f TMFILES] [-t TARGET_LANG] 132s [-s SOURCE_LANG] [-b BIND] [-p PORT] 132s [--max-candidates MAX_CANDIDATES] 132s [--min-similarity MIN_SIMILARITY] [--max-length MAX_LENGTH] 132s [--debug] 132s 132s options: 132s -h, --help show this help message and exit 132s -d, --tmdb TMDBFILE translation memory database file 132s -f, --import-translation-file TMFILES 132s translation file to import into the database 132s -t, --import-target-lang TARGET_LANG 132s target language of translation files 132s -s, --import-source-lang SOURCE_LANG 132s source language of translation files 132s -b, --bind BIND address to bind server to (default: localhost) 132s -p, --port PORT port to listen on (default: 8888) 132s --max-candidates MAX_CANDIDATES 132s Maximum number of candidates 132s --min-similarity MIN_SIMILARITY 132s minimum similarity 132s --max-length MAX_LENGTH 132s Maximum string length 132s --debug enable debugging features 132s ========= SMOKE TEST: /usr/bin/toml2po =========== 132s Usage: toml2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] [-P|--pot] 132s 132s Convert TOML files to Gettext PO localization files. See: 132s http://docs.translatehouse.org/projects/translate- 132s toolkit/en/latest/commands/toml2po.html for examples and usage instructions. 132s 132s Options: 132s --version show program's version number and exit 132s -h, --help show this help message and exit 132s --manpage output a manpage based on the help 132s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 132s --errorlevel=ERRORLEVEL 132s show errorlevel as: none, message, exception, 132s traceback 132s -i INPUT, --input=INPUT 132s read from INPUT in toml format 132s -x EXCLUDE, --exclude=EXCLUDE 132s exclude names matching EXCLUDE from input paths 132s -o OUTPUT, --output=OUTPUT 132s write to OUTPUT in po, pot formats 132s -t TEMPLATE, --template=TEMPLATE 132s read from TEMPLATE in toml format 132s -S, --timestamp skip conversion if the output file has newer timestamp 132s -P, --pot output PO Templates (.pot) rather than PO files (.po) 132s --duplicates=DUPLICATESTYLE 132s what to do with duplicate strings (identical source 132s text): merge, msgctxt (default: 'msgctxt') 132s ========= SMOKE TEST: /usr/bin/ts2po =========== 132s Usage: ts2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 132s 132s Convert Qt Linguist (.ts) files to Gettext PO localization files. See: 132s http://docs.translatehouse.org/projects/translate- 132s toolkit/en/latest/commands/ts2po.html for examples and usage instructions. 132s 132s Options: 132s --version show program's version number and exit 132s -h, --help show this help message and exit 132s --manpage output a manpage based on the help 132s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 132s --errorlevel=ERRORLEVEL 132s show errorlevel as: none, message, exception, 132s traceback 132s -i INPUT, --input=INPUT 132s read from INPUT in ts format 132s -x EXCLUDE, --exclude=EXCLUDE 132s exclude names matching EXCLUDE from input paths 132s -o OUTPUT, --output=OUTPUT 132s write to OUTPUT in po, pot formats 132s -S, --timestamp skip conversion if the output file has newer timestamp 132s -P, --pot output PO Templates (.pot) rather than PO files (.po) 132s --duplicates=DUPLICATESTYLE 132s what to do with duplicate strings (identical source 132s text): merge, msgctxt (default: 'msgctxt') 132s ========= SMOKE TEST: /usr/bin/txt2po =========== 132s Usage: txt2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 132s 132s Convert plain text (.txt) files to Gettext PO localization files. See: 132s http://docs.translatehouse.org/projects/translate- 132s toolkit/en/latest/commands/txt2po.html for examples and usage instructions. 132s 132s Options: 132s --version show program's version number and exit 132s -h, --help show this help message and exit 132s --manpage output a manpage based on the help 132s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 132s --errorlevel=ERRORLEVEL 132s show errorlevel as: none, message, exception, 132s traceback 132s -i INPUT, --input=INPUT 132s read from INPUT in *, txt formats 132s -x EXCLUDE, --exclude=EXCLUDE 132s exclude names matching EXCLUDE from input paths 132s -o OUTPUT, --output=OUTPUT 132s write to OUTPUT in po, pot formats 132s -S, --timestamp skip conversion if the output file has newer timestamp 132s -P, --pot output PO Templates (.pot) rather than PO files (.po) 132s --encoding=ENCODING The encoding of the input file (default: UTF-8) 132s --flavour=FLAVOUR The flavour of text file: plain (default), dokuwiki, 132s mediawiki 132s --no-segmentation Don't segment the file, treat it like a single message 132s --duplicates=DUPLICATESTYLE 132s what to do with duplicate strings (identical source 132s text): merge, msgctxt (default: 'msgctxt') 132s ========= SMOKE TEST: /usr/bin/web2py2po =========== 132s Usage: web2py2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 132s 132s Convert web2py translation dictionaries (.py) to GNU/gettext PO files. See: 132s http://docs.translatehouse.org/projects/translate- 132s toolkit/en/latest/commands/web2py2po.html for examples and usage instructions. 132s 132s Options: 132s --version show program's version number and exit 132s -h, --help show this help message and exit 132s --manpage output a manpage based on the help 132s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 132s --errorlevel=ERRORLEVEL 132s show errorlevel as: none, message, exception, 132s traceback 132s -i INPUT, --input=INPUT 132s read from INPUT in py format 132s -x EXCLUDE, --exclude=EXCLUDE 132s exclude names matching EXCLUDE from input paths 132s -o OUTPUT, --output=OUTPUT 132s write to OUTPUT in po, pot formats 132s -S, --timestamp skip conversion if the output file has newer timestamp 132s -P, --pot output PO Templates (.pot) rather than PO files (.po) 132s --duplicates=DUPLICATESTYLE 132s what to do with duplicate strings (identical source 132s text): merge, msgctxt (default: 'msgctxt') 132s ========= SMOKE TEST: /usr/bin/xliff2odf =========== 132s Usage: xliff2odf [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 132s 132s Convert XLIFF translation files to OpenDocument (ODF) files. See: 132s http://docs.translatehouse.org/projects/translate- 132s toolkit/en/latest/commands/odf2xliff.html for examples and usage instructions. 132s 132s Options: 132s --version show program's version number and exit 132s -h, --help show this help message and exit 132s --manpage output a manpage based on the help 132s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 132s --errorlevel=ERRORLEVEL 132s show errorlevel as: none, message, exception, 132s traceback 132s -i INPUT, --input=INPUT 132s read from INPUT in xlf format 132s -x EXCLUDE, --exclude=EXCLUDE 132s exclude names matching EXCLUDE from input paths 132s -o OUTPUT, --output=OUTPUT 132s write to OUTPUT in odc, odf, odg, odi, odm, odp, ods, 132s odt, otc, otf, otg, oth, oti, otp, ots, ott formats 132s -t TEMPLATE, --template=TEMPLATE 132s read from TEMPLATE in odc, odf, odg, odi, odm, odp, 132s ods, odt, otc, otf, otg, oth, oti, otp, ots, ott 132s formats 132s -S, --timestamp skip conversion if the output file has newer timestamp 133s ========= SMOKE TEST: /usr/bin/xliff2oo =========== 133s Usage: xliff2oo [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 133s 133s Convert XLIFF localization files to an OpenOffice.org (SDF) localization 133s file. See: http://docs.translatehouse.org/projects/translate- 133s toolkit/en/latest/commands/oo2po.html for examples and usage instructions. 133s 133s Options: 133s --version show program's version number and exit 133s -h, --help show this help message and exit 133s --manpage output a manpage based on the help 133s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 133s --errorlevel=ERRORLEVEL 133s show errorlevel as: none, message, exception, 133s traceback 133s -i INPUT, --input=INPUT 133s read from INPUT in po, pot, xlf, xliff formats 133s -x EXCLUDE, --exclude=EXCLUDE 133s exclude names matching EXCLUDE from input paths 133s -o OUTPUT, --output=OUTPUT 133s write to OUTPUT in oo, sdf formats 133s -t TEMPLATE, --template=TEMPLATE 133s read from TEMPLATE in oo, sdf formats 133s -S, --timestamp skip conversion if the output file has newer timestamp 133s -l LANG, --language=LANG 133s set target language code (e.g. af-ZA) [required] 133s --source-language=LANG 133s set source language code (default en-US) 133s -T, --keeptimestamp don't change the timestamps of the strings 133s --nonrecursiveoutput don't treat the output oo as a recursive store 133s --nonrecursivetemplate 133s don't treat the template oo as a recursive store 133s --skipsource don't output the source language, but fallback to it 133s where needed 133s --filteraction=ACTION 133s action on pofilter failure: none (default), warn, 133s exclude-serious, exclude-all 133s --fuzzy use translations marked fuzzy 133s --nofuzzy don't use translations marked fuzzy (default) 133s --multifile=MULTIFILESTYLE 133s how to split po/pot files (single, toplevel or 133s onefile) 133s ========= SMOKE TEST: /usr/bin/xliff2po =========== 133s Usage: xliff2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 133s 133s Convert XLIFF localization files to Gettext PO localization files. See: 133s http://docs.translatehouse.org/projects/translate- 133s toolkit/en/latest/commands/xliff2po.html for examples and usage instructions. 133s 133s Options: 133s --version show program's version number and exit 133s -h, --help show this help message and exit 133s --manpage output a manpage based on the help 133s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 133s --errorlevel=ERRORLEVEL 133s show errorlevel as: none, message, exception, 133s traceback 133s -i INPUT, --input=INPUT 133s read from INPUT in xlf, xliff formats 133s -x EXCLUDE, --exclude=EXCLUDE 133s exclude names matching EXCLUDE from input paths 133s -o OUTPUT, --output=OUTPUT 133s write to OUTPUT in po, pot formats 133s -S, --timestamp skip conversion if the output file has newer timestamp 133s -P, --pot output PO Templates (.pot) rather than PO files (.po) 133s --duplicates=DUPLICATESTYLE 133s what to do with duplicate strings (identical source 133s text): merge, msgctxt (default: 'msgctxt') 133s ========= SMOKE TEST: /usr/bin/yaml2po =========== 133s 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] 133s 133s Convert YAML files to Gettext PO localization files. See: 133s http://docs.translatehouse.org/projects/translate- 133s toolkit/en/latest/commands/yaml2po.html for examples and usage instructions. 133s 133s Options: 133s --version show program's version number and exit 133s -h, --help show this help message and exit 133s --manpage output a manpage based on the help 133s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 133s --errorlevel=ERRORLEVEL 133s show errorlevel as: none, message, exception, 133s traceback 133s -i INPUT, --input=INPUT 133s read from INPUT in yaml, yml formats 133s -x EXCLUDE, --exclude=EXCLUDE 133s exclude names matching EXCLUDE from input paths 133s -o OUTPUT, --output=OUTPUT 133s write to OUTPUT in po, pot formats 133s -t TEMPLATE, --template=TEMPLATE 133s read from TEMPLATE in yaml, yml formats 133s -S, --timestamp skip conversion if the output file has newer timestamp 133s -P, --pot output PO Templates (.pot) rather than PO files (.po) 133s --duplicates=DUPLICATESTYLE 133s what to do with duplicate strings (identical source 133s text): merge, msgctxt (default: 'msgctxt') 133s autopkgtest [23:51:28]: test translate-toolkit: -----------------------] 134s translate-toolkit PASS 134s autopkgtest [23:51:29]: test translate-toolkit: - - - - - - - - - - results - - - - - - - - - - 134s autopkgtest [23:51:29]: test python3-translate: preparing testbed 153s Creating nova instance adt-resolute-amd64-translate-toolkit-20260130-234915-juju-7f2275-prod-proposed-migration-environment-20-06025705-37e3-4006-967b-e925797c3124 from image adt/ubuntu-resolute-amd64-server-20260130.img (UUID afba56f8-6ab4-44eb-9e07-036bcbd7054f)... 221s autopkgtest [23:52:56]: testbed dpkg architecture: amd64 221s autopkgtest [23:52:56]: testbed apt version: 3.1.14 222s autopkgtest [23:52:57]: @@@@@@@@@@@@@@@@@@@@ test bed setup 222s autopkgtest [23:52:57]: testbed release detected to be: resolute 222s autopkgtest [23:52:57]: updating testbed package index (apt update) 223s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 223s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 223s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 223s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 223s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [1187 kB] 223s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [26.6 kB] 223s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [4676 B] 223s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [105 kB] 223s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main i386 Packages [101 kB] 223s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 Packages [118 kB] 223s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 c-n-f Metadata [4196 B] 223s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/restricted amd64 Packages [20.9 kB] 223s Get:13 http://ftpmaster.internal/ubuntu resolute-proposed/restricted i386 Packages [6164 B] 223s Get:14 http://ftpmaster.internal/ubuntu resolute-proposed/restricted amd64 c-n-f Metadata [388 B] 223s Get:15 http://ftpmaster.internal/ubuntu resolute-proposed/universe i386 Packages [382 kB] 223s Get:16 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 Packages [963 kB] 223s Get:17 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 c-n-f Metadata [26.2 kB] 223s Get:18 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse i386 Packages [3336 B] 223s Get:19 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse amd64 Packages [24.0 kB] 223s Get:20 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse amd64 c-n-f Metadata [1304 B] 224s Fetched 3099 kB in 1s (4393 kB/s) 224s Reading package lists... 225s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 225s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 225s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 225s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 226s Reading package lists... 226s Reading package lists... 226s Building dependency tree... 226s Reading state information... 226s Calculating upgrade... 226s The following packages will be upgraded: 226s 3cpio bzip2 inetutils-telnet libbz2-1.0 libsqlite3-0 rng-tools-debian telnet 226s 7 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 226s Need to get 1234 kB of archives. 226s After this operation, 18.4 kB disk space will be freed. 226s Get:1 http://ftpmaster.internal/ubuntu resolute/universe amd64 rng-tools-debian amd64 2.6build1 [46.1 kB] 226s Get:2 http://ftpmaster.internal/ubuntu resolute/main amd64 bzip2 amd64 1.0.8-6build2 [34.3 kB] 226s Get:3 http://ftpmaster.internal/ubuntu resolute/main amd64 libbz2-1.0 amd64 1.0.8-6build2 [37.0 kB] 226s Get:4 http://ftpmaster.internal/ubuntu resolute/main amd64 libsqlite3-0 amd64 3.46.1-9 [722 kB] 227s Get:5 http://ftpmaster.internal/ubuntu resolute/main amd64 inetutils-telnet amd64 2:2.7-2ubuntu1 [107 kB] 227s Get:6 http://ftpmaster.internal/ubuntu resolute/main amd64 telnet all 0.17+2.7-2ubuntu1 [3636 B] 227s Get:7 http://ftpmaster.internal/ubuntu resolute/main amd64 3cpio amd64 0.13.1-1ubuntu1 [284 kB] 227s dpkg-preconfigure: unable to re-open stdin: No such file or directory 227s Fetched 1234 kB in 0s (3919 kB/s) 227s (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 ... 124211 files and directories currently installed.) 227s Preparing to unpack .../rng-tools-debian_2.6build1_amd64.deb ... 227s Unpacking rng-tools-debian (2.6build1) over (2.6) ... 227s Preparing to unpack .../bzip2_1.0.8-6build2_amd64.deb ... 227s Unpacking bzip2 (1.0.8-6build2) over (1.0.8-6build1) ... 227s Preparing to unpack .../libbz2-1.0_1.0.8-6build2_amd64.deb ... 227s Unpacking libbz2-1.0:amd64 (1.0.8-6build2) over (1.0.8-6build1) ... 227s Setting up libbz2-1.0:amd64 (1.0.8-6build2) ... 227s (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 ... 124211 files and directories currently installed.) 227s Preparing to unpack .../libsqlite3-0_3.46.1-9_amd64.deb ... 227s Unpacking libsqlite3-0:amd64 (3.46.1-9) over (3.46.1-8) ... 227s Preparing to unpack .../inetutils-telnet_2%3a2.7-2ubuntu1_amd64.deb ... 227s Unpacking inetutils-telnet (2:2.7-2ubuntu1) over (2:2.6-4ubuntu1) ... 227s Preparing to unpack .../telnet_0.17+2.7-2ubuntu1_all.deb ... 227s Unpacking telnet (0.17+2.7-2ubuntu1) over (0.17+2.6-4ubuntu1) ... 227s Preparing to unpack .../3cpio_0.13.1-1ubuntu1_amd64.deb ... 227s Unpacking 3cpio (0.13.1-1ubuntu1) over (0.12.0-1ubuntu1) ... 227s Setting up 3cpio (0.13.1-1ubuntu1) ... 227s Setting up libsqlite3-0:amd64 (3.46.1-9) ... 227s Setting up inetutils-telnet (2:2.7-2ubuntu1) ... 227s Setting up bzip2 (1.0.8-6build2) ... 227s Setting up rng-tools-debian (2.6build1) ... 228s Setting up telnet (0.17+2.7-2ubuntu1) ... 228s Processing triggers for man-db (2.13.1-1) ... 229s Processing triggers for libc-bin (2.42-2ubuntu4) ... 229s autopkgtest [23:53:04]: upgrading testbed (apt dist-upgrade and autopurge) 229s Reading package lists... 229s Building dependency tree... 229s Reading state information... 229s Calculating upgrade... 229s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 230s Reading package lists... 230s Building dependency tree... 230s Reading state information... 230s Solving dependencies... 230s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 230s autopkgtest [23:53:05]: rebooting testbed after setup commands that affected boot 261s Reading package lists... 261s Building dependency tree... 261s Reading state information... 261s Solving dependencies... 261s The following NEW packages will be installed: 261s dictionaries-common emacsen-common gettext hunspell-en-us libapr1t64 261s libaprutil1t64 libaspell15 libenchant-2-2 libexttextcat-data libgomp1 261s libhunspell-1.7-0 libpython3.14-minimal libpython3.14-stdlib libserf-1-1 261s libsvn1 libutf8proc3 libxapian30 libxslt1.1 python3-aeidon python3-all 261s python3-bs4 python3-charset-normalizer python3-cheroot 261s python3-diff-match-patch python3-enchant python3-iniconfig python3-iniparse 261s python3-levenshtein python3-lxml python3-mistletoe python3-phply 261s python3-pluggy python3-ply python3-pycountry python3-pytest python3-pytz 261s python3-rapidfuzz python3-ruamel.yaml python3-ruamel.yaml.clib 261s python3-soupsieve python3-syrupy python3-tomlkit python3-translate 261s python3-unicode-segmentation-rs python3-vobject python3-xapian python3.14 261s python3.14-minimal subversion 261s 0 upgraded, 49 newly installed, 0 to remove and 0 not upgraded. 261s Need to get 21.1 MB of archives. 261s After this operation, 101 MB of additional disk space will be used. 261s Get:1 http://ftpmaster.internal/ubuntu resolute/main amd64 libpython3.14-minimal amd64 3.14.2-1 [920 kB] 261s Get:2 http://ftpmaster.internal/ubuntu resolute/main amd64 python3.14-minimal amd64 3.14.2-1 [2563 kB] 261s Get:3 http://ftpmaster.internal/ubuntu resolute/main amd64 emacsen-common all 3.0.8 [13.9 kB] 261s Get:4 http://ftpmaster.internal/ubuntu resolute/main amd64 dictionaries-common all 1.31.3 [179 kB] 261s Get:5 http://ftpmaster.internal/ubuntu resolute/main amd64 libgomp1 amd64 15.2.0-12ubuntu1 [151 kB] 261s Get:6 http://ftpmaster.internal/ubuntu resolute/main amd64 gettext amd64 0.23.2-1 [1019 kB] 261s Get:7 http://ftpmaster.internal/ubuntu resolute/main amd64 hunspell-en-us all 1:2020.12.07-4build1 [585 kB] 261s Get:8 http://ftpmaster.internal/ubuntu resolute/main amd64 libapr1t64 amd64 1.7.6-3 [109 kB] 261s Get:9 http://ftpmaster.internal/ubuntu resolute/main amd64 libaprutil1t64 amd64 1.6.3-3ubuntu3 [93.8 kB] 261s Get:10 http://ftpmaster.internal/ubuntu resolute/main amd64 libaspell15 amd64 0.60.8.2-1 [333 kB] 261s Get:11 http://ftpmaster.internal/ubuntu resolute/main amd64 libhunspell-1.7-0 amd64 1.7.2+really1.7.2-11 [316 kB] 261s Get:12 http://ftpmaster.internal/ubuntu resolute/main amd64 libenchant-2-2 amd64 2.8.2+dfsg1-3build1 [59.2 kB] 261s Get:13 http://ftpmaster.internal/ubuntu resolute/main amd64 libexttextcat-data all 3.4.7-1ubuntu2 [193 kB] 261s Get:14 http://ftpmaster.internal/ubuntu resolute/main amd64 libpython3.14-stdlib amd64 3.14.2-1 [2398 kB] 262s Get:15 http://ftpmaster.internal/ubuntu resolute/universe amd64 libserf-1-1 amd64 1.3.10-3ubuntu1 [48.2 kB] 262s Get:16 http://ftpmaster.internal/ubuntu resolute/universe amd64 libutf8proc3 amd64 2.10.0-2 [71.6 kB] 262s Get:17 http://ftpmaster.internal/ubuntu resolute/universe amd64 libsvn1 amd64 1.14.5-5 [1360 kB] 262s Get:18 http://ftpmaster.internal/ubuntu resolute/universe amd64 libxapian30 amd64 1.4.29-3 [740 kB] 262s Get:19 http://ftpmaster.internal/ubuntu resolute/main amd64 libxslt1.1 amd64 1.1.43-0.3 [172 kB] 262s Get:20 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-aeidon all 1.15-2build1 [225 kB] 262s Get:21 http://ftpmaster.internal/ubuntu resolute/main amd64 python3.14 amd64 3.14.2-1 [816 kB] 262s Get:22 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-all amd64 3.13.9-3 [890 B] 262s Get:23 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-soupsieve all 2.8.3-1 [34.0 kB] 262s Get:24 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-bs4 all 4.14.3-2build1 [84.8 kB] 262s Get:25 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-charset-normalizer amd64 3.4.4-2 [173 kB] 262s Get:26 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-cheroot all 11.1.2+ds1-1 [81.5 kB] 262s Get:27 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-diff-match-patch all 20241021-1 [33.6 kB] 262s Get:28 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-enchant all 3.3.0-1 [35.0 kB] 262s Get:29 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-iniconfig all 2.1.0-2 [6962 B] 262s Get:30 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-rapidfuzz amd64 3.12.2+ds-1build1 [2746 kB] 262s Get:31 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-levenshtein amd64 0.27.1-2build1 [145 kB] 262s Get:32 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-lxml amd64 6.0.2-1 [2333 kB] 262s Get:33 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-mistletoe all 1.5.1-1 [41.7 kB] 262s Get:34 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-ply all 3.11-10 [45.9 kB] 262s Get:35 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-phply all 1.2.6-1build1 [50.6 kB] 262s Get:36 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pluggy all 1.6.0-2 [21.1 kB] 262s Get:37 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pytest all 9.0.2-2 [277 kB] 262s Get:38 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pytz all 2025.2-5 [32.4 kB] 262s Get:39 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-ruamel.yaml.clib amd64 0.2.15+ds-1 [200 kB] 262s Get:40 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 python3-ruamel.yaml all 0.18.10+ds-1build1 [127 kB] 262s Get:41 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-syrupy all 5.0.0-1 [47.9 kB] 262s Get:42 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-tomlkit all 0.13.3-2 [39.1 kB] 262s Get:43 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-translate all 3.18.1-1 [339 kB] 262s Get:44 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-unicode-segmentation-rs amd64 0.2.1-1 [225 kB] 262s Get:45 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-vobject all 0.9.9+dfsg-1 [41.5 kB] 262s Get:46 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-xapian amd64 1.4.29-1build1 [588 kB] 262s Get:47 http://ftpmaster.internal/ubuntu resolute/universe amd64 subversion amd64 1.14.5-5 [900 kB] 262s Get:48 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-iniparse all 0.5.1-2 [21.4 kB] 262s Get:49 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pycountry all 24.6.1+ds1-1 [30.0 kB] 262s Preconfiguring packages ... 262s Fetched 21.1 MB in 1s (22.1 MB/s) 262s Selecting previously unselected package libpython3.14-minimal:amd64. 263s (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 ... 124211 files and directories currently installed.) 263s Preparing to unpack .../00-libpython3.14-minimal_3.14.2-1_amd64.deb ... 263s Unpacking libpython3.14-minimal:amd64 (3.14.2-1) ... 263s Selecting previously unselected package python3.14-minimal. 263s Preparing to unpack .../01-python3.14-minimal_3.14.2-1_amd64.deb ... 263s Unpacking python3.14-minimal (3.14.2-1) ... 263s Selecting previously unselected package emacsen-common. 263s Preparing to unpack .../02-emacsen-common_3.0.8_all.deb ... 263s Unpacking emacsen-common (3.0.8) ... 263s Selecting previously unselected package dictionaries-common. 263s Preparing to unpack .../03-dictionaries-common_1.31.3_all.deb ... 263s Adding 'diversion of /usr/share/dict/words to /usr/share/dict/words.pre-dictionaries-common by dictionaries-common' 263s Unpacking dictionaries-common (1.31.3) ... 263s Selecting previously unselected package libgomp1:amd64. 263s Preparing to unpack .../04-libgomp1_15.2.0-12ubuntu1_amd64.deb ... 263s Unpacking libgomp1:amd64 (15.2.0-12ubuntu1) ... 263s Selecting previously unselected package gettext. 263s Preparing to unpack .../05-gettext_0.23.2-1_amd64.deb ... 263s Unpacking gettext (0.23.2-1) ... 263s Selecting previously unselected package hunspell-en-us. 263s Preparing to unpack .../06-hunspell-en-us_1%3a2020.12.07-4build1_all.deb ... 263s Unpacking hunspell-en-us (1:2020.12.07-4build1) ... 263s Selecting previously unselected package libapr1t64:amd64. 263s Preparing to unpack .../07-libapr1t64_1.7.6-3_amd64.deb ... 263s Unpacking libapr1t64:amd64 (1.7.6-3) ... 263s Selecting previously unselected package libaprutil1t64:amd64. 263s Preparing to unpack .../08-libaprutil1t64_1.6.3-3ubuntu3_amd64.deb ... 263s Unpacking libaprutil1t64:amd64 (1.6.3-3ubuntu3) ... 263s Selecting previously unselected package libaspell15:amd64. 263s Preparing to unpack .../09-libaspell15_0.60.8.2-1_amd64.deb ... 263s Unpacking libaspell15:amd64 (0.60.8.2-1) ... 263s Selecting previously unselected package libhunspell-1.7-0:amd64. 263s Preparing to unpack .../10-libhunspell-1.7-0_1.7.2+really1.7.2-11_amd64.deb ... 263s Unpacking libhunspell-1.7-0:amd64 (1.7.2+really1.7.2-11) ... 263s Selecting previously unselected package libenchant-2-2:amd64. 263s Preparing to unpack .../11-libenchant-2-2_2.8.2+dfsg1-3build1_amd64.deb ... 263s Unpacking libenchant-2-2:amd64 (2.8.2+dfsg1-3build1) ... 263s Selecting previously unselected package libexttextcat-data. 263s Preparing to unpack .../12-libexttextcat-data_3.4.7-1ubuntu2_all.deb ... 263s Unpacking libexttextcat-data (3.4.7-1ubuntu2) ... 263s Selecting previously unselected package libpython3.14-stdlib:amd64. 263s Preparing to unpack .../13-libpython3.14-stdlib_3.14.2-1_amd64.deb ... 263s Unpacking libpython3.14-stdlib:amd64 (3.14.2-1) ... 263s Selecting previously unselected package libserf-1-1:amd64. 263s Preparing to unpack .../14-libserf-1-1_1.3.10-3ubuntu1_amd64.deb ... 263s Unpacking libserf-1-1:amd64 (1.3.10-3ubuntu1) ... 263s Selecting previously unselected package libutf8proc3:amd64. 263s Preparing to unpack .../15-libutf8proc3_2.10.0-2_amd64.deb ... 263s Unpacking libutf8proc3:amd64 (2.10.0-2) ... 263s Selecting previously unselected package libsvn1:amd64. 263s Preparing to unpack .../16-libsvn1_1.14.5-5_amd64.deb ... 263s Unpacking libsvn1:amd64 (1.14.5-5) ... 263s Selecting previously unselected package libxapian30:amd64. 263s Preparing to unpack .../17-libxapian30_1.4.29-3_amd64.deb ... 263s Unpacking libxapian30:amd64 (1.4.29-3) ... 263s Selecting previously unselected package libxslt1.1:amd64. 263s Preparing to unpack .../18-libxslt1.1_1.1.43-0.3_amd64.deb ... 263s Unpacking libxslt1.1:amd64 (1.1.43-0.3) ... 263s Selecting previously unselected package python3-aeidon. 263s Preparing to unpack .../19-python3-aeidon_1.15-2build1_all.deb ... 263s Unpacking python3-aeidon (1.15-2build1) ... 263s Selecting previously unselected package python3.14. 263s Preparing to unpack .../20-python3.14_3.14.2-1_amd64.deb ... 263s Unpacking python3.14 (3.14.2-1) ... 263s Selecting previously unselected package python3-all. 263s Preparing to unpack .../21-python3-all_3.13.9-3_amd64.deb ... 263s Unpacking python3-all (3.13.9-3) ... 263s Selecting previously unselected package python3-soupsieve. 263s Preparing to unpack .../22-python3-soupsieve_2.8.3-1_all.deb ... 263s Unpacking python3-soupsieve (2.8.3-1) ... 263s Selecting previously unselected package python3-bs4. 263s Preparing to unpack .../23-python3-bs4_4.14.3-2build1_all.deb ... 263s Unpacking python3-bs4 (4.14.3-2build1) ... 263s Selecting previously unselected package python3-charset-normalizer. 263s Preparing to unpack .../24-python3-charset-normalizer_3.4.4-2_amd64.deb ... 263s Unpacking python3-charset-normalizer (3.4.4-2) ... 263s Selecting previously unselected package python3-cheroot. 263s Preparing to unpack .../25-python3-cheroot_11.1.2+ds1-1_all.deb ... 263s Unpacking python3-cheroot (11.1.2+ds1-1) ... 263s Selecting previously unselected package python3-diff-match-patch. 263s Preparing to unpack .../26-python3-diff-match-patch_20241021-1_all.deb ... 263s Unpacking python3-diff-match-patch (20241021-1) ... 263s Selecting previously unselected package python3-enchant. 263s Preparing to unpack .../27-python3-enchant_3.3.0-1_all.deb ... 263s Unpacking python3-enchant (3.3.0-1) ... 263s Selecting previously unselected package python3-iniconfig. 263s Preparing to unpack .../28-python3-iniconfig_2.1.0-2_all.deb ... 263s Unpacking python3-iniconfig (2.1.0-2) ... 263s Selecting previously unselected package python3-rapidfuzz. 263s Preparing to unpack .../29-python3-rapidfuzz_3.12.2+ds-1build1_amd64.deb ... 263s Unpacking python3-rapidfuzz (3.12.2+ds-1build1) ... 263s Selecting previously unselected package python3-levenshtein. 263s Preparing to unpack .../30-python3-levenshtein_0.27.1-2build1_amd64.deb ... 263s Unpacking python3-levenshtein (0.27.1-2build1) ... 263s Selecting previously unselected package python3-lxml:amd64. 263s Preparing to unpack .../31-python3-lxml_6.0.2-1_amd64.deb ... 263s Unpacking python3-lxml:amd64 (6.0.2-1) ... 263s Selecting previously unselected package python3-mistletoe. 263s Preparing to unpack .../32-python3-mistletoe_1.5.1-1_all.deb ... 263s Unpacking python3-mistletoe (1.5.1-1) ... 263s Selecting previously unselected package python3-ply. 263s Preparing to unpack .../33-python3-ply_3.11-10_all.deb ... 263s Unpacking python3-ply (3.11-10) ... 263s Selecting previously unselected package python3-phply. 263s Preparing to unpack .../34-python3-phply_1.2.6-1build1_all.deb ... 263s Unpacking python3-phply (1.2.6-1build1) ... 263s Selecting previously unselected package python3-pluggy. 263s Preparing to unpack .../35-python3-pluggy_1.6.0-2_all.deb ... 263s Unpacking python3-pluggy (1.6.0-2) ... 263s Selecting previously unselected package python3-pytest. 263s Preparing to unpack .../36-python3-pytest_9.0.2-2_all.deb ... 263s Unpacking python3-pytest (9.0.2-2) ... 263s Selecting previously unselected package python3-pytz. 263s Preparing to unpack .../37-python3-pytz_2025.2-5_all.deb ... 263s Unpacking python3-pytz (2025.2-5) ... 263s Selecting previously unselected package python3-ruamel.yaml.clib. 263s Preparing to unpack .../38-python3-ruamel.yaml.clib_0.2.15+ds-1_amd64.deb ... 263s Unpacking python3-ruamel.yaml.clib (0.2.15+ds-1) ... 263s Selecting previously unselected package python3-ruamel.yaml. 263s Preparing to unpack .../39-python3-ruamel.yaml_0.18.10+ds-1build1_all.deb ... 263s Unpacking python3-ruamel.yaml (0.18.10+ds-1build1) ... 263s Selecting previously unselected package python3-syrupy. 263s Preparing to unpack .../40-python3-syrupy_5.0.0-1_all.deb ... 263s Unpacking python3-syrupy (5.0.0-1) ... 263s Selecting previously unselected package python3-tomlkit. 263s Preparing to unpack .../41-python3-tomlkit_0.13.3-2_all.deb ... 263s Unpacking python3-tomlkit (0.13.3-2) ... 263s Selecting previously unselected package python3-translate. 263s Preparing to unpack .../42-python3-translate_3.18.1-1_all.deb ... 263s Unpacking python3-translate (3.18.1-1) ... 263s Selecting previously unselected package python3-unicode-segmentation-rs. 263s Preparing to unpack .../43-python3-unicode-segmentation-rs_0.2.1-1_amd64.deb ... 263s Unpacking python3-unicode-segmentation-rs (0.2.1-1) ... 263s Selecting previously unselected package python3-vobject. 263s Preparing to unpack .../44-python3-vobject_0.9.9+dfsg-1_all.deb ... 263s Unpacking python3-vobject (0.9.9+dfsg-1) ... 263s Selecting previously unselected package python3-xapian. 263s Preparing to unpack .../45-python3-xapian_1.4.29-1build1_amd64.deb ... 263s Unpacking python3-xapian (1.4.29-1build1) ... 263s Selecting previously unselected package subversion. 264s Preparing to unpack .../46-subversion_1.14.5-5_amd64.deb ... 264s Unpacking subversion (1.14.5-5) ... 264s Selecting previously unselected package python3-iniparse. 264s Preparing to unpack .../47-python3-iniparse_0.5.1-2_all.deb ... 264s Unpacking python3-iniparse (0.5.1-2) ... 264s Selecting previously unselected package python3-pycountry. 264s Preparing to unpack .../48-python3-pycountry_24.6.1+ds1-1_all.deb ... 264s Unpacking python3-pycountry (24.6.1+ds1-1) ... 264s Setting up python3-iniconfig (2.1.0-2) ... 264s Setting up libxapian30:amd64 (1.4.29-3) ... 264s Setting up python3-rapidfuzz (3.12.2+ds-1build1) ... 264s Setting up python3-diff-match-patch (20241021-1) ... 264s Setting up python3-aeidon (1.15-2build1) ... 264s Setting up libutf8proc3:amd64 (2.10.0-2) ... 264s Setting up libaspell15:amd64 (0.60.8.2-1) ... 264s Setting up python3-charset-normalizer (3.4.4-2) ... 264s Setting up python3-ply (3.11-10) ... 265s Setting up libpython3.14-minimal:amd64 (3.14.2-1) ... 265s Setting up python3-ruamel.yaml.clib (0.2.15+ds-1) ... 265s Setting up python3-pytz (2025.2-5) ... 265s Setting up python3-unicode-segmentation-rs (0.2.1-1) ... 265s Setting up libgomp1:amd64 (15.2.0-12ubuntu1) ... 265s Setting up emacsen-common (3.0.8) ... 265s Setting up python3-cheroot (11.1.2+ds1-1) ... 265s Setting up python3-pycountry (24.6.1+ds1-1) ... 265s Setting up python3-xapian (1.4.29-1build1) ... 265s Setting up python3-pluggy (1.6.0-2) ... 265s Setting up python3-ruamel.yaml (0.18.10+ds-1build1) ... 266s Setting up python3-mistletoe (1.5.1-1) ... 266s Setting up libexttextcat-data (3.4.7-1ubuntu2) ... 266s Setting up libapr1t64:amd64 (1.7.6-3) ... 266s Setting up libxslt1.1:amd64 (1.1.43-0.3) ... 266s Setting up python3-levenshtein (0.27.1-2build1) ... 266s Setting up libhunspell-1.7-0:amd64 (1.7.2+really1.7.2-11) ... 266s Setting up python3-tomlkit (0.13.3-2) ... 266s Setting up python3-soupsieve (2.8.3-1) ... 266s Setting up python3.14-minimal (3.14.2-1) ... 267s Setting up python3-iniparse (0.5.1-2) ... 267s Setting up libaprutil1t64:amd64 (1.6.3-3ubuntu3) ... 267s Setting up python3-vobject (0.9.9+dfsg-1) ... 267s Setting up gettext (0.23.2-1) ... 267s Setting up python3-phply (1.2.6-1build1) ... 267s Setting up dictionaries-common (1.31.3) ... 267s Setting up libpython3.14-stdlib:amd64 (3.14.2-1) ... 267s Setting up python3-pytest (9.0.2-2) ... 268s Setting up python3-syrupy (5.0.0-1) ... 268s Setting up libserf-1-1:amd64 (1.3.10-3ubuntu1) ... 268s Setting up python3-bs4 (4.14.3-2build1) ... 268s Setting up python3-lxml:amd64 (6.0.2-1) ... 268s Setting up hunspell-en-us (1:2020.12.07-4build1) ... 268s Setting up python3.14 (3.14.2-1) ... 269s Setting up libsvn1:amd64 (1.14.5-5) ... 269s Setting up libenchant-2-2:amd64 (2.8.2+dfsg1-3build1) ... 269s Setting up subversion (1.14.5-5) ... 269s Setting up python3-all (3.13.9-3) ... 269s Setting up python3-enchant (3.3.0-1) ... 269s Setting up python3-translate (3.18.1-1) ... 270s Processing triggers for libc-bin (2.42-2ubuntu4) ... 270s Processing triggers for systemd (259-1ubuntu2) ... 270s Processing triggers for man-db (2.13.1-1) ... 270s Processing triggers for install-info (7.2-5) ... 270s Processing triggers for dictionaries-common (1.31.3) ... 272s autopkgtest [23:53:47]: test python3-translate: [----------------------- 273s ============================= test session starts ============================== 273s platform linux -- Python 3.14.2, pytest-9.0.2, pluggy-1.6.0 -- /usr/bin/python3.14 273s cachedir: .pytest_cache 273s rootdir: /tmp/autopkgtest.ZrT223/autopkgtest_tmp 273s plugins: typeguard-4.4.4, syrupy-5.0.0 276s collecting ... collected 3902 items / 2 skipped 276s 276s tests/odf_xliff/test_odf_xliff.py::test_odf2xliff PASSED [ 0%] 276s tests/odf_xliff/test_odf_xliff.py::test_roundtrip PASSED [ 0%] 276s tests/odf_xliff/test_odf_xliff.py::test_odf2xliff2_inline PASSED [ 0%] 276s tests/translate/convert/test_accesskey.py::test_get_label_and_accesskey PASSED [ 0%] 276s tests/translate/convert/test_accesskey.py::test_extract_bad_accesskeys PASSED [ 0%] 276s tests/translate/convert/test_accesskey.py::test_ignore_entities PASSED [ 0%] 276s tests/translate/convert/test_accesskey.py::test_alternate_accesskey_marker PASSED [ 0%] 276s tests/translate/convert/test_accesskey.py::test_unicode PASSED [ 0%] 276s tests/translate/convert/test_accesskey.py::test_numeric PASSED [ 0%] 276s tests/translate/convert/test_accesskey.py::test_empty_string PASSED [ 0%] 276s tests/translate/convert/test_accesskey.py::test_end_of_string PASSED [ 0%] 276s tests/translate/convert/test_accesskey.py::test_combine_label_accesskey PASSED [ 0%] 276s tests/translate/convert/test_accesskey.py::test_combine_label_accesskey_different_capitals PASSED [ 0%] 276s tests/translate/convert/test_accesskey.py::test_uncombinable PASSED [ 0%] 276s tests/translate/convert/test_accesskey.py::test_accesskey_already_in_text PASSED [ 0%] 276s tests/translate/convert/test_android2po.py::TestAndroid2PO::test_no_template_units PASSED [ 0%] 276s tests/translate/convert/test_android2po.py::TestAndroid2PO::test_template_units PASSED [ 0%] 276s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_no_template_units PASSED [ 0%] 276s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_template_units PASSED [ 0%] 276s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_help PASSED [ 0%] 276s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_convertandroid PASSED [ 0%] 276s tests/translate/convert/test_convert.py::TestConvertCommand::test_help PASSED [ 0%] 276s tests/translate/convert/test_csv2po.py::test_replacestrings PASSED [ 0%] 276s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_simpleentity PASSED [ 0%] 276s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_simpleentity_with_template PASSED [ 0%] 276s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_newlines PASSED [ 0%] 276s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_tabs PASSED [ 0%] 276s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_quotes PASSED [ 0%] 276s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_empties PASSED [ 0%] 276s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_kdecomment PASSED [ 0%] 276s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_escaped_newlines PASSED [ 0%] 276s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_line_numbers_in_errors PASSED [ 0%] 276s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_simpleentity PASSED [ 0%] 276s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_simpleentity_with_template PASSED [ 0%] 276s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_newlines PASSED [ 0%] 276s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_tabs PASSED [ 0%] 276s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_quotes PASSED [ 0%] 276s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_empties PASSED [ 0%] 276s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_kdecomment PASSED [ 0%] 276s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_escaped_newlines PASSED [ 1%] 276s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_line_numbers_in_errors PASSED [ 1%] 276s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_help PASSED [ 1%] 276s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder PASSED [ 1%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_simpleentity PASSED [ 1%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_convertdtd PASSED [ 1%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_apos PASSED [ 1%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_quotes PASSED [ 1%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_emptyentity PASSED [ 1%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_two_empty_entities PASSED [ 1%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_emptyentity_translated PASSED [ 1%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_localisaton_note_simple PASSED [ 1%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_localisation_note_merge PASSED [ 1%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_simple PASSED [ 1%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_label PASSED [ 1%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_onlyentity PASSED [ 1%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_commentedout PASSED [ 1%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_spaces_at_start_of_dtd_lines PASSED [ 1%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accesskeys_folding PASSED [ 1%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accesskeys_mismatch PASSED [ 1%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_carriage_return_in_multiline_dtd PASSED [ 1%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_multiline_with_blankline PASSED [ 1%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_multiline_closing_quotes PASSED [ 1%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_preserving_spaces PASSED [ 1%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_escaping_newline_tabs PASSED [ 1%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_abandoned_accelerator PASSED [ 1%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_unassociable_accelerator PASSED [ 1%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_changed_labels_and_accelerators PASSED [ 1%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accelerator_keys_not_in_sentence XFAIL [ 1%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_exclude_entity_includes PASSED [ 1%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_linewraps PASSED [ 1%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_merging_with_new_untranslated PASSED [ 1%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_merge_without_template PASSED [ 1%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_simpleentity PASSED [ 1%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_convertdtd PASSED [ 1%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_apos PASSED [ 1%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_quotes PASSED [ 1%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_emptyentity PASSED [ 1%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_two_empty_entities PASSED [ 1%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_emptyentity_translated PASSED [ 2%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_localisaton_note_simple PASSED [ 2%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_localisation_note_merge PASSED [ 2%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_simple PASSED [ 2%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_label PASSED [ 2%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_onlyentity PASSED [ 2%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_commentedout PASSED [ 2%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_spaces_at_start_of_dtd_lines PASSED [ 2%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accesskeys_folding PASSED [ 2%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accesskeys_mismatch PASSED [ 2%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_carriage_return_in_multiline_dtd PASSED [ 2%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_multiline_with_blankline PASSED [ 2%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_multiline_closing_quotes PASSED [ 2%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_preserving_spaces PASSED [ 2%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_escaping_newline_tabs PASSED [ 2%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_abandoned_accelerator PASSED [ 2%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_unassociable_accelerator PASSED [ 2%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_changed_labels_and_accelerators PASSED [ 2%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accelerator_keys_not_in_sentence XFAIL [ 2%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_exclude_entity_includes PASSED [ 2%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_linewraps PASSED [ 2%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_merging_with_new_untranslated PASSED [ 2%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_merge_without_template PASSED [ 2%] 276s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_help PASSED [ 2%] 276s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_defaults PASSED [ 2%] 276s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_root_name PASSED [ 2%] 276s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_value_name PASSED [ 2%] 276s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_key PASSED [ 2%] 276s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_default_namespace PASSED [ 2%] 276s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_namespace_prefix PASSED [ 2%] 276s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_all_parameters PASSED [ 2%] 276s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_empty_file_is_empty_store PASSED [ 2%] 276s tests/translate/convert/test_flatxml2po.py::TestFlatXML2POCommand::test_help PASSED [ 2%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_extract_lang_attribute_from_html_tag PASSED [ 2%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_do_not_extract_lang_attribute_from_tags_other_than_html PASSED [ 2%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_title PASSED [ 2%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_title_with_linebreak PASSED [ 2%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta PASSED [ 2%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p PASSED [ 2%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_br PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_linebreak PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_linebreak_and_embedded_br PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_uppercase_html PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_div PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_div_with_linebreaks PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_a PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_a_with_linebreak PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_sequence_of_anchor_elements PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_img PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_img_empty PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_img_inside_a PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_table_summary PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_simple PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_complex PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_empty PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_address PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_headings PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_headings_with_linebreaks PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_dt PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_dd PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_span PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_ul PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_nested_lists PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_duplicates PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_multiline_reflow PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_nested_tags PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_carriage_return PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_encoding_latin1 PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_strip_html PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_entityrefs_in_text PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_entityrefs_in_attributes PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_charrefs PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_multiple_php PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php_multiline PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php_with_embedded_html PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_comments PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_attribute_without_value PASSED [ 3%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_data_translate_ignore_attribute PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_translate_comment_directives PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta_social_media_tags PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta_non_translatable_tags_not_extracted PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta_mixed_translatable_and_non_translatable PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_data_translate_comment_attribute PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_data_translate_comment_without_keepcomments PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2PO::test_text_after_empty_tags PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_extract_lang_attribute_from_html_tag PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_do_not_extract_lang_attribute_from_tags_other_than_html PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_title PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_title_with_linebreak PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_br PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_linebreak PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_linebreak_and_embedded_br PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_uppercase_html PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_div PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_div_with_linebreaks PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_a PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_a_with_linebreak PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_sequence_of_anchor_elements PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_img PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_img_empty PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_img_inside_a PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_table_summary PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_simple PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_complex PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_empty PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_address PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_headings PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_headings_with_linebreaks PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_dt PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_dd PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_span PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_ul PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_nested_lists PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_duplicates PASSED [ 4%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multiline_reflow PASSED [ 5%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_nested_tags PASSED [ 5%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_carriage_return PASSED [ 5%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_encoding_latin1 PASSED [ 5%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_strip_html PASSED [ 5%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_entityrefs_in_text PASSED [ 5%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_entityrefs_in_attributes PASSED [ 5%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_charrefs PASSED [ 5%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php PASSED [ 5%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multiple_php PASSED [ 5%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php_multiline PASSED [ 5%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php_with_embedded_html PASSED [ 5%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_comments PASSED [ 5%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_attribute_without_value PASSED [ 5%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_data_translate_ignore_attribute PASSED [ 5%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_translate_comment_directives PASSED [ 5%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta_social_media_tags PASSED [ 5%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta_non_translatable_tags_not_extracted PASSED [ 5%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta_mixed_translatable_and_non_translatable PASSED [ 5%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_data_translate_comment_attribute PASSED [ 5%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_data_translate_comment_without_keepcomments PASSED [ 5%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_text_after_empty_tags PASSED [ 5%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_help PASSED [ 5%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_single PASSED [ 5%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_onefile PASSED [ 5%] 276s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_onefile_to_stdout PASSED [ 5%] 276s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_convert_empty_file PASSED [ 5%] 276s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_no_translations PASSED [ 5%] 276s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_summary PASSED [ 5%] 276s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_description PASSED [ 5%] 276s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_location PASSED [ 5%] 276s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_comment PASSED [ 5%] 276s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_no_template_duplicate_style PASSED [ 5%] 276s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge PASSED [ 5%] 276s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_misaligned_files PASSED [ 5%] 276s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_blank_msgstr PASSED [ 5%] 276s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_duplicate_style PASSED [ 5%] 276s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_convert_empty_file PASSED [ 5%] 276s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_no_translations PASSED [ 5%] 276s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_summary PASSED [ 6%] 276s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_description PASSED [ 6%] 276s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_location PASSED [ 6%] 276s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_comment PASSED [ 6%] 276s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_no_template_duplicate_style PASSED [ 6%] 276s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge PASSED [ 6%] 276s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_misaligned_files PASSED [ 6%] 276s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_blank_msgstr PASSED [ 6%] 276s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_duplicate_style PASSED [ 6%] 276s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_help PASSED [ 6%] 276s tests/translate/convert/test_idml2po.py::TestIDML2POCommand::test_help PASSED [ 6%] 276s tests/translate/convert/test_idml2po.py::TestIDML2POCommand::test_convert PASSED [ 6%] 276s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_empty_file PASSED [ 6%] 276s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_no_translation PASSED [ 6%] 276s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_simple PASSED [ 6%] 276s tests/translate/convert/test_ini2po.py::TestIni2PO::test_no_duplicates PASSED [ 6%] 276s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_simple PASSED [ 6%] 276s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_misaligned_files PASSED [ 6%] 276s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_blank_msgstr PASSED [ 6%] 276s tests/translate/convert/test_ini2po.py::TestIni2PO::test_dialects_inno PASSED [ 6%] 276s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_empty_file PASSED [ 6%] 276s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_no_translation PASSED [ 6%] 276s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_simple PASSED [ 6%] 276s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_no_duplicates PASSED [ 6%] 276s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_simple PASSED [ 6%] 276s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_misaligned_files PASSED [ 6%] 276s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_blank_msgstr PASSED [ 6%] 276s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_dialects_inno PASSED [ 6%] 276s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_help PASSED [ 6%] 276s tests/translate/convert/test_json2po.py::TestJson2PO::test_simple PASSED [ 6%] 276s tests/translate/convert/test_json2po.py::TestJson2PO::test_three_same_keys PASSED [ 6%] 276s tests/translate/convert/test_json2po.py::TestJson2PO::test_filter PASSED [ 6%] 276s tests/translate/convert/test_json2po.py::TestJson2PO::test_multiple_units PASSED [ 6%] 276s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_simple PASSED [ 6%] 276s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_three_same_keys PASSED [ 6%] 276s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_filter PASSED [ 6%] 276s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_multiple_units PASSED [ 6%] 276s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_help PASSED [ 6%] 276s tests/translate/convert/test_md2po.py::TestMD2PO::test_help PASSED [ 6%] 276s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_file_with_multifile_single PASSED [ 7%] 276s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_file_with_multifile_onefile PASSED [ 7%] 276s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_directory_with_multifile_single PASSED [ 7%] 276s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_directory_with_multifile_onefile PASSED [ 7%] 276s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_frontmatter PASSED [ 7%] 276s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_translation_ignore_sections PASSED [ 7%] 276s tests/translate/convert/test_moz2po.py::TestMoz2PO::test_duplicate_locations PASSED [ 7%] 276s tests/translate/convert/test_moz2po.py::TestMoz2POCommand::test_duplicate_locations PASSED [ 7%] 276s tests/translate/convert/test_moz2po.py::TestMoz2POCommand::test_help PASSED [ 7%] 276s tests/translate/convert/test_mozfunny2prop.py::TestInc2PO::test_simpleentry PASSED [ 7%] 276s tests/translate/convert/test_mozfunny2prop.py::TestInc2PO::test_uncomment_contributors PASSED [ 7%] 276s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_convert_empty PASSED [ 7%] 276s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_string PASSED [ 7%] 276s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_merge PASSED [ 7%] 276s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_entry PASSED [ 7%] 276s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_comment PASSED [ 7%] 276s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_meta_tags PASSED [ 7%] 276s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_keep_duplicates PASSED [ 7%] 276s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_drop_duplicates PASSED [ 7%] 276s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_convert_empty PASSED [ 7%] 276s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_string PASSED [ 7%] 276s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_merge PASSED [ 7%] 276s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_entry PASSED [ 7%] 276s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_comment PASSED [ 7%] 276s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_meta_tags PASSED [ 7%] 276s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_keep_duplicates PASSED [ 7%] 276s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_drop_duplicates PASSED [ 7%] 276s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_help PASSED [ 7%] 276s tests/translate/convert/test_ods2xliff.py::TestODF2XLIFFCommand::test_help PASSED [ 7%] 276s tests/translate/convert/test_ods2xliff.py::TestODF2XLIFFCommand::test_convert PASSED [ 7%] 276s tests/translate/convert/test_oo2po.py::TestOO2PO::test_simpleentity PASSED [ 7%] 276s tests/translate/convert/test_oo2po.py::TestOO2PO::test_escapes PASSED [ 7%] 276s tests/translate/convert/test_oo2po.py::TestOO2PO::test_roundtrip_escape PASSED [ 7%] 276s tests/translate/convert/test_oo2po.py::TestOO2PO::test_roundtrip_whitespaceonly PASSED [ 7%] 276s tests/translate/convert/test_oo2po.py::TestOO2PO::test_double_escapes PASSED [ 7%] 276s tests/translate/convert/test_oo2po.py::TestOO2PO::test_escapes_helpcontent2 PASSED [ 7%] 276s tests/translate/convert/test_oo2po.py::TestOO2PO::test_msgid_bug_error_address PASSED [ 7%] 276s tests/translate/convert/test_oo2po.py::TestOO2PO::test_x_comment_inclusion PASSED [ 7%] 276s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simpleentity PASSED [ 7%] 276s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_escapes PASSED [ 8%] 276s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_roundtrip_escape PASSED [ 8%] 276s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_roundtrip_whitespaceonly PASSED [ 8%] 276s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_double_escapes PASSED [ 8%] 276s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_escapes_helpcontent2 PASSED [ 8%] 276s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_msgid_bug_error_address PASSED [ 8%] 276s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_x_comment_inclusion PASSED [ 8%] 276s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_help PASSED [ 8%] 276s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_preserve_filename PASSED [ 8%] 276s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_pot PASSED [ 8%] 276s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_po PASSED [ 8%] 276s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_onefile_nonrecursive PASSED [ 8%] 276s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_remove_duplicates PASSED [ 8%] 276s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_simpleentity PASSED [ 8%] 276s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_escapes PASSED [ 8%] 276s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_roundtrip_escape PASSED [ 8%] 276s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_roundtrip_whitespaceonly PASSED [ 8%] 276s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_double_escapes PASSED [ 8%] 276s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_escapes_helpcontent2 PASSED [ 8%] 276s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_x_comment_inclusion PASSED [ 8%] 276s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_msgid_bug_error_address PASSED [ 8%] 276s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simpleentity PASSED [ 8%] 276s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_escapes PASSED [ 8%] 276s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_roundtrip_escape PASSED [ 8%] 276s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_roundtrip_whitespaceonly PASSED [ 8%] 276s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_double_escapes PASSED [ 8%] 276s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_escapes_helpcontent2 PASSED [ 8%] 276s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_x_comment_inclusion PASSED [ 8%] 276s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_msgid_bug_error_address PASSED [ 8%] 276s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_help PASSED [ 8%] 276s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_preserve_filename PASSED [ 8%] 276s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_xlf PASSED [ 8%] 276s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_po PASSED [ 8%] 276s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_onefile_nonrecursive PASSED [ 8%] 276s tests/translate/convert/test_php2po.py::TestPhp2PO::test_simpleentry PASSED [ 8%] 276s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphp PASSED [ 8%] 276s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphptemplate PASSED [ 8%] 276s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphpmissing PASSED [ 8%] 276s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphpempty PASSED [ 8%] 276s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unicode PASSED [ 9%] 276s tests/translate/convert/test_php2po.py::TestPhp2PO::test_multiline PASSED [ 9%] 276s tests/translate/convert/test_php2po.py::TestPhp2PO::test_comments_before PASSED [ 9%] 276s tests/translate/convert/test_php2po.py::TestPhp2PO::test_emptyentry PASSED [ 9%] 276s tests/translate/convert/test_php2po.py::TestPhp2PO::test_hash_comment_with_equals PASSED [ 9%] 276s tests/translate/convert/test_php2po.py::TestPhp2PO::test_emptyentry_translated PASSED [ 9%] 276s tests/translate/convert/test_php2po.py::TestPhp2PO::test_newlines_in_value PASSED [ 9%] 276s tests/translate/convert/test_php2po.py::TestPhp2PO::test_spaces_in_name PASSED [ 9%] 276s tests/translate/convert/test_php2po.py::TestPhp2PO::test_named_array PASSED [ 9%] 276s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unnamed_array PASSED [ 9%] 276s tests/translate/convert/test_php2po.py::TestPhp2PO::test_named_nested_arrays PASSED [ 9%] 276s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unnamed_nested_arrays PASSED [ 9%] 276s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_simpleentry PASSED [ 9%] 276s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphp PASSED [ 9%] 276s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphptemplate PASSED [ 9%] 276s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphpmissing PASSED [ 9%] 276s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphpempty PASSED [ 9%] 276s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unicode PASSED [ 9%] 276s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_multiline PASSED [ 9%] 276s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_comments_before PASSED [ 9%] 276s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_emptyentry PASSED [ 9%] 276s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_hash_comment_with_equals PASSED [ 9%] 276s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_emptyentry_translated PASSED [ 9%] 276s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_newlines_in_value PASSED [ 9%] 276s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_spaces_in_name PASSED [ 9%] 276s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_named_array PASSED [ 9%] 276s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unnamed_array PASSED [ 9%] 276s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_named_nested_arrays PASSED [ 9%] 276s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unnamed_nested_arrays PASSED [ 9%] 276s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_help PASSED [ 9%] 276s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_simpleentity PASSED [ 9%] 276s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_multiline PASSED [ 9%] 276s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapednewlines PASSED [ 9%] 276s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedtabs PASSED [ 9%] 276s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedquotes PASSED [ 9%] 276s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedescape PASSED [ 9%] 277s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_singlequotes PASSED [ 9%] 277s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_empties PASSED [ 9%] 277s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_kdecomments PASSED [ 9%] 277s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_simpleentity PASSED [ 10%] 277s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_multiline PASSED [ 10%] 277s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapednewlines PASSED [ 10%] 277s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedtabs PASSED [ 10%] 277s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedquotes PASSED [ 10%] 277s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedescape PASSED [ 10%] 277s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_singlequotes PASSED [ 10%] 277s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_empties PASSED [ 10%] 277s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_kdecomments PASSED [ 10%] 277s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_help PASSED [ 10%] 277s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder PASSED [ 10%] 277s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_context PASSED [ 10%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_joinlines PASSED [ 10%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_escapedstr PASSED [ 10%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_missingaccesskey PASSED [ 10%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskeycase PASSED [ 10%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_types PASSED [ 10%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing PASSED [ 10%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey PASSED [ 10%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_source_no_amp_in_target PASSED [ 10%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_both_amp_and_accesskey PASSED [ 10%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey PASSED [ 10%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_entities_two PASSED [ 10%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_entities PASSED [ 10%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_comments_translator PASSED [ 10%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_retains_hashprefix PASSED [ 10%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_convertdtd PASSED [ 10%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_untranslated_with_template PASSED [ 10%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_untranslated_without_template PASSED [ 10%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_blank_source PASSED [ 10%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_newlines_escapes PASSED [ 10%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_simple PASSED [ 10%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_escape PASSED [ 10%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_quotes PASSED [ 10%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_amp PASSED [ 10%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_merging_entries_with_spaces_removed PASSED [ 10%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_preserving_spaces PASSED [ 10%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_preserving_spaces_after_value PASSED [ 10%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_comments PASSED [ 10%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_duplicates PASSED [ 11%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_joinlines PASSED [ 11%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_escapedstr PASSED [ 11%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_missingaccesskey PASSED [ 11%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskeycase PASSED [ 11%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_types PASSED [ 11%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing PASSED [ 11%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey PASSED [ 11%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_source_no_amp_in_target PASSED [ 11%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_both_amp_and_accesskey PASSED [ 11%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_amp_no_accesskey PASSED [ 11%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_entities_two PASSED [ 11%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_entities PASSED [ 11%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_comments_translator PASSED [ 11%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_retains_hashprefix PASSED [ 11%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_convertdtd PASSED [ 11%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_untranslated_with_template PASSED [ 11%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_untranslated_without_template PASSED [ 11%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_blank_source PASSED [ 11%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_newlines_escapes PASSED [ 11%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_simple PASSED [ 11%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_escape PASSED [ 11%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_quotes PASSED [ 11%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_amp PASSED [ 11%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_merging_entries_with_spaces_removed PASSED [ 11%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_preserving_spaces PASSED [ 11%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_preserving_spaces_after_value PASSED [ 11%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_comments PASSED [ 11%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_duplicates PASSED [ 11%] 277s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_help PASSED [ 11%] 277s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_defaults PASSED [ 11%] 277s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_root_name PASSED [ 11%] 277s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_value_name PASSED [ 11%] 277s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_key PASSED [ 11%] 277s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_default_namespace PASSED [ 11%] 277s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_namespace_prefix PASSED [ 11%] 277s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_indent_eight PASSED [ 11%] 277s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_noindent PASSED [ 11%] 277s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXMLCommand::test_help PASSED [ 11%] 277s tests/translate/convert/test_po2html.py::TestPO2Html::test_simple PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2Html::test_linebreaks PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2Html::test_replace_substrings PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_outside_translatable_content PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_within_translatable_content_not_embedded PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_embedded_within_translatable_content PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_without_value PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2Html::test_entities PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2Html::test_entities_template_vs_po_mismatch PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2Html::test_utf8_non_ascii_characters PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2Html::test_custom_entities_preserved PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2Html::test_escapes PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_auto_rtl PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_auto_ltr PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_added_when_missing PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_not_changed_without_lang_translation PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_translated PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_untranslated PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_fuzzy PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2Html::test_untranslated_attributes PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2Html::test_button_translation PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2Html::test_lang_attribute_only_on_html_tag PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2Html::test_data_translate_ignore_preserved PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2Html::test_translate_comment_directives_preserved PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2Html::test_data_translate_ignore_with_translation_in_po PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2Html::test_translate_comment_with_translation_in_po PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2Html::test_meta_social_media_tags_translation PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2Html::test_meta_non_translatable_tags_preserved PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_simple PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_linebreaks PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_replace_substrings PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_outside_translatable_content PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_within_translatable_content_not_embedded PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_embedded_within_translatable_content PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_without_value PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_entities PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_entities_template_vs_po_mismatch PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_utf8_non_ascii_characters PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_custom_entities_preserved PASSED [ 12%] 277s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_escapes PASSED [ 13%] 277s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_auto_rtl PASSED [ 13%] 277s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_auto_ltr PASSED [ 13%] 277s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_added_when_missing PASSED [ 13%] 277s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_not_changed_without_lang_translation PASSED [ 13%] 277s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_translated PASSED [ 13%] 277s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_untranslated PASSED [ 13%] 277s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_fuzzy PASSED [ 13%] 277s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_untranslated_attributes PASSED [ 13%] 277s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_button_translation PASSED [ 13%] 277s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_lang_attribute_only_on_html_tag PASSED [ 13%] 277s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_data_translate_ignore_preserved PASSED [ 13%] 277s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_translate_comment_directives_preserved PASSED [ 13%] 277s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_data_translate_ignore_with_translation_in_po PASSED [ 13%] 277s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_translate_comment_with_translation_in_po PASSED [ 13%] 277s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_meta_social_media_tags_translation PASSED [ 13%] 277s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_meta_non_translatable_tags_preserved PASSED [ 13%] 277s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_help PASSED [ 13%] 277s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_individual_files PASSED [ 13%] 277s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_fully_recursive PASSED [ 13%] 277s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_input_specified PASSED [ 13%] 277s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified PASSED [ 13%] 277s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_output_specified PASSED [ 13%] 277s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file PASSED [ 13%] 277s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file_and_templates_overwritten PASSED [ 13%] 277s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_empty_file PASSED [ 13%] 277s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_summary PASSED [ 13%] 277s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_description PASSED [ 13%] 277s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_location PASSED [ 13%] 277s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_comment PASSED [ 13%] 277s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_complex_icalendar PASSED [ 13%] 277s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_skip_fuzzy PASSED [ 13%] 277s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_include_fuzzy PASSED [ 13%] 277s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_no_template PASSED [ 13%] 277s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_template_location_not_in_source_file PASSED [ 13%] 277s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_completion_below_threshold PASSED [ 13%] 277s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_completion_above_threshold PASSED [ 13%] 277s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_empty_file PASSED [ 13%] 277s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_summary PASSED [ 13%] 277s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_description PASSED [ 14%] 277s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_location PASSED [ 14%] 277s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_comment PASSED [ 14%] 277s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_complex_icalendar PASSED [ 14%] 277s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_skip_fuzzy PASSED [ 14%] 277s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_include_fuzzy PASSED [ 14%] 277s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_no_template PASSED [ 14%] 277s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_template_location_not_in_source_file PASSED [ 14%] 277s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_completion_below_threshold PASSED [ 14%] 277s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_completion_above_threshold PASSED [ 14%] 277s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_help PASSED [ 14%] 277s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_help PASSED [ 14%] 277s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_convert PASSED [ 14%] 277s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_no_templates PASSED [ 14%] 277s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_simple PASSED [ 14%] 277s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_space_preservation PASSED [ 14%] 277s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_blank_entries PASSED [ 14%] 277s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_fuzzy PASSED [ 14%] 277s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_propertyless_template PASSED [ 14%] 277s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_empty_value PASSED [ 14%] 277s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_dialects_inno PASSED [ 14%] 277s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_misaligned_files PASSED [ 14%] 277s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_completion_below_threshold PASSED [ 14%] 277s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_completion_above_threshold PASSED [ 14%] 277s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_no_fuzzy PASSED [ 14%] 277s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_allow_fuzzy PASSED [ 14%] 277s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_missing_source PASSED [ 14%] 277s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_repeated_locations PASSED [ 14%] 277s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_no_templates PASSED [ 14%] 277s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_simple PASSED [ 14%] 277s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_space_preservation PASSED [ 14%] 277s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_blank_entries PASSED [ 14%] 277s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_fuzzy PASSED [ 14%] 277s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_propertyless_template PASSED [ 14%] 277s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_empty_value PASSED [ 14%] 277s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_dialects_inno PASSED [ 14%] 277s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_misaligned_files PASSED [ 14%] 277s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_completion_below_threshold PASSED [ 14%] 277s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_completion_above_threshold PASSED [ 14%] 277s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_no_fuzzy PASSED [ 15%] 277s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_allow_fuzzy PASSED [ 15%] 277s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_missing_source PASSED [ 15%] 277s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_repeated_locations PASSED [ 15%] 277s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_help PASSED [ 15%] 277s tests/translate/convert/test_po2json.py::TestPO2JSON::test_basic PASSED [ 15%] 277s tests/translate/convert/test_po2json.py::TestPO2JSON::test_ordering_serialize PASSED [ 15%] 277s tests/translate/convert/test_po2json.py::TestPO2JSON::test_dont_use_empty_translation PASSED [ 15%] 277s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_false_remove_untranslated_false PASSED [ 15%] 277s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_false_remove_untranslated_true PASSED [ 15%] 277s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_true_remove_untranslated_false PASSED [ 15%] 277s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_true_remove_untranslated_true PASSED [ 15%] 277s tests/translate/convert/test_po2md.py::TestPO2MD::test_help PASSED [ 15%] 277s tests/translate/convert/test_po2md.py::TestPO2MD::test_single_markdown_file_with_single_po PASSED [ 15%] 277s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_with_single_po PASSED [ 15%] 277s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_and_directory_of_po_files PASSED [ 15%] 277s tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_table XFAIL [ 15%] 277s tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_frontmatter PASSED [ 15%] 277s tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_translation_ignore_sections PASSED [ 15%] 277s tests/translate/convert/test_po2moz.py::TestPO2MozCommand::test_help PASSED [ 15%] 277s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_empty PASSED [ 15%] 277s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_simple PASSED [ 15%] 277s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_comment PASSED [ 15%] 277s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_ok_marker PASSED [ 15%] 277s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_completion_below_threshold PASSED [ 15%] 277s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_completion_above_threshold PASSED [ 15%] 277s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_skip_non_translatable_input PASSED [ 15%] 277s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_no_fuzzy PASSED [ 15%] 277s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_allow_fuzzy PASSED [ 15%] 277s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_mark_active PASSED [ 15%] 277s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_empty PASSED [ 15%] 277s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_simple PASSED [ 15%] 277s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_comment PASSED [ 15%] 277s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_ok_marker PASSED [ 15%] 277s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_completion_below_threshold PASSED [ 15%] 277s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_completion_above_threshold PASSED [ 15%] 277s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_skip_non_translatable_input PASSED [ 15%] 277s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_no_fuzzy PASSED [ 15%] 277s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_allow_fuzzy PASSED [ 15%] 277s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_mark_active PASSED [ 16%] 277s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_help PASSED [ 16%] 277s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_help PASSED [ 16%] 277s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert PASSED [ 16%] 277s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert_with_multiple_units PASSED [ 16%] 277s tests/translate/convert/test_po2oo.py::TestPO2OO::test_convertoo PASSED [ 16%] 277s tests/translate/convert/test_po2oo.py::TestPO2OO::test_pofilter PASSED [ 16%] 277s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_simple PASSED [ 16%] 277s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_escape PASSED [ 16%] 277s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_quotes PASSED [ 16%] 277s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_spaces PASSED [ 16%] 277s tests/translate/convert/test_po2oo.py::TestPO2OO::test_default_timestamp PASSED [ 16%] 277s tests/translate/convert/test_po2oo.py::TestPO2OO::test_escape_conversion PASSED [ 16%] 277s tests/translate/convert/test_po2oo.py::TestPO2OO::test_helpcontent_escapes PASSED [ 16%] 277s tests/translate/convert/test_po2oo.py::TestPO2OO::test_helpcontent_escapes2 PASSED [ 16%] 277s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_convertoo PASSED [ 16%] 277s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_pofilter PASSED [ 16%] 277s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_simple PASSED [ 16%] 277s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_escape PASSED [ 16%] 277s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_quotes PASSED [ 16%] 277s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_spaces PASSED [ 16%] 277s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_default_timestamp PASSED [ 16%] 277s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_escape_conversion PASSED [ 16%] 277s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_helpcontent_escapes PASSED [ 16%] 277s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_helpcontent_escapes2 PASSED [ 16%] 277s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_help PASSED [ 16%] 277s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp PASSED [ 16%] 277s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp_notemplate PASSED [ 16%] 277s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp_empty_template PASSED [ 16%] 277s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_simple PASSED [ 16%] 277s tests/translate/convert/test_po2php.py::TestPO2Php::test_space_preservation PASSED [ 16%] 277s tests/translate/convert/test_po2php.py::TestPO2Php::test_preserve_unused_statement PASSED [ 16%] 277s tests/translate/convert/test_po2php.py::TestPO2Php::test_not_translated_multiline PASSED [ 16%] 277s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_blank_entries PASSED [ 16%] 277s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_fuzzy PASSED [ 16%] 277s tests/translate/convert/test_po2php.py::TestPO2Php::test_locations_with_spaces PASSED [ 16%] 277s tests/translate/convert/test_po2php.py::TestPO2Php::test_inline_comments PASSED [ 16%] 277s tests/translate/convert/test_po2php.py::TestPO2Php::test_block_comments PASSED [ 16%] 277s tests/translate/convert/test_po2php.py::TestPO2Php::test_named_variables PASSED [ 16%] 277s tests/translate/convert/test_po2php.py::TestPO2Php::test_multiline PASSED [ 17%] 277s tests/translate/convert/test_po2php.py::TestPO2Php::test_hash_comment PASSED [ 17%] 277s tests/translate/convert/test_po2php.py::TestPO2Php::test_arrays PASSED [ 17%] 277s tests/translate/convert/test_po2php.py::TestPO2Php::test_named_nested_array PASSED [ 17%] 277s tests/translate/convert/test_po2php.py::TestPO2Php::test_unnamed_nested_arrays PASSED [ 17%] 277s tests/translate/convert/test_po2php.py::TestPO2Php::test_return_array_with_comments PASSED [ 17%] 277s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_propertyless_template XFAIL [ 17%] 277s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp PASSED [ 17%] 277s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp_notemplate PASSED [ 17%] 277s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp_empty_template PASSED [ 17%] 277s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_simple PASSED [ 17%] 277s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_space_preservation PASSED [ 17%] 277s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_preserve_unused_statement PASSED [ 17%] 277s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_not_translated_multiline PASSED [ 17%] 277s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_blank_entries PASSED [ 17%] 277s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_fuzzy PASSED [ 17%] 277s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_locations_with_spaces PASSED [ 17%] 277s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_inline_comments PASSED [ 17%] 277s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_block_comments PASSED [ 17%] 277s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_named_variables PASSED [ 17%] 277s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_multiline PASSED [ 17%] 277s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_hash_comment PASSED [ 17%] 277s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_arrays PASSED [ 17%] 277s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_named_nested_array PASSED [ 17%] 277s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_unnamed_nested_arrays PASSED [ 17%] 277s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_return_array_with_comments PASSED [ 17%] 277s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_propertyless_template XFAIL [ 17%] 277s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_help PASSED [ 17%] 277s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_simple PASSED [ 17%] 277s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated PASSED [ 17%] 277s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_hard_newlines_preserved PASSED [ 17%] 277s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_space_preservation PASSED [ 17%] 277s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_no_value PASSED [ 17%] 277s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_no_separator PASSED [ 17%] 277s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_value_no_key PASSED [ 17%] 277s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_blank_entries PASSED [ 17%] 277s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_fuzzy PASSED [ 17%] 277s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys PASSED [ 17%] 277s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey PASSED [ 17%] 277s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_margin_whitespace PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_all_whitespace PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_propertyless_template PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_delimiters PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_empty_value PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_personalities PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_simple PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_multiline PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_multiline2 PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_comments PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_unchanged PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_blank PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_gaia_plurals PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_duplicates PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_gwt_plurals PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_utf16_with_empty_lines PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_simple PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_hard_newlines_preserved PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_space_preservation PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_no_value PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_no_separator PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_value_no_key PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_blank_entries PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_fuzzy PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys_missing_accesskey PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_margin_whitespace PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_all_whitespace PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_propertyless_template PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_delimiters PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_empty_value PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_personalities PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_simple PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_multiline PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_multiline2 PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_comments PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_unchanged PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_blank PASSED [ 18%] 277s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_gaia_plurals PASSED [ 19%] 277s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_duplicates PASSED [ 19%] 277s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_gwt_plurals PASSED [ 19%] 277s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_utf16_with_empty_lines PASSED [ 19%] 277s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_help PASSED [ 19%] 277s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_help PASSED [ 19%] 277s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert PASSED [ 19%] 277s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_quotes PASSED [ 19%] 277s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment PASSED [ 19%] 277s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment_dos_eol PASSED [ 19%] 277s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_double_string PASSED [ 19%] 277s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_popup PASSED [ 19%] 277s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_discardable PASSED [ 19%] 277s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_menuex PASSED [ 19%] 277s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_newlines PASSED [ 19%] 277s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment_after PASSED [ 19%] 277s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_block_language PASSED [ 19%] 277s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_output_encoding PASSED [ 19%] 277s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_quotes_strintable PASSED [ 19%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_simpleunit PASSED [ 19%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_basic PASSED [ 19%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_multiline PASSED [ 19%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapednewlines PASSED [ 19%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapedtabs PASSED [ 19%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapedquotes PASSED [ 19%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_exclusions PASSED [ 19%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments PASSED [ 19%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingcomment PASSED [ 19%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingduplicatecomment PASSED [ 19%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingduplicatecommentwithwhitespace PASSED [ 19%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments PASSED [ 19%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments_existingcomment PASSED [ 19%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments_existingduplicatecomment PASSED [ 19%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments PASSED [ 19%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments_existingduplicatecomment PASSED [ 19%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments_existingcomment PASSED [ 19%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_existingcomments PASSED [ 19%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_plus_in_resourcekey PASSED [ 19%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_special_chars_in_resourcekey PASSED [ 19%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_simpleunit PASSED [ 20%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_basic PASSED [ 20%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_multiline PASSED [ 20%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapednewlines PASSED [ 20%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapedtabs PASSED [ 20%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapedquotes PASSED [ 20%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_exclusions PASSED [ 20%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments PASSED [ 20%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingcomment PASSED [ 20%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingduplicatecomment PASSED [ 20%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingduplicatecommentwithwhitespace PASSED [ 20%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments PASSED [ 20%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments_existingcomment PASSED [ 20%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments_existingduplicatecomment PASSED [ 20%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments PASSED [ 20%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments_existingduplicatecomment PASSED [ 20%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments_existingcomment PASSED [ 20%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_existingcomments PASSED [ 20%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_plus_in_resourcekey PASSED [ 20%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_special_chars_in_resourcekey PASSED [ 20%] 277s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_help PASSED [ 20%] 277s tests/translate/convert/test_po2sub.py::TestPO2Sub::test_subrip PASSED [ 20%] 277s tests/translate/convert/test_po2sub.py::TestPO2SubCommand::test_subrip PASSED [ 20%] 277s tests/translate/convert/test_po2sub.py::TestPO2SubCommand::test_help PASSED [ 20%] 277s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert_empty PASSED [ 20%] 277s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert PASSED [ 20%] 277s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert_marked_untranslated PASSED [ 20%] 277s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert_empty PASSED [ 20%] 277s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert PASSED [ 20%] 277s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert_marked_untranslated PASSED [ 20%] 277s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_help PASSED [ 20%] 277s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_basic PASSED [ 20%] 277s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_sourcelanguage PASSED [ 20%] 277s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_targetlanguage PASSED [ 20%] 277s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_multiline PASSED [ 20%] 277s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapednewlines PASSED [ 20%] 277s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapedtabs PASSED [ 20%] 277s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapedquotes PASSED [ 20%] 277s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_exclusions PASSED [ 20%] 277s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_nonascii PASSED [ 21%] 277s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_nonecomments PASSED [ 21%] 277s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_otherscomments PASSED [ 21%] 277s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_sourcecomments PASSED [ 21%] 277s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_typecomments PASSED [ 21%] 277s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_basic PASSED [ 21%] 277s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_sourcelanguage PASSED [ 21%] 277s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_targetlanguage PASSED [ 21%] 277s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_multiline PASSED [ 21%] 277s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapednewlines PASSED [ 21%] 277s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapedtabs PASSED [ 21%] 277s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapedquotes PASSED [ 21%] 277s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_exclusions PASSED [ 21%] 277s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_nonascii PASSED [ 21%] 277s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_nonecomments PASSED [ 21%] 277s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_otherscomments PASSED [ 21%] 277s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_sourcecomments PASSED [ 21%] 277s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_typecomments PASSED [ 21%] 277s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_help PASSED [ 21%] 277s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_context PASSED [ 21%] 277s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_simple_convert PASSED [ 21%] 277s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_nested_convert PASSED [ 21%] 277s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_template_required PASSED [ 21%] 277s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_untranslated_uses_source PASSED [ 21%] 277s tests/translate/convert/test_po2ts.py::TestPO2TS::test_simpleunit PASSED [ 21%] 277s tests/translate/convert/test_po2ts.py::TestPO2TS::test_simple_unicode_unit PASSED [ 21%] 277s tests/translate/convert/test_po2ts.py::TestPO2TS::test_fullunit PASSED [ 21%] 277s tests/translate/convert/test_po2ts.py::TestPO2TS::test_fuzzyunit PASSED [ 21%] 277s tests/translate/convert/test_po2ts.py::TestPO2TS::test_obsolete PASSED [ 21%] 277s tests/translate/convert/test_po2ts.py::TestPO2TS::test_duplicates PASSED [ 21%] 277s tests/translate/convert/test_po2ts.py::TestPO2TS::test_linebreak PASSED [ 21%] 277s tests/translate/convert/test_po2ts.py::TestPO2TS::test_linebreak_consecutive PASSED [ 21%] 277s tests/translate/convert/test_po2ts.py::TestPO2TS::test_plural PASSED [ 21%] 277s tests/translate/convert/test_po2ts.py::TestPO2TS::test_plural_fuzzy PASSED [ 21%] 277s tests/translate/convert/test_po2ts.py::TestPO2TS::test_unit_without_location PASSED [ 21%] 277s tests/translate/convert/test_po2ts.py::TestPO2TS::test_mixed_units_with_and_without_location PASSED [ 21%] 277s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_simpleunit PASSED [ 21%] 277s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_simple_unicode_unit PASSED [ 21%] 277s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_fullunit PASSED [ 21%] 277s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_fuzzyunit PASSED [ 22%] 277s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_obsolete PASSED [ 22%] 277s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_duplicates PASSED [ 22%] 277s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_linebreak PASSED [ 22%] 277s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_linebreak_consecutive PASSED [ 22%] 277s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_plural PASSED [ 22%] 277s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_plural_fuzzy PASSED [ 22%] 277s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_unit_without_location PASSED [ 22%] 277s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_mixed_units_with_and_without_location PASSED [ 22%] 277s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_help PASSED [ 22%] 277s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_basic PASSED [ 22%] 277s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_nonascii PASSED [ 22%] 277s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_blank_handling PASSED [ 22%] 277s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_fuzzy_handling PASSED [ 22%] 277s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_obsolete_ignore PASSED [ 22%] 277s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_header_ignore PASSED [ 22%] 277s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_convert_completion_below_threshold PASSED [ 22%] 277s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_convert_completion_above_threshold PASSED [ 22%] 277s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_substring_replacement PASSED [ 22%] 277s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_duplicate_text_segment_based_replacement PASSED [ 22%] 277s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_dokuwiki_flavour_segmentation PASSED [ 22%] 277s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_basic PASSED [ 22%] 277s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_nonascii PASSED [ 22%] 277s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_blank_handling PASSED [ 22%] 277s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_fuzzy_handling PASSED [ 22%] 277s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_obsolete_ignore PASSED [ 22%] 277s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_header_ignore PASSED [ 22%] 277s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_convert_completion_below_threshold PASSED [ 22%] 277s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_convert_completion_above_threshold PASSED [ 22%] 277s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_substring_replacement PASSED [ 22%] 277s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_duplicate_text_segment_based_replacement PASSED [ 22%] 277s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_dokuwiki_flavour_segmentation PASSED [ 22%] 277s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_help PASSED [ 22%] 277s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_basic PASSED [ 22%] 277s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_unicode PASSED [ 22%] 277s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_ordering_serialize PASSED [ 22%] 277s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_markmin PASSED [ 22%] 277s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_minimal PASSED [ 22%] 277s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_basic PASSED [ 22%] 277s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_multiline PASSED [ 23%] 277s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapednewlines PASSED [ 23%] 277s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapedtabs PASSED [ 23%] 277s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapedquotes PASSED [ 23%] 277s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_locationcomments PASSED [ 23%] 277s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_othercomments PASSED [ 23%] 277s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_automaticcomments PASSED [ 23%] 277s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_header PASSED [ 23%] 277s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_fuzzy PASSED [ 23%] 277s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_germanic_plurals PASSED [ 23%] 277s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_funny_plurals PASSED [ 23%] 277s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_language_tags PASSED [ 23%] 277s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_variables PASSED [ 23%] 277s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_approved PASSED [ 23%] 277s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_empty_PO PASSED [ 23%] 277s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_no_templates PASSED [ 23%] 277s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_simple_output PASSED [ 23%] 277s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_simple PASSED [ 23%] 277s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_translated PASSED [ 23%] 277s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_no_fuzzy PASSED [ 23%] 277s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_allow_fuzzy PASSED [ 23%] 277s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_nested PASSED [ 23%] 277s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_completion_below_threshold PASSED [ 23%] 277s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_completion_above_threshold PASSED [ 23%] 277s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_empty_PO PASSED [ 23%] 277s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_no_templates PASSED [ 23%] 277s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_simple_output PASSED [ 23%] 277s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_simple PASSED [ 23%] 277s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_translated PASSED [ 23%] 277s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_no_fuzzy PASSED [ 23%] 277s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_allow_fuzzy PASSED [ 23%] 277s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_nested PASSED [ 23%] 277s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_completion_below_threshold PASSED [ 23%] 277s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_completion_above_threshold PASSED [ 23%] 277s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_help PASSED [ 23%] 277s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_convertpot_blank PASSED [ 23%] 277s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_convertpot_blank_plurals PASSED [ 23%] 277s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_simple PASSED [ 23%] 277s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_messages_marked_fuzzy PASSED [ 23%] 277s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_plurals_with_fuzzy_matching PASSED [ 24%] 277s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_change XFAIL [ 24%] 277s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_change PASSED [ 24%] 277s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_and_whitespace_change PASSED [ 24%] 277s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_ambiguous_with_disambiguous PASSED [ 24%] 277s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_accelerator_changes XFAIL [ 24%] 277s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_lines_cut_differently XFAIL [ 24%] 277s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_automatic_comments_dont_duplicate PASSED [ 24%] 277s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_automatic_comments_new_overrides_old PASSED [ 24%] 277s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_comments_with_blank_comment_lines PASSED [ 24%] 277s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_empty_commentlines PASSED [ 24%] 277s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgidcomments PASSED [ 24%] 277s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_with_msgidcomment PASSED [ 24%] 277s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_plurals PASSED [ 24%] 277s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_obsoleting_messages PASSED [ 24%] 277s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_not_obsoleting_empty_messages PASSED [ 24%] 277s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_new_before_obsolete PASSED [ 24%] 277s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_resurrect_obsolete_messages PASSED [ 24%] 277s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_resurrect_obsolete_messages_into_msgidcomment PASSED [ 24%] 277s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_header_initialisation PASSED [ 24%] 277s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_comments PASSED [ 24%] 277s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_typecomments PASSED [ 24%] 277s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgctxt PASSED [ 24%] 277s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgctxt_multiline PASSED [ 24%] 277s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgid_merge_on_location PASSED [ 24%] 278s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgid_merge_on_id PASSED [ 24%] 278s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_empty_msgid PASSED [ 24%] 278s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_migrate_msgidcomment_to_msgctxt PASSED [ 24%] 278s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_obsolete_msgctxt PASSED [ 24%] 278s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_small_strings PASSED [ 24%] 278s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_convertpot_blank PASSED [ 24%] 278s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_convertpot_blank_plurals PASSED [ 24%] 278s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_simple PASSED [ 24%] 278s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_messages_marked_fuzzy PASSED [ 24%] 278s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_plurals_with_fuzzy_matching PASSED [ 24%] 278s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_change XFAIL [ 24%] 278s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_change PASSED [ 24%] 278s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_and_whitespace_change PASSED [ 24%] 278s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_ambiguous_with_disambiguous PASSED [ 24%] 278s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_accelerator_changes XFAIL [ 25%] 278s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_lines_cut_differently XFAIL [ 25%] 278s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_automatic_comments_dont_duplicate PASSED [ 25%] 278s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_automatic_comments_new_overrides_old PASSED [ 25%] 278s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_comments_with_blank_comment_lines PASSED [ 25%] 278s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_empty_commentlines PASSED [ 25%] 278s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgidcomments PASSED [ 25%] 278s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_with_msgidcomment PASSED [ 25%] 278s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_plurals PASSED [ 25%] 278s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_obsoleting_messages PASSED [ 25%] 278s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_not_obsoleting_empty_messages PASSED [ 25%] 278s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_new_before_obsolete PASSED [ 25%] 278s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_resurrect_obsolete_messages PASSED [ 25%] 278s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_resurrect_obsolete_messages_into_msgidcomment PASSED [ 25%] 278s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_header_initialisation PASSED [ 25%] 278s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_comments PASSED [ 25%] 278s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_typecomments PASSED [ 25%] 278s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgctxt PASSED [ 25%] 278s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgctxt_multiline PASSED [ 25%] 278s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgid_merge_on_location PASSED [ 25%] 278s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgid_merge_on_id PASSED [ 25%] 278s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_empty_msgid PASSED [ 25%] 278s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_migrate_msgidcomment_to_msgctxt PASSED [ 25%] 278s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_obsolete_msgctxt PASSED [ 25%] 278s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_small_strings PASSED [ 25%] 278s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_help PASSED [ 25%] 278s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_no_endlines_added PASSED [ 25%] 278s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_uncomment_contributors PASSED [ 25%] 278s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_multiline_comment_newlines PASSED [ 25%] 278s tests/translate/convert/test_prop2po.py::TestProp2PO::test_simpleentry PASSED [ 25%] 278s tests/translate/convert/test_prop2po.py::TestProp2PO::test_convertprop PASSED [ 25%] 278s tests/translate/convert/test_prop2po.py::TestProp2PO::test_no_value_entry PASSED [ 25%] 278s tests/translate/convert/test_prop2po.py::TestProp2PO::test_no_separator_entry PASSED [ 25%] 278s tests/translate/convert/test_prop2po.py::TestProp2PO::test_value_no_key_entry PASSED [ 25%] 278s tests/translate/convert/test_prop2po.py::TestProp2PO::test_tab_at_end_of_string PASSED [ 25%] 278s tests/translate/convert/test_prop2po.py::TestProp2PO::test_tab_at_start_of_value PASSED [ 25%] 278s tests/translate/convert/test_prop2po.py::TestProp2PO::test_unicode PASSED [ 25%] 278s tests/translate/convert/test_prop2po.py::TestProp2PO::test_multiline_escaping PASSED [ 25%] 278s tests/translate/convert/test_prop2po.py::TestProp2PO::test_comments PASSED [ 25%] 278s tests/translate/convert/test_prop2po.py::TestProp2PO::test_multiline_comments PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2PO::test_folding_accesskeys PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2PO::test_dont_translate PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2PO::test_duplicate_locations_mozilla PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2PO::test_emptyproperty PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2PO::test_emptyproperty_translated PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2PO::test_newlines_in_value PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2PO::test_header_comments PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2PO::test_unassociated_comment_order PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2PO::test_x_header PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2PO::test_gaia_plurals PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2PO::test_successive_gaia_plurals PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2PO::test_duplicate_keys PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2PO::test_gwt_plurals PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2PO::test_strings_bilingual_simple PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2PO::test_strings_bilingual_multiline PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_simpleentry PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_convertprop PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_no_value_entry PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_no_separator_entry PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_value_no_key_entry PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_tab_at_end_of_string PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_tab_at_start_of_value PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_unicode PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_multiline_escaping PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_comments PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_multiline_comments PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_folding_accesskeys PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_dont_translate PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_duplicate_locations_mozilla PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_emptyproperty PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_emptyproperty_translated PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_newlines_in_value PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_header_comments PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_unassociated_comment_order PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_x_header PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_gaia_plurals PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_successive_gaia_plurals PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_duplicate_keys PASSED [ 26%] 278s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_gwt_plurals PASSED [ 27%] 278s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_strings_bilingual_simple PASSED [ 27%] 278s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_strings_bilingual_multiline PASSED [ 27%] 278s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_help PASSED [ 27%] 278s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_help PASSED [ 27%] 278s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert PASSED [ 27%] 278s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf16 PASSED [ 27%] 278s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong PASSED [ 27%] 278s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf8 PASSED [ 27%] 278s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_menuex PASSED [ 27%] 278s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_simple PASSED [ 27%] 278s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_multiple_units PASSED [ 27%] 278s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_automaticcomments PASSED [ 27%] 278s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_translatorcomments PASSED [ 27%] 278s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_locations PASSED [ 27%] 278s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple PASSED [ 27%] 278s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_multiple_units PASSED [ 27%] 278s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_automaticcomments PASSED [ 27%] 278s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_translatorcomments PASSED [ 27%] 278s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_locations PASSED [ 27%] 278s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_help PASSED [ 27%] 278s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_pot PASSED [ 27%] 278s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_po PASSED [ 27%] 278s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_remove_duplicates PASSED [ 27%] 278s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_convert_empty PASSED [ 27%] 278s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_converttiki_defaults PASSED [ 27%] 278s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_converttiki_includeunused PASSED [ 27%] 278s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_convert_empty PASSED [ 27%] 278s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_converttiki_defaults PASSED [ 27%] 278s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_converttiki_includeunused PASSED [ 27%] 278s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_help PASSED [ 27%] 278s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_simple_convert PASSED [ 27%] 278s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_nested_convert PASSED [ 27%] 278s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_comment_extraction PASSED [ 27%] 278s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_merge_with_template PASSED [ 27%] 278s tests/translate/convert/test_ts2po.py::TestTS2PO::test_blank PASSED [ 27%] 278s tests/translate/convert/test_ts2po.py::TestTS2PO::test_basic PASSED [ 27%] 278s tests/translate/convert/test_ts2po.py::TestTS2PO::test_unfinished PASSED [ 27%] 278s tests/translate/convert/test_ts2po.py::TestTS2PO::test_multiline PASSED [ 27%] 278s tests/translate/convert/test_ts2po.py::TestTS2PO::test_obsolete PASSED [ 28%] 278s tests/translate/convert/test_ts2po.py::TestTS2PO::test_comment PASSED [ 28%] 278s tests/translate/convert/test_ts2po.py::TestTS2PO::test_extracomment PASSED [ 28%] 278s tests/translate/convert/test_ts2po.py::TestTS2PO::test_emptycontext PASSED [ 28%] 278s tests/translate/convert/test_ts2po.py::TestTS2PO::test_plural PASSED [ 28%] 278s tests/translate/convert/test_ts2po.py::TestTS2PO::test_plural_unfinished PASSED [ 28%] 278s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_blank PASSED [ 28%] 278s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_basic PASSED [ 28%] 278s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_unfinished PASSED [ 28%] 278s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_multiline PASSED [ 28%] 278s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_obsolete PASSED [ 28%] 278s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_comment PASSED [ 28%] 278s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_extracomment PASSED [ 28%] 278s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_emptycontext PASSED [ 28%] 278s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_plural PASSED [ 28%] 278s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_plural_unfinished PASSED [ 28%] 278s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_help PASSED [ 28%] 278s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_convert_empty PASSED [ 28%] 278s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_keep_duplicates PASSED [ 28%] 278s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_drop_duplicates PASSED [ 28%] 278s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_simple PASSED [ 28%] 278s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_multiple_units PASSED [ 28%] 278s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_carriage_return PASSED [ 28%] 278s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_merge PASSED [ 28%] 278s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_no_segmentation PASSED [ 28%] 278s tests/translate/convert/test_txt2po.py::TestDoku2po::test_convert_empty PASSED [ 28%] 278s tests/translate/convert/test_txt2po.py::TestDoku2po::test_keep_duplicates PASSED [ 28%] 278s tests/translate/convert/test_txt2po.py::TestDoku2po::test_drop_duplicates PASSED [ 28%] 278s tests/translate/convert/test_txt2po.py::TestDoku2po::test_basic PASSED [ 28%] 278s tests/translate/convert/test_txt2po.py::TestDoku2po::test_bullet_list PASSED [ 28%] 278s tests/translate/convert/test_txt2po.py::TestDoku2po::test_numbered_list PASSED [ 28%] 278s tests/translate/convert/test_txt2po.py::TestDoku2po::test_spacing PASSED [ 28%] 278s tests/translate/convert/test_txt2po.py::TestDoku2po::test_merge PASSED [ 28%] 278s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_convert_empty PASSED [ 28%] 278s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_keep_duplicates PASSED [ 28%] 278s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_drop_duplicates PASSED [ 28%] 278s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_simple PASSED [ 28%] 278s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_multiple_units PASSED [ 28%] 278s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_carriage_return PASSED [ 28%] 278s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_merge PASSED [ 29%] 278s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_no_segmentation PASSED [ 29%] 278s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_help PASSED [ 29%] 278s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_basic PASSED [ 29%] 278s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_unicode PASSED [ 29%] 278s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_markmin PASSED [ 29%] 278s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_help PASSED [ 29%] 278s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert PASSED [ 29%] 278s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_minimal PASSED [ 29%] 278s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_basic PASSED [ 29%] 278s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_translatorcomments PASSED [ 29%] 278s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_autocomment PASSED [ 29%] 278s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_locations PASSED [ 29%] 278s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_fuzzy PASSED [ 29%] 278s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_plurals PASSED [ 29%] 278s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_minimal PASSED [ 29%] 278s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_basic PASSED [ 29%] 278s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_translatorcomments PASSED [ 29%] 278s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_autocomment PASSED [ 29%] 278s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_locations PASSED [ 29%] 278s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_fuzzy PASSED [ 29%] 278s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_plurals PASSED [ 29%] 278s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_help PASSED [ 29%] 278s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_simple_convert PASSED [ 29%] 278s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_minimal PASSED [ 29%] 278s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_basic PASSED [ 29%] 278s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_translatorcomments PASSED [ 29%] 278s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_autocomment PASSED [ 29%] 278s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_locations PASSED [ 29%] 278s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_fuzzy PASSED [ 29%] 278s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_plurals PASSED [ 29%] 278s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_help PASSED [ 29%] 278s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_preserve_filename PASSED [ 29%] 278s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_pot PASSED [ 29%] 278s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_po PASSED [ 29%] 278s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_remove_duplicates PASSED [ 29%] 278s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_convert_empty_YAML PASSED [ 29%] 278s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_simple_output PASSED [ 29%] 278s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_simple PASSED [ 29%] 278s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_nested PASSED [ 30%] 278s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_no_duplicates XFAIL [ 30%] 278s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_convert_with_template PASSED [ 30%] 278s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_comment_extraction PASSED [ 30%] 278s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_comment_extraction_nested PASSED [ 30%] 278s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_convert_empty_YAML PASSED [ 30%] 278s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_simple_output PASSED [ 30%] 278s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_simple PASSED [ 30%] 278s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_nested PASSED [ 30%] 278s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_no_duplicates XFAIL [ 30%] 278s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_convert_with_template PASSED [ 30%] 278s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_comment_extraction PASSED [ 30%] 278s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_comment_extraction_nested PASSED [ 30%] 278s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_help PASSED [ 30%] 278s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_empty_target PASSED [ 30%] 278s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_ellipsis PASSED [ 30%] 278s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_spacestart_spaceend PASSED [ 30%] 278s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_start_capitals PASSED [ 30%] 278s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_end_punc PASSED [ 30%] 278s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_combinations PASSED [ 30%] 278s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_nothing_to_do PASSED [ 30%] 278s tests/translate/filters/test_checks.py::test_defaults PASSED [ 30%] 278s tests/translate/filters/test_checks.py::test_construct PASSED [ 30%] 278s tests/translate/filters/test_checks.py::test_accelerator_markers PASSED [ 30%] 278s tests/translate/filters/test_checks.py::test_messages PASSED [ 30%] 278s tests/translate/filters/test_checks.py::test_accelerators PASSED [ 30%] 278s tests/translate/filters/test_checks.py::test_acceleratedvariables XFAIL [ 30%] 278s tests/translate/filters/test_checks.py::test_acronyms PASSED [ 30%] 278s tests/translate/filters/test_checks.py::test_blank PASSED [ 30%] 278s tests/translate/filters/test_checks.py::test_brackets PASSED [ 30%] 278s tests/translate/filters/test_checks.py::test_compendiumconflicts PASSED [ 30%] 278s tests/translate/filters/test_checks.py::test_doublequoting PASSED [ 30%] 278s tests/translate/filters/test_checks.py::test_doublespacing PASSED [ 30%] 278s tests/translate/filters/test_checks.py::test_doublewords PASSED [ 30%] 278s tests/translate/filters/test_checks.py::test_endpunc PASSED [ 30%] 278s tests/translate/filters/test_checks.py::test_endwhitespace PASSED [ 30%] 278s tests/translate/filters/test_checks.py::test_escapes PASSED [ 30%] 278s tests/translate/filters/test_checks.py::test_newlines PASSED [ 30%] 278s tests/translate/filters/test_checks.py::test_tabs PASSED [ 30%] 278s tests/translate/filters/test_checks.py::test_filepaths PASSED [ 31%] 278s tests/translate/filters/test_checks.py::test_kdecomments PASSED [ 31%] 278s tests/translate/filters/test_checks.py::test_long PASSED [ 31%] 278s tests/translate/filters/test_checks.py::test_musttranslatewords XFAIL [ 31%] 278s tests/translate/filters/test_checks.py::test_notranslatewords PASSED [ 31%] 278s tests/translate/filters/test_checks.py::test_numbers PASSED [ 31%] 278s tests/translate/filters/test_checks.py::test_persian_numbers PASSED [ 31%] 278s tests/translate/filters/test_checks.py::test_bengali_numbers PASSED [ 31%] 278s tests/translate/filters/test_checks.py::test_arabic_numbers PASSED [ 31%] 278s tests/translate/filters/test_checks.py::test_assamese_numbers PASSED [ 31%] 278s tests/translate/filters/test_checks.py::test_options PASSED [ 31%] 278s tests/translate/filters/test_checks.py::test_printf PASSED [ 31%] 278s tests/translate/filters/test_checks.py::test_pythonbraceformat PASSED [ 31%] 278s tests/translate/filters/test_checks.py::test_puncspacing PASSED [ 31%] 278s tests/translate/filters/test_checks.py::test_purepunc PASSED [ 31%] 278s tests/translate/filters/test_checks.py::test_sentencecount PASSED [ 31%] 278s tests/translate/filters/test_checks.py::test_short PASSED [ 31%] 278s tests/translate/filters/test_checks.py::test_singlequoting PASSED [ 31%] 278s tests/translate/filters/test_checks.py::test_vietnamese_singlequoting PASSED [ 31%] 278s tests/translate/filters/test_checks.py::test_persian_single_and_double_quote_fail_at_the_same_time XFAIL [ 31%] 278s tests/translate/filters/test_checks.py::test_persian_quoting PASSED [ 31%] 278s tests/translate/filters/test_checks.py::test_simplecaps PASSED [ 31%] 278s tests/translate/filters/test_checks.py::test_spellcheck SKIPPED (Spe...) [ 31%] 278s tests/translate/filters/test_checks.py::test_startcaps PASSED [ 31%] 278s tests/translate/filters/test_checks.py::test_startpunc PASSED [ 31%] 278s tests/translate/filters/test_checks.py::test_startwhitespace PASSED [ 31%] 278s tests/translate/filters/test_checks.py::test_unchanged PASSED [ 31%] 278s tests/translate/filters/test_checks.py::test_untranslated PASSED [ 31%] 278s tests/translate/filters/test_checks.py::test_validchars PASSED [ 31%] 278s tests/translate/filters/test_checks.py::test_minimalchecker PASSED [ 31%] 278s tests/translate/filters/test_checks.py::test_reducedchecker PASSED [ 31%] 278s tests/translate/filters/test_checks.py::test_variables_kde PASSED [ 31%] 278s tests/translate/filters/test_checks.py::test_variables_gnome PASSED [ 31%] 278s tests/translate/filters/test_checks.py::test_variables_mozilla PASSED [ 31%] 278s tests/translate/filters/test_checks.py::test_variables_openoffice PASSED [ 31%] 278s tests/translate/filters/test_checks.py::test_variables_cclicense PASSED [ 31%] 278s tests/translate/filters/test_checks.py::test_variables_ios PASSED [ 31%] 278s tests/translate/filters/test_checks.py::test_xmltags PASSED [ 31%] 278s tests/translate/filters/test_checks.py::test_bengali_mozilla_inverted_xmltags XFAIL [ 31%] 278s tests/translate/filters/test_checks.py::test_ooxmltags PASSED [ 32%] 278s tests/translate/filters/test_checks.py::test_functions PASSED [ 32%] 278s tests/translate/filters/test_checks.py::test_emails PASSED [ 32%] 278s tests/translate/filters/test_checks.py::test_urls PASSED [ 32%] 278s tests/translate/filters/test_checks.py::test_simpleplurals PASSED [ 32%] 278s tests/translate/filters/test_checks.py::test_nplurals PASSED [ 32%] 278s tests/translate/filters/test_checks.py::test_credits PASSED [ 32%] 278s tests/translate/filters/test_checks.py::test_gconf PASSED [ 32%] 278s tests/translate/filters/test_checks.py::test_validxml PASSED [ 32%] 278s tests/translate/filters/test_checks.py::test_hassuggestion PASSED [ 32%] 278s tests/translate/filters/test_checks.py::test_dialogsizes PASSED [ 32%] 278s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers PASSED [ 32%] 278s tests/translate/filters/test_checks.py::test_mozilla_no_accelerators_for_indic PASSED [ 32%] 278s tests/translate/filters/test_checks.py::test_noaccelerators_only_in_mozilla_checker PASSED [ 32%] 278s tests/translate/filters/test_checks.py::test_ensure_accelerators_not_in_target_if_not_in_source PASSED [ 32%] 278s tests/translate/filters/test_checks.py::test_ensure_bengali_languages_script_is_correct PASSED [ 32%] 278s tests/translate/filters/test_checks.py::test_category PASSED [ 32%] 278s tests/translate/filters/test_decoration.py::test_spacestart PASSED [ 32%] 278s tests/translate/filters/test_decoration.py::test_isvalidaccelerator PASSED [ 32%] 278s tests/translate/filters/test_decoration.py::test_find_marked_variables PASSED [ 32%] 278s tests/translate/filters/test_decoration.py::test_getnumbers PASSED [ 32%] 278s tests/translate/filters/test_decoration.py::test_getfunctions PASSED [ 32%] 278s tests/translate/filters/test_pofilter.py::TestPOFilter::test_simplepass PASSED [ 32%] 278s tests/translate/filters/test_pofilter.py::TestPOFilter::test_simplefail PASSED [ 32%] 278s tests/translate/filters/test_pofilter.py::TestPOFilter::test_variables_across_lines PASSED [ 32%] 278s tests/translate/filters/test_pofilter.py::TestPOFilter::test_ignore_if_already_marked PASSED [ 32%] 278s tests/translate/filters/test_pofilter.py::TestPOFilter::test_non_existent_check PASSED [ 32%] 278s tests/translate/filters/test_pofilter.py::TestPOFilter::test_list_all_tests PASSED [ 32%] 278s tests/translate/filters/test_pofilter.py::TestPOFilter::test_test_against_fuzzy PASSED [ 32%] 278s tests/translate/filters/test_pofilter.py::TestPOFilter::test_test_against_review PASSED [ 32%] 278s tests/translate/filters/test_pofilter.py::TestPOFilter::test_isfuzzy PASSED [ 32%] 278s tests/translate/filters/test_pofilter.py::TestPOFilter::test_isreview PASSED [ 32%] 278s tests/translate/filters/test_pofilter.py::TestPOFilter::test_notes PASSED [ 32%] 278s tests/translate/filters/test_pofilter.py::TestPOFilter::test_unicode PASSED [ 32%] 278s tests/translate/filters/test_pofilter.py::TestPOFilter::test_preconditions PASSED [ 32%] 278s tests/translate/filters/test_pofilter.py::TestPOFilter::test_msgid_comments PASSED [ 32%] 278s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_simplepass PASSED [ 32%] 278s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_simplefail PASSED [ 32%] 278s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_variables_across_lines PASSED [ 32%] 278s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_ignore_if_already_marked PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_non_existent_check PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_list_all_tests PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_test_against_fuzzy PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_test_against_review PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_isfuzzy PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_isreview PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_notes PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_unicode PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_preconditions PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_simplepass PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_simplefail PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_variables_across_lines PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_ignore_if_already_marked PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_non_existent_check PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_list_all_tests PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_notes PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_unicode PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_preconditions PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_test_against_fuzzy PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_test_against_review PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_isfuzzy PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_isreview PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_simplepass PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_simplefail PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_variables_across_lines PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_ignore_if_already_marked PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_non_existent_check PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_list_all_tests PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_test_against_fuzzy PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_test_against_review PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_isfuzzy PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_isreview PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_notes PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_unicode PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_preconditions PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_msgid_comments PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_cedillas PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_niciun PASSED [ 33%] 278s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_nicio PASSED [ 34%] 278s tests/translate/filters/test_prefilters.py::test_removekdecomments PASSED [ 34%] 278s tests/translate/filters/test_prefilters.py::test_filterwordswithpunctuation PASSED [ 34%] 278s tests/translate/lang/test_af.py::test_sentences PASSED [ 34%] 278s tests/translate/lang/test_af.py::test_capsstart PASSED [ 34%] 278s tests/translate/lang/test_af.py::test_transliterate_cyrillic PASSED [ 34%] 278s tests/translate/lang/test_am.py::test_punctranslate PASSED [ 34%] 278s tests/translate/lang/test_am.py::test_sentences PASSED [ 34%] 278s tests/translate/lang/test_ar.py::test_punctranslate PASSED [ 34%] 278s tests/translate/lang/test_ar.py::test_sentences PASSED [ 34%] 278s tests/translate/lang/test_common.py::test_characters PASSED [ 34%] 278s tests/translate/lang/test_common.py::test_words PASSED [ 34%] 278s tests/translate/lang/test_common.py::test_word_khmer PASSED [ 34%] 278s tests/translate/lang/test_common.py::test_sentences PASSED [ 34%] 278s tests/translate/lang/test_common.py::test_capsstart PASSED [ 34%] 278s tests/translate/lang/test_common.py::test_numstart PASSED [ 34%] 278s tests/translate/lang/test_common.py::test_punctranslate PASSED [ 34%] 278s tests/translate/lang/test_common.py::test_length_difference PASSED [ 34%] 278s tests/translate/lang/test_common.py::test_alter_length PASSED [ 34%] 278s tests/translate/lang/test_data.py::test_normalise_code PASSED [ 34%] 278s tests/translate/lang/test_data.py::test_simplify_to_common PASSED [ 34%] 278s tests/translate/lang/test_data.py::test_is_rtl PASSED [ 34%] 278s tests/translate/lang/test_el.py::test_punctranslate PASSED [ 34%] 278s tests/translate/lang/test_el.py::test_sentences PASSED [ 34%] 278s tests/translate/lang/test_es.py::test_punctranslate PASSED [ 34%] 278s tests/translate/lang/test_es.py::test_sentences PASSED [ 34%] 278s tests/translate/lang/test_fa.py::test_punctranslate PASSED [ 34%] 278s tests/translate/lang/test_fa.py::test_sentences PASSED [ 34%] 278s tests/translate/lang/test_factory.py::test_getlanguage PASSED [ 34%] 278s tests/translate/lang/test_factory.py::test_get_all_languages PASSED [ 34%] 278s tests/translate/lang/test_fr.py::test_punctranslate PASSED [ 34%] 278s tests/translate/lang/test_fr.py::test_sentences PASSED [ 34%] 278s tests/translate/lang/test_hy.py::test_punctranslate PASSED [ 34%] 278s tests/translate/lang/test_hy.py::test_sentences PASSED [ 34%] 278s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_identify_lang PASSED [ 34%] 278s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_identify_store PASSED [ 34%] 278s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_bad_init_data PASSED [ 34%] 278s tests/translate/lang/test_ja.py::test_punctranslate PASSED [ 34%] 278s tests/translate/lang/test_ja.py::test_sentences PASSED [ 34%] 278s tests/translate/lang/test_km.py::test_punctranslate PASSED [ 35%] 278s tests/translate/lang/test_km.py::test_sentences PASSED [ 35%] 278s tests/translate/lang/test_ko.py::test_punctranslate PASSED [ 35%] 278s tests/translate/lang/test_ko.py::test_sentences PASSED [ 35%] 278s tests/translate/lang/test_ne.py::test_punctranslate PASSED [ 35%] 278s tests/translate/lang/test_ne.py::test_sentences PASSED [ 35%] 278s tests/translate/lang/test_nqo.py::test_punctranslate PASSED [ 35%] 278s tests/translate/lang/test_nqo.py::test_sentences PASSED [ 35%] 278s tests/translate/lang/test_or.py::test_punctranslate PASSED [ 35%] 278s tests/translate/lang/test_or.py::test_country_code PASSED [ 35%] 278s tests/translate/lang/test_or.py::test_sentences PASSED [ 35%] 278s tests/translate/lang/test_poedit.py::test_isocode PASSED [ 35%] 278s tests/translate/lang/test_ro.py::test_cedillas PASSED [ 35%] 278s tests/translate/lang/test_ro.py::test_niciun PASSED [ 35%] 278s tests/translate/lang/test_scn.py::test_italianisms PASSED [ 35%] 278s tests/translate/lang/test_scn.py::test_vocalism PASSED [ 35%] 278s tests/translate/lang/test_scn.py::test_suffixes PASSED [ 35%] 278s tests/translate/lang/test_team.py::test_simple PASSED [ 35%] 278s tests/translate/lang/test_th.py::test_punctranslate PASSED [ 35%] 278s tests/translate/lang/test_th.py::test_sentences PASSED [ 35%] 278s tests/translate/lang/test_tr.py::test_sentences PASSED [ 35%] 278s tests/translate/lang/test_uk.py::test_sentences PASSED [ 35%] 278s tests/translate/lang/test_vi.py::test_punctranslate PASSED [ 35%] 278s tests/translate/lang/test_vi.py::test_sentences PASSED [ 35%] 278s tests/translate/lang/test_zh.py::test_punctranslate PASSED [ 35%] 278s tests/translate/lang/test_zh.py::test_sentences PASSED [ 35%] 278s tests/translate/misc/test_deprecation.py::TestDeprecation::test_deprecated_decorator PASSED [ 35%] 278s tests/translate/misc/test_deprecation.py::TestDeprecation::test_no_deprecated_decorator PASSED [ 35%] 278s tests/translate/misc/test_dictutils.py::test_cidict_has_key PASSED [ 35%] 278s tests/translate/misc/test_dictutils.py::test_cidict_pop PASSED [ 35%] 278s tests/translate/misc/test_dictutils.py::test_cidict_getitem PASSED [ 35%] 278s tests/translate/misc/test_dictutils.py::test_cidict_setitem PASSED [ 35%] 278s tests/translate/misc/test_dictutils.py::test_cidict_delitem PASSED [ 35%] 278s tests/translate/misc/test_multistring.py::TestMultistring::test_constructor PASSED [ 35%] 278s tests/translate/misc/test_multistring.py::TestMultistring::test_constructor_validation PASSED [ 35%] 278s tests/translate/misc/test_multistring.py::TestMultistring::test_repr PASSED [ 35%] 278s tests/translate/misc/test_multistring.py::TestMultistring::test_replace PASSED [ 35%] 278s tests/translate/misc/test_multistring.py::TestMultistring::test_comparison PASSED [ 35%] 278s tests/translate/misc/test_multistring.py::TestMultistring::test_coercion PASSED [ 35%] 278s tests/translate/misc/test_multistring.py::TestMultistring::test_unicode_coercion PASSED [ 36%] 278s tests/translate/misc/test_multistring.py::TestMultistring::test_list_coercion PASSED [ 36%] 278s tests/translate/misc/test_multistring.py::TestMultistring::test_multistring_hash PASSED [ 36%] 278s tests/translate/misc/test_multistring.py::TestMultistring::test_bool PASSED [ 36%] 278s tests/translate/misc/test_optrecurse.py::TestRecursiveOptionParser::test_splitext PASSED [ 36%] 278s tests/translate/misc/test_optrecurse.py::TestRecursiveOptionParser::test_outputfile_receives_bytes PASSED [ 36%] 278s tests/translate/misc/test_progressbar.py::test_hashprogressbar PASSED [ 36%] 278s tests/translate/misc/test_quote.py::test_find_all PASSED [ 36%] 278s tests/translate/misc/test_quote.py::test_extract PASSED [ 36%] 278s tests/translate/misc/test_quote.py::test_extractwithoutquotes PASSED [ 36%] 278s tests/translate/misc/test_quote.py::test_extractwithoutquotes_passfunc PASSED [ 36%] 278s tests/translate/misc/test_quote.py::test_stripcomment PASSED [ 36%] 278s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode PASSED [ 36%] 278s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode_iso_8859_1 PASSED [ 36%] 278s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode_ascii PASSED [ 36%] 278s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode_unicode_range PASSED [ 36%] 278s tests/translate/misc/test_quote.py::TestEncoding::test_java_utf8_properties_encode PASSED [ 36%] 278s tests/translate/misc/test_quote.py::TestEncoding::test_escapespace PASSED [ 36%] 278s tests/translate/misc/test_quote.py::TestEncoding::test_mozillaescapemarginspaces PASSED [ 36%] 278s tests/translate/misc/test_quote.py::TestEncoding::test_mozilla_control_escapes PASSED [ 36%] 278s tests/translate/misc/test_quote.py::TestEncoding::test_propertiesdecode PASSED [ 36%] 278s tests/translate/misc/test_quote.py::TestEncoding::test_controlchars PASSED [ 36%] 278s tests/translate/misc/test_quote.py::TestEncoding::test_properties_decode_slashu PASSED [ 36%] 278s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding PASSED [ 36%] 278s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_existing_entities PASSED [ 36%] 278s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_passthrough PASSED [ 36%] 278s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_nonentities PASSED [ 36%] 278s tests/translate/misc/test_xml_helpers.py::TestReindent::test_indent_four_spaces PASSED [ 36%] 278s tests/translate/misc/test_xml_helpers.py::TestReindent::test_indent_tab PASSED [ 36%] 278s tests/translate/search/test_lshtein.py::TestLevenshtein::test_basic_distance PASSED [ 36%] 278s tests/translate/search/test_lshtein.py::TestLevenshtein::test_basic_similarity PASSED [ 36%] 278s tests/translate/search/test_lshtein.py::TestLevenshtein::test_long_similarity PASSED [ 36%] 278s tests/translate/search/test_match.py::TestMatch::test_matching PASSED [ 36%] 278s tests/translate/search/test_match.py::TestMatch::test_multiple_store PASSED [ 36%] 278s tests/translate/search/test_match.py::TestMatch::test_extendtm PASSED [ 36%] 278s tests/translate/search/test_match.py::TestMatch::test_terminology PASSED [ 36%] 278s tests/translate/search/test_match.py::TestMatch::test_brackets PASSED [ 36%] 278s tests/translate/search/test_match.py::TestMatch::test_past_tences PASSED [ 36%] 278s tests/translate/search/test_match.py::TestMatch::test_space_mismatch PASSED [ 36%] 278s tests/translate/search/test_match.py::TestMatch::test_hyphen_mismatch PASSED [ 37%] 278s tests/translate/search/test_terminology.py::TestTerminology::test_basic PASSED [ 37%] 278s tests/translate/services/test_tmserver.py::TestTMServer::test_import PASSED [ 37%] 279s tests/translate/services/test_tmserver.py::TestTMServer::test_server PASSED [ 37%] 279s tests/translate/storage/placeables/test_base.py::TestStringElem::test_parse PASSED [ 37%] 279s tests/translate/storage/placeables/test_base.py::TestStringElem::test_tree PASSED [ 37%] 279s tests/translate/storage/placeables/test_base.py::TestStringElem::test_add PASSED [ 37%] 279s tests/translate/storage/placeables/test_base.py::TestStringElem::test_contains PASSED [ 37%] 279s tests/translate/storage/placeables/test_base.py::TestStringElem::test_getitem PASSED [ 37%] 279s tests/translate/storage/placeables/test_base.py::TestStringElem::test_getslice PASSED [ 37%] 279s tests/translate/storage/placeables/test_base.py::TestStringElem::test_iter PASSED [ 37%] 279s tests/translate/storage/placeables/test_base.py::TestStringElem::test_len PASSED [ 37%] 279s tests/translate/storage/placeables/test_base.py::TestStringElem::test_mul PASSED [ 37%] 279s tests/translate/storage/placeables/test_base.py::TestStringElem::test_elem_offset PASSED [ 37%] 279s tests/translate/storage/placeables/test_base.py::TestStringElem::test_elem_at_offset PASSED [ 37%] 279s tests/translate/storage/placeables/test_base.py::TestStringElem::test_find PASSED [ 37%] 279s tests/translate/storage/placeables/test_base.py::TestStringElem::test_find_elems_with PASSED [ 37%] 279s tests/translate/storage/placeables/test_base.py::TestStringElem::test_flatten PASSED [ 37%] 279s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case1 PASSED [ 37%] 279s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case2 PASSED [ 37%] 279s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case3 PASSED [ 37%] 279s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case4 PASSED [ 37%] 279s tests/translate/storage/placeables/test_base.py::TestStringElem::test_insert PASSED [ 37%] 279s tests/translate/storage/placeables/test_base.py::TestStringElem::test_isleaf PASSED [ 37%] 279s tests/translate/storage/placeables/test_base.py::TestStringElem::test_prune PASSED [ 37%] 279s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_base_placeables PASSED [ 37%] 279s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_general_placeables XFAIL [ 37%] 279s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_xliff_placeables XFAIL [ 37%] 279s tests/translate/storage/placeables/test_general.py::test_placeable_numbers PASSED [ 37%] 279s tests/translate/storage/placeables/test_general.py::test_placeable_newline PASSED [ 37%] 279s tests/translate/storage/placeables/test_general.py::test_placeable_alt_attr PASSED [ 37%] 279s tests/translate/storage/placeables/test_general.py::test_placeable_qt_formatting PASSED [ 37%] 279s tests/translate/storage/placeables/test_general.py::test_placeable_camelcase PASSED [ 37%] 279s tests/translate/storage/placeables/test_general.py::test_placeable_space PASSED [ 37%] 279s tests/translate/storage/placeables/test_general.py::test_placeable_punctuation PASSED [ 37%] 279s tests/translate/storage/placeables/test_general.py::test_placeable_xml_entity PASSED [ 37%] 279s tests/translate/storage/placeables/test_general.py::test_placeable_xml_tag PASSED [ 37%] 279s tests/translate/storage/placeables/test_general.py::test_placeable_option PASSED [ 37%] 279s tests/translate/storage/placeables/test_general.py::test_placeable_file PASSED [ 37%] 279s tests/translate/storage/placeables/test_general.py::test_placeable_email PASSED [ 38%] 279s tests/translate/storage/placeables/test_general.py::test_placeable_caps PASSED [ 38%] 279s tests/translate/storage/placeables/test_general.py::test_placeable_formatting PASSED [ 38%] 279s tests/translate/storage/placeables/test_general.py::test_placeable_doubleat PASSED [ 38%] 279s tests/translate/storage/placeables/test_general.py::test_placeable_brace PASSED [ 38%] 279s tests/translate/storage/placeables/test_general.py::test_python_placeable PASSED [ 38%] 279s tests/translate/storage/placeables/test_lisa.py::test_xml_to_strelem PASSED [ 38%] 279s tests/translate/storage/placeables/test_lisa.py::test_xml_space PASSED [ 38%] 279s tests/translate/storage/placeables/test_lisa.py::test_chunk_list PASSED [ 38%] 279s tests/translate/storage/placeables/test_lisa.py::test_set_strelem_to_xml PASSED [ 38%] 279s tests/translate/storage/placeables/test_lisa.py::test_unknown_xml_placeable PASSED [ 38%] 279s tests/translate/storage/placeables/test_terminology.py::TestTerminologyPlaceable::test_simple_terminology PASSED [ 38%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_isfuzzy PASSED [ 38%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_create PASSED [ 38%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_eq PASSED [ 38%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escapes PASSED [ 38%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_difficult_escapes PASSED [ 38%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_note_sanity PASSED [ 38%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_line_number_default PASSED [ 38%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_target PASSED [ 38%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_rich_get PASSED [ 38%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_rich_set PASSED [ 38%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_message_with_newline PASSED [ 38%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quotes_with_newline PASSED [ 38%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_message_with_newline_in_xml PASSED [ 38%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_twitter PASSED [ 38%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quote PASSED [ 38%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_question PASSED [ 38%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_double_space PASSED [ 38%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_leading_space PASSED [ 38%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_tailing_space PASSED [ 38%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_xml_entities PASSED [ 38%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code PASSED [ 38%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code_quote PASSED [ 38%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code_quote_newline PASSED [ 38%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_arrows PASSED [ 38%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_link PASSED [ 38%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_link_and_text PASSED [ 38%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_blank_string PASSED [ 38%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_escape_message_with_newline PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_invalid_lang PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_quote PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_leading_space PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_trailing_space PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_with_ampersand PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_double_space PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_deep_double_space PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_complex_xml PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quoted_newlines PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_message_with_newline PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_message_with_newline_in_xml PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_twitter PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_question PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quote PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_double_space PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_space PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_newlines PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_xml_entities PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_code PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_arrows PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_link PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_link_and_text PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_blank_string PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_space PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_spaces PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_escaped_newline PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_escaped_newline PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_spaces PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_newline PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_many_quotes PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_blank_string_again PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_double_quotes_string PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_newline_in_string PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_not_translatable_string PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_parse_message_with_newline PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_parse_message_with_comments PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_quote PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_leading_space PASSED [ 39%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_leading_space_quoted PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_trailing_space PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_trailing_space_quoted PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_with_ampersand PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_double_space_quoted PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_deep_double_space_quoted PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_complex_xml PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_unicode PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_unescaped PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_escaped_alone PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_escaped_full PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_escaped_percent PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_percent PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_quote PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_unparied_quote PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escape_slash PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escape_ignored PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escaped_quote_end PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_xml PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_create_blank PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_add PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_remove PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_find PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_parse PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_files PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_save PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_extensions PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_mimetypes PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_translate PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_nonascii PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_default_handlings PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_filename PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_filename_default_language PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_invalid_filename PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_namespaces PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_serialize PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_add_formatting PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity PASSED [ 40%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_invalid_entity PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_indent PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_markup PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_parse_decimal_plurals PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_to_plurals PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity_add_edit PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity_add_noedit PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_remove PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_set PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_others PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_quotes_set PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_xliff_g PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_xliff_namespace PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_zh_hk PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_b_zh_hk PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_missing_plural PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_empty_missing_plural_tag PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_removeunit PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_cdata PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_cdata_text PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_prefix PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_rtl PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_tail PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_translatable_marking PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_escaping PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_isfuzzy PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_create PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_eq PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_escapes PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_difficult_escapes PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_note_sanity PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_line_number_default PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_target PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_rich_get PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_rich_set PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_escape_quote PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_create_blank PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_add PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_remove PASSED [ 41%] 279s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_find PASSED [ 42%] 279s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_parse PASSED [ 42%] 279s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_files PASSED [ 42%] 279s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_save PASSED [ 42%] 279s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_extensions PASSED [ 42%] 279s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_mimetypes PASSED [ 42%] 279s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_translate PASSED [ 42%] 279s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_markup PASSED [ 42%] 279s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_nonascii PASSED [ 42%] 279s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_plural PASSED [ 42%] 279s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_isfuzzy PASSED [ 42%] 279s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_create PASSED [ 42%] 279s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_eq PASSED [ 42%] 279s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_escapes PASSED [ 42%] 279s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_difficult_escapes PASSED [ 42%] 279s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_note_sanity PASSED [ 42%] 279s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_line_number_default PASSED [ 42%] 279s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_target PASSED [ 42%] 279s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_rich_get PASSED [ 42%] 279s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_rich_set PASSED [ 42%] 279s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_escape_quote PASSED [ 42%] 279s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_create_blank PASSED [ 42%] 279s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_add PASSED [ 42%] 279s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_remove PASSED [ 42%] 279s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_find PASSED [ 42%] 279s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_parse PASSED [ 42%] 279s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_files PASSED [ 42%] 279s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_save PASSED [ 42%] 279s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_extensions PASSED [ 42%] 279s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_mimetypes PASSED [ 42%] 279s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_translate PASSED [ 42%] 279s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_markup PASSED [ 42%] 279s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_nonascii PASSED [ 42%] 279s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_quote_escape PASSED [ 42%] 279s tests/translate/storage/test_base.py::TestTranslationUnit::test_isfuzzy PASSED [ 42%] 279s tests/translate/storage/test_base.py::TestTranslationUnit::test_create PASSED [ 42%] 279s tests/translate/storage/test_base.py::TestTranslationUnit::test_eq PASSED [ 42%] 279s tests/translate/storage/test_base.py::TestTranslationUnit::test_target PASSED [ 42%] 279s tests/translate/storage/test_base.py::TestTranslationUnit::test_escapes PASSED [ 42%] 279s tests/translate/storage/test_base.py::TestTranslationUnit::test_difficult_escapes PASSED [ 43%] 279s tests/translate/storage/test_base.py::TestTranslationUnit::test_note_sanity PASSED [ 43%] 279s tests/translate/storage/test_base.py::TestTranslationUnit::test_line_number_default PASSED [ 43%] 279s tests/translate/storage/test_base.py::TestTranslationUnit::test_rich_get PASSED [ 43%] 279s tests/translate/storage/test_base.py::TestTranslationUnit::test_rich_set PASSED [ 43%] 279s tests/translate/storage/test_base.py::TestTranslationStore::test_create_blank PASSED [ 43%] 279s tests/translate/storage/test_base.py::TestTranslationStore::test_add PASSED [ 43%] 279s tests/translate/storage/test_base.py::TestTranslationStore::test_remove PASSED [ 43%] 279s tests/translate/storage/test_base.py::TestTranslationStore::test_find PASSED [ 43%] 279s tests/translate/storage/test_base.py::TestTranslationStore::test_translate PASSED [ 43%] 279s tests/translate/storage/test_base.py::TestTranslationStore::test_parse PASSED [ 43%] 279s tests/translate/storage/test_base.py::TestTranslationStore::test_files PASSED [ 43%] 279s tests/translate/storage/test_base.py::TestTranslationStore::test_save PASSED [ 43%] 279s tests/translate/storage/test_base.py::TestTranslationStore::test_markup PASSED [ 43%] 279s tests/translate/storage/test_base.py::TestTranslationStore::test_nonascii PASSED [ 43%] 279s tests/translate/storage/test_base.py::TestTranslationStore::test_extensions PASSED [ 43%] 279s tests/translate/storage/test_base.py::TestTranslationStore::test_mimetypes PASSED [ 43%] 279s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_create_empty_bundle PASSED [ 43%] 279s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_create_bundle_from_nonexistent_file PASSED [ 43%] 279s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_save_bundle PASSED [ 43%] 279s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_cross_device_save PASSED [ 43%] 279s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_replace_project_zip PASSED [ 43%] 279s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle PASSED [ 43%] 279s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_update_file_in_bundle PASSED [ 43%] 279s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle PASSED [ 43%] 279s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_invalid_bundle_error PASSED [ 43%] 279s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_isfuzzy PASSED [ 43%] 279s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_create PASSED [ 43%] 279s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_eq PASSED [ 43%] 279s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_target PASSED [ 43%] 279s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_escapes PASSED [ 43%] 279s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_line_number_default PASSED [ 43%] 279s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_rich_get PASSED [ 43%] 279s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_rich_set PASSED [ 43%] 279s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_difficult_escapes PASSED [ 43%] 279s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_newlines PASSED [ 43%] 279s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_istranslated PASSED [ 43%] 279s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_note_sanity PASSED [ 43%] 279s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_create_blank PASSED [ 43%] 279s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_add PASSED [ 44%] 279s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_remove PASSED [ 44%] 279s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_find PASSED [ 44%] 279s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_translate PASSED [ 44%] 279s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_parse PASSED [ 44%] 279s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_files PASSED [ 44%] 279s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_save PASSED [ 44%] 279s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_markup PASSED [ 44%] 279s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_nonascii PASSED [ 44%] 279s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_extensions PASSED [ 44%] 279s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_mimetypes PASSED [ 44%] 279s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_checksum PASSED [ 44%] 279s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_isfuzzy PASSED [ 44%] 279s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_create PASSED [ 44%] 279s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_eq PASSED [ 44%] 279s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_target PASSED [ 44%] 279s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_escapes PASSED [ 44%] 279s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_difficult_escapes PASSED [ 44%] 279s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_note_sanity PASSED [ 44%] 279s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_line_number_default PASSED [ 44%] 279s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_rich_get PASSED [ 44%] 279s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_rich_set PASSED [ 44%] 279s tests/translate/storage/test_csvl10n.py::TestCSV::test_create_blank PASSED [ 44%] 279s tests/translate/storage/test_csvl10n.py::TestCSV::test_add PASSED [ 44%] 279s tests/translate/storage/test_csvl10n.py::TestCSV::test_remove PASSED [ 44%] 279s tests/translate/storage/test_csvl10n.py::TestCSV::test_find PASSED [ 44%] 279s tests/translate/storage/test_csvl10n.py::TestCSV::test_translate PASSED [ 44%] 279s tests/translate/storage/test_csvl10n.py::TestCSV::test_parse PASSED [ 44%] 279s tests/translate/storage/test_csvl10n.py::TestCSV::test_files PASSED [ 44%] 279s tests/translate/storage/test_csvl10n.py::TestCSV::test_save PASSED [ 44%] 279s tests/translate/storage/test_csvl10n.py::TestCSV::test_markup PASSED [ 44%] 279s tests/translate/storage/test_csvl10n.py::TestCSV::test_nonascii PASSED [ 44%] 279s tests/translate/storage/test_csvl10n.py::TestCSV::test_extensions PASSED [ 44%] 279s tests/translate/storage/test_csvl10n.py::TestCSV::test_mimetypes PASSED [ 44%] 279s tests/translate/storage/test_csvl10n.py::TestCSV::test_singlequoting PASSED [ 44%] 279s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8 PASSED [ 44%] 279s tests/translate/storage/test_csvl10n.py::TestCSV::test_dialect PASSED [ 44%] 279s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8_sig PASSED [ 44%] 279s tests/translate/storage/test_csvl10n.py::TestCSV::test_default PASSED [ 44%] 279s tests/translate/storage/test_csvl10n.py::TestCSV::test_location_is_parsed PASSED [ 45%] 279s tests/translate/storage/test_csvl10n.py::TestCSV::test_context_is_parsed PASSED [ 45%] 279s tests/translate/storage/test_csvl10n.py::TestCSV::test_newline PASSED [ 45%] 279s tests/translate/storage/test_csvl10n.py::TestCSV::test_parse_sample PASSED [ 45%] 279s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8_detection PASSED [ 45%] 279s tests/translate/storage/test_csvl10n.py::TestCSV::test_encoding PASSED [ 45%] 279s tests/translate/storage/test_csvl10n.py::TestCSV::test_corrupt PASSED [ 45%] 279s tests/translate/storage/test_csvl10n.py::TestCSV::test_encoding_save PASSED [ 45%] 279s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_id_target PASSED [ 45%] 279s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_context_target PASSED [ 45%] 279s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_key_translation PASSED [ 45%] 279s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_roundtrip PASSED [ 45%] 279s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_context_roundtrip PASSED [ 45%] 279s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_id_context_roundtrip PASSED [ 45%] 279s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_target_only_roundtrip PASSED [ 45%] 279s tests/translate/storage/test_csvl10n.py::TestCSV::test_quote_nonnumeric_handling PASSED [ 45%] 279s tests/translate/storage/test_csvl10n.py::TestCSV::test_quote_nonnumeric_with_single_quotes PASSED [ 45%] 279s tests/translate/storage/test_csvl10n.py::TestCSV::test_line_number PASSED [ 45%] 279s tests/translate/storage/test_dtd.py::test_roundtrip_quoting PASSED [ 45%] 279s tests/translate/storage/test_dtd.py::test_quotefordtd_unimplemented_cases XFAIL [ 45%] 279s tests/translate/storage/test_dtd.py::test_quotefordtd PASSED [ 45%] 279s tests/translate/storage/test_dtd.py::test_unquotefromdtd_unimplemented_cases XFAIL [ 45%] 279s tests/translate/storage/test_dtd.py::test_unquotefromdtd PASSED [ 45%] 279s tests/translate/storage/test_dtd.py::test_android_roundtrip_quoting PASSED [ 45%] 279s tests/translate/storage/test_dtd.py::test_quoteforandroid PASSED [ 45%] 279s tests/translate/storage/test_dtd.py::test_unquotefromandroid PASSED [ 45%] 279s tests/translate/storage/test_dtd.py::test_removeinvalidamp PASSED [ 45%] 279s tests/translate/storage/test_dtd.py::TestDTDUnit::test_isfuzzy PASSED [ 45%] 279s tests/translate/storage/test_dtd.py::TestDTDUnit::test_create PASSED [ 45%] 279s tests/translate/storage/test_dtd.py::TestDTDUnit::test_eq PASSED [ 45%] 279s tests/translate/storage/test_dtd.py::TestDTDUnit::test_escapes PASSED [ 45%] 279s tests/translate/storage/test_dtd.py::TestDTDUnit::test_difficult_escapes PASSED [ 45%] 279s tests/translate/storage/test_dtd.py::TestDTDUnit::test_note_sanity PASSED [ 45%] 279s tests/translate/storage/test_dtd.py::TestDTDUnit::test_line_number_default PASSED [ 45%] 279s tests/translate/storage/test_dtd.py::TestDTDUnit::test_target PASSED [ 45%] 279s tests/translate/storage/test_dtd.py::TestDTDUnit::test_rich_get PASSED [ 45%] 279s tests/translate/storage/test_dtd.py::TestDTDUnit::test_rich_set PASSED [ 45%] 279s tests/translate/storage/test_dtd.py::TestDTD::test_create_blank PASSED [ 45%] 279s tests/translate/storage/test_dtd.py::TestDTD::test_add PASSED [ 45%] 279s tests/translate/storage/test_dtd.py::TestDTD::test_remove PASSED [ 46%] 279s tests/translate/storage/test_dtd.py::TestDTD::test_find PASSED [ 46%] 279s tests/translate/storage/test_dtd.py::TestDTD::test_parse PASSED [ 46%] 279s tests/translate/storage/test_dtd.py::TestDTD::test_files PASSED [ 46%] 279s tests/translate/storage/test_dtd.py::TestDTD::test_save PASSED [ 46%] 279s tests/translate/storage/test_dtd.py::TestDTD::test_extensions PASSED [ 46%] 279s tests/translate/storage/test_dtd.py::TestDTD::test_mimetypes PASSED [ 46%] 279s tests/translate/storage/test_dtd.py::TestDTD::test_translate PASSED [ 46%] 279s tests/translate/storage/test_dtd.py::TestDTD::test_markup PASSED [ 46%] 279s tests/translate/storage/test_dtd.py::TestDTD::test_nonascii PASSED [ 46%] 279s tests/translate/storage/test_dtd.py::TestDTD::test_simpleentity PASSED [ 46%] 279s tests/translate/storage/test_dtd.py::TestDTD::test_blanklines PASSED [ 46%] 279s tests/translate/storage/test_dtd.py::TestDTD::test_simpleentity_source PASSED [ 46%] 279s tests/translate/storage/test_dtd.py::TestDTD::test_hashcomment_source PASSED [ 46%] 279s tests/translate/storage/test_dtd.py::TestDTD::test_commentclosing PASSED [ 46%] 279s tests/translate/storage/test_dtd.py::TestDTD::test_commententity PASSED [ 46%] 279s tests/translate/storage/test_dtd.py::TestDTD::test_newlines_in_entity PASSED [ 46%] 279s tests/translate/storage/test_dtd.py::TestDTD::test_conflate_comments PASSED [ 46%] 279s tests/translate/storage/test_dtd.py::TestDTD::test_localisation_notes PASSED [ 46%] 279s tests/translate/storage/test_dtd.py::TestDTD::test_entitityreference_in_source PASSED [ 46%] 279s tests/translate/storage/test_dtd.py::TestDTD::test_entitityreference_order_in_source PASSED [ 46%] 279s tests/translate/storage/test_dtd.py::TestDTD::test_comment_following XFAIL [ 46%] 279s tests/translate/storage/test_dtd.py::TestDTD::test_comment_newline_space_closing PASSED [ 46%] 279s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting XFAIL [ 46%] 279s tests/translate/storage/test_dtd.py::TestDTD::test_missing_quotes PASSED [ 46%] 279s tests/translate/storage/test_dtd.py::TestDTD::test_entity_escaping PASSED [ 46%] 279s tests/translate/storage/test_dtd.py::TestDTD::test_entity_escaping_roundtrip PASSED [ 46%] 279s tests/translate/storage/test_dtd.py::TestDTD::test_multiple_blank_lines PASSED [ 46%] 279s tests/translate/storage/test_dtd.py::TestDTD::test_entity_with_extra_spaces PASSED [ 46%] 279s tests/translate/storage/test_dtd.py::TestDTD::test_mixed_content_preservation PASSED [ 46%] 279s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_create_blank PASSED [ 46%] 279s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_add PASSED [ 46%] 279s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_remove PASSED [ 46%] 279s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_find PASSED [ 46%] 279s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_parse PASSED [ 46%] 279s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_files PASSED [ 46%] 279s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_save PASSED [ 46%] 279s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_extensions PASSED [ 46%] 279s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_mimetypes PASSED [ 46%] 279s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_translate PASSED [ 47%] 279s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_markup PASSED [ 47%] 279s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_nonascii PASSED [ 47%] 279s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_single_quote_escape PASSED [ 47%] 279s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_single_quote_escape_parse_and_convert_back PASSED [ 47%] 279s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_double_quote_escape PASSED [ 47%] 279s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_double_quote_escape_parse_and_convert_back PASSED [ 47%] 279s tests/translate/storage/test_factory.py::TestPOFactory::test_getclass PASSED [ 47%] 279s tests/translate/storage/test_factory.py::TestPOFactory::test_getobject_store PASSED [ 47%] 279s tests/translate/storage/test_factory.py::TestPOFactory::test_getobject PASSED [ 47%] 279s tests/translate/storage/test_factory.py::TestPOFactory::test_get_noname_object PASSED [ 47%] 279s tests/translate/storage/test_factory.py::TestPOFactory::test_gzfile PASSED [ 47%] 279s tests/translate/storage/test_factory.py::TestPOFactory::test_bz2file PASSED [ 47%] 279s tests/translate/storage/test_factory.py::TestPOFactory::test_directory PASSED [ 47%] 279s tests/translate/storage/test_factory.py::TestXliffFactory::test_getclass PASSED [ 47%] 279s tests/translate/storage/test_factory.py::TestXliffFactory::test_getobject_store PASSED [ 47%] 279s tests/translate/storage/test_factory.py::TestXliffFactory::test_getobject PASSED [ 47%] 279s tests/translate/storage/test_factory.py::TestXliffFactory::test_get_noname_object PASSED [ 47%] 279s tests/translate/storage/test_factory.py::TestXliffFactory::test_gzfile PASSED [ 47%] 279s tests/translate/storage/test_factory.py::TestXliffFactory::test_bz2file PASSED [ 47%] 279s tests/translate/storage/test_factory.py::TestXliffFactory::test_directory PASSED [ 47%] 279s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getclass PASSED [ 47%] 279s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getobject_store PASSED [ 47%] 279s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getobject PASSED [ 47%] 279s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_get_noname_object PASSED [ 47%] 279s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_gzfile PASSED [ 47%] 279s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_bz2file PASSED [ 47%] 279s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_directory PASSED [ 47%] 279s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getclass PASSED [ 47%] 279s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getobject_store PASSED [ 47%] 279s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getobject PASSED [ 47%] 279s tests/translate/storage/test_factory.py::TestWordfastFactory::test_get_noname_object PASSED [ 47%] 279s tests/translate/storage/test_factory.py::TestWordfastFactory::test_gzfile PASSED [ 47%] 279s tests/translate/storage/test_factory.py::TestWordfastFactory::test_bz2file PASSED [ 47%] 279s tests/translate/storage/test_factory.py::TestWordfastFactory::test_directory PASSED [ 47%] 279s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_isfuzzy PASSED [ 47%] 279s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_create PASSED [ 47%] 279s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_eq PASSED [ 47%] 279s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_escapes PASSED [ 47%] 279s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_difficult_escapes PASSED [ 48%] 279s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_note_sanity PASSED [ 48%] 279s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_line_number_default PASSED [ 48%] 279s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_target PASSED [ 48%] 279s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_rich_get PASSED [ 48%] 279s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_rich_set PASSED [ 48%] 279s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_create_blank PASSED [ 48%] 279s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_add PASSED [ 48%] 279s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_remove PASSED [ 48%] 279s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_find PASSED [ 48%] 279s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_parse PASSED [ 48%] 279s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_files PASSED [ 48%] 279s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_save PASSED [ 48%] 279s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_extensions PASSED [ 48%] 279s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_mimetypes PASSED [ 48%] 279s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_translate PASSED [ 48%] 279s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_markup PASSED [ 48%] 279s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_nonascii PASSED [ 48%] 279s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_root_config_detect PASSED [ 48%] 279s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_value_config_detect PASSED [ 48%] 279s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_key_config_detect PASSED [ 48%] 279s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_value_config_mixed_ok PASSED [ 48%] 279s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_namespace_config_detect PASSED [ 48%] 279s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_four_spaces PASSED [ 48%] 279s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_tab PASSED [ 48%] 279s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_none_linearizes PASSED [ 48%] 279s tests/translate/storage/test_html.py::test_guess_encoding PASSED [ 48%] 279s tests/translate/storage/test_html.py::TestHTMLParsing::test_mismatched_tags PASSED [ 48%] 279s tests/translate/storage/test_html.py::TestHTMLParsing::test_self_closing_tags PASSED [ 48%] 279s tests/translate/storage/test_html.py::TestHTMLParsing::test_escaping_script_and_pre PASSED [ 48%] 279s tests/translate/storage/test_html.py::TestHTMLExtraction::test_strip_html PASSED [ 48%] 279s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_tag_figcaption PASSED [ 48%] 279s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_tag_caption_td_th PASSED [ 48%] 279s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_attr_alt PASSED [ 48%] 279s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_attr_title PASSED [ 48%] 279s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_pre PASSED [ 48%] 279s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_pre_code PASSED [ 48%] 279s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_button PASSED [ 48%] 279s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_lang_attribute PASSED [ 48%] 279s tests/translate/storage/test_html.py::TestHTMLExtraction::test_dir_attribute_not_extracted PASSED [ 49%] 279s tests/translate/storage/test_html.py::TestHTMLExtraction::test_data_translate_ignore_attribute PASSED [ 49%] 279s tests/translate/storage/test_html.py::TestHTMLExtraction::test_translate_comment_directives PASSED [ 49%] 279s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_meta_social_media_tags PASSED [ 49%] 279s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_meta_non_translatable_tags PASSED [ 49%] 279s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_meta_mixed_translatable_and_non_translatable PASSED [ 49%] 279s tests/translate/storage/test_html.py::TestHTMLExtraction::test_data_translate_comment_attribute PASSED [ 49%] 279s tests/translate/storage/test_html_context.py::test_html_context_basic PASSED [ 49%] 279s tests/translate/storage/test_html_context.py::test_html_context_attribute PASSED [ 49%] 279s tests/translate/storage/test_html_context.py::test_html_context_attribute_with_id PASSED [ 49%] 279s tests/translate/storage/test_html_context.py::test_html_context_same_source_different_contexts PASSED [ 49%] 279s tests/translate/storage/test_html_context.py::test_html_context_nested_outer_wins PASSED [ 49%] 279s tests/translate/storage/test_html_context.py::test_html_context_absent PASSED [ 49%] 279s tests/translate/storage/test_html_context.py::test_html_context_id_overridden_by_explicit PASSED [ 49%] 279s tests/translate/storage/test_html_context.py::test_html_context_id_not_used_when_no_duplicates PASSED [ 49%] 279s tests/translate/storage/test_html_context.py::test_html_context_id_not_used_when_data_translate_context_identical PASSED [ 49%] 279s tests/translate/storage/test_html_context.py::test_html_context_disambiguates_duplicates_with_id PASSED [ 49%] 279s tests/translate/storage/test_html_context.py::test_html_context_disambiguates_duplicates_with_ancestor_id PASSED [ 49%] 279s tests/translate/storage/test_ini.py::TestINIUnit::test_isfuzzy PASSED [ 49%] 279s tests/translate/storage/test_ini.py::TestINIUnit::test_create PASSED [ 49%] 279s tests/translate/storage/test_ini.py::TestINIUnit::test_eq PASSED [ 49%] 279s tests/translate/storage/test_ini.py::TestINIUnit::test_escapes PASSED [ 49%] 279s tests/translate/storage/test_ini.py::TestINIUnit::test_difficult_escapes PASSED [ 49%] 279s tests/translate/storage/test_ini.py::TestINIUnit::test_note_sanity PASSED [ 49%] 279s tests/translate/storage/test_ini.py::TestINIUnit::test_line_number_default PASSED [ 49%] 279s tests/translate/storage/test_ini.py::TestINIUnit::test_target PASSED [ 49%] 279s tests/translate/storage/test_ini.py::TestINIUnit::test_rich_get PASSED [ 49%] 279s tests/translate/storage/test_ini.py::TestINIUnit::test_rich_set PASSED [ 49%] 279s tests/translate/storage/test_ini.py::TestINIStore::test_create_blank PASSED [ 49%] 279s tests/translate/storage/test_ini.py::TestINIStore::test_add PASSED [ 49%] 279s tests/translate/storage/test_ini.py::TestINIStore::test_remove PASSED [ 49%] 279s tests/translate/storage/test_ini.py::TestINIStore::test_find PASSED [ 49%] 279s tests/translate/storage/test_ini.py::TestINIStore::test_parse PASSED [ 49%] 279s tests/translate/storage/test_ini.py::TestINIStore::test_files PASSED [ 49%] 279s tests/translate/storage/test_ini.py::TestINIStore::test_save PASSED [ 49%] 279s tests/translate/storage/test_ini.py::TestINIStore::test_extensions PASSED [ 49%] 279s tests/translate/storage/test_ini.py::TestINIStore::test_mimetypes PASSED [ 49%] 279s tests/translate/storage/test_ini.py::TestINIStore::test_translate PASSED [ 49%] 279s tests/translate/storage/test_ini.py::TestINIStore::test_markup PASSED [ 49%] 279s tests/translate/storage/test_ini.py::TestINIStore::test_nonascii PASSED [ 50%] 279s tests/translate/storage/test_ini.py::TestINIStore::test_serialize PASSED [ 50%] 279s tests/translate/storage/test_ini.py::TestINIStore::test_rem PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_isfuzzy PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_create PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_eq PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_escapes PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_difficult_escapes PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_note_sanity PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_line_number_default PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_target PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_rich_get PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_rich_set PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_create_blank PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_remove PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_find PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_parse PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_files PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_save PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_extensions PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_mimetypes PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_translate PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_markup PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_nonascii PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_serialize PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_can_not_detect PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_error PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_filter PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_ordering PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_args PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_bom PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_complex PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_complex_array PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add_list_like PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add_blank PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_types PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_null PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_isfuzzy PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_create PASSED [ 50%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_eq PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_escapes PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_difficult_escapes PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_note_sanity PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_line_number_default PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_target PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_rich_get PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_rich_set PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_serialize PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_ordering PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_array PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_index PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_index_nested PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_nested_list_mixed PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_list_to_dict PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_complex_keys PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_other PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[0]-expected0] PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[test[0]-expected1] PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[test[0][1][2][3]-expected2] PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[test]selection-expected3] PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[test][0]selection-expected4] PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[0][test]selection-expected5] PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[-expected6] PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_dot_keys PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_isfuzzy PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_create PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_eq PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_escapes PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_difficult_escapes PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_note_sanity PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_line_number_default PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_target PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_rich_get PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_rich_set PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_create_blank PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_add PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_remove PASSED [ 51%] 279s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_find PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_parse PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_files PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_save PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_extensions PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_mimetypes PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_translate PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_markup PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_nonascii PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_serialize PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_dot_keys PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_leading_dot_keys PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_serialize_no_description PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_set_target PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_placeholders PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_comments PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_create_blank PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_add PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_remove PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_find PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_parse PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_files PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_save PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_extensions PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_mimetypes PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_translate PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_markup PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_nonascii PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_serialize PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_units PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_plurals PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_nested_array PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_new_plural PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_new_plural_id PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_create_blank PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_add PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_remove PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_find PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_parse PASSED [ 52%] 279s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_files PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_save PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_extensions PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_mimetypes PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_translate PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_markup PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_nonascii PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_plurals PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_plurals_missing PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_case_no_msg PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_complex_id PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_create_blank PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_add PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_remove PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_find PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_parse PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_files PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_save PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_extensions PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_mimetypes PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_translate PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_markup PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_nonascii PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_serialize PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_units PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_plurals PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_nested_array PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_new_plural PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_ru PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_create_blank PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_add PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_remove PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_find PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_parse PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_files PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_save PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_extensions PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_mimetypes PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_translate PASSED [ 53%] 279s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_markup PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_nonascii PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_serialize PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_units PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_plurals PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_nested_array PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_new_plural PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_ru PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_create_blank PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_add PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_remove PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_find PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_parse PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_files PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_save PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_extensions PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_mimetypes PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_translate PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_markup PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_nonascii PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_plurals PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_plurals_missing PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_invalid PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_dot_keys PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_create_blank PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_add PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_remove PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_find PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_parse PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_files PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_save PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_extensions PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_mimetypes PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_translate PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_markup PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_nonascii PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_1 PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_2 PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_blank PASSED [ 54%] 279s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_missing PASSED [ 55%] 279s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_simplification PASSED [ 55%] 279s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_invalid PASSED [ 55%] 279s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_dot_keys PASSED [ 55%] 279s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_create_blank PASSED [ 55%] 279s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_add PASSED [ 55%] 279s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_remove PASSED [ 55%] 279s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_find PASSED [ 55%] 279s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_parse PASSED [ 55%] 279s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_files PASSED [ 55%] 279s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_save PASSED [ 55%] 279s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_extensions PASSED [ 55%] 279s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_mimetypes PASSED [ 55%] 279s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_translate PASSED [ 55%] 279s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_markup PASSED [ 55%] 279s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_nonascii PASSED [ 55%] 279s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_roundtrip PASSED [ 55%] 279s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_leading_dot_keys PASSED [ 55%] 279s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_invalid_nesting PASSED [ 55%] 279s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_empty_metadata_not_stored PASSED [ 55%] 279s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_create_blank PASSED [ 55%] 279s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_add PASSED [ 55%] 279s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_remove PASSED [ 55%] 280s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_find PASSED [ 55%] 280s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_parse PASSED [ 55%] 280s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_files PASSED [ 55%] 280s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_save PASSED [ 55%] 280s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_extensions PASSED [ 55%] 280s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_mimetypes PASSED [ 55%] 280s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_translate PASSED [ 55%] 280s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_markup PASSED [ 55%] 280s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_nonascii PASSED [ 55%] 280s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_roundtrip PASSED [ 55%] 280s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_leading_dot_keys PASSED [ 55%] 280s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_invalid PASSED [ 55%] 280s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_isfuzzy PASSED [ 55%] 280s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_create PASSED [ 55%] 280s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_eq PASSED [ 55%] 280s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_escapes PASSED [ 55%] 280s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_difficult_escapes PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_note_sanity PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_line_number_default PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_target PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_rich_get PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_rich_set PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_source_property_maps_to_id PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_source_roundtrip PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_create_blank PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_add PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_remove PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_find PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_parse PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_files PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_save PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_extensions PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_mimetypes PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_translate PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_markup PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_nonascii PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_parse_simple PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_serialize_simple PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_parse_with_plurals PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_preserve_plural_form PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_roundtrip_with_plurals PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_ignore_non_translations_keys PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_preserve_other_metadata PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_add_unit PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_add_plural_unit PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_empty_translations PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_create_blank PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_add PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_remove PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_find PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_parse PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_files PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_save PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_extensions PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_mimetypes PASSED [ 56%] 280s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_translate PASSED [ 57%] 280s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_markup PASSED [ 57%] 280s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_nonascii PASSED [ 57%] 280s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_roundtrip PASSED [ 57%] 280s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_basic_parsing PASSED [ 57%] 280s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_multiple_metadata PASSED [ 57%] 280s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_no_metadata PASSED [ 57%] 280s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_edit_target PASSED [ 57%] 280s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_edit_notes PASSED [ 57%] 280s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_keys_with_dots PASSED [ 57%] 280s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_leading_dot_keys PASSED [ 57%] 280s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_invalid_nesting PASSED [ 57%] 280s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_source_property_get_set PASSED [ 57%] 280s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_source_property_persists PASSED [ 57%] 280s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_getcontext_returns_id PASSED [ 57%] 280s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_parsing_preserves_order PASSED [ 57%] 280s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_metadata_without_translation PASSED [ 57%] 280s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_complex_keys_with_multiple_dots PASSED [ 57%] 280s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_source_empty_string PASSED [ 57%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_atx_heading PASSED [ 57%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_autolink PASSED [ 57%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_block_quote PASSED [ 57%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_code_block PASSED [ 57%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_code_span PASSED [ 57%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_atx_heading PASSED [ 57%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_document PASSED [ 57%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_list_item PASSED [ 57%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_escaped_character PASSED [ 57%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_hard_line_break PASSED [ 57%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_block PASSED [ 57%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_character_entities PASSED [ 57%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_span PASSED [ 57%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_image_embedded_in_link PASSED [ 57%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_collapsed_reference_link PASSED [ 57%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_full_reference_link PASSED [ 57%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_shortcut_reference_link PASSED [ 57%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_merging_of_adjacent_placeholders PASSED [ 57%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_nested_block_tokens PASSED [ 57%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_nested_list PASSED [ 57%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_paragraph_with_basic_markup PASSED [ 58%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_paragraph_with_only_whitespace_and_placeholders PASSED [ 58%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_placeholder_trimming PASSED [ 58%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_image PASSED [ 58%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_image_no_title PASSED [ 58%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_link PASSED [ 58%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_text_paragraph PASSED [ 58%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_remove_placeholders_from_both_ends_of_translation_units PASSED [ 58%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_setext_heading PASSED [ 58%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_table_with_header PASSED [ 58%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_thematic_break PASSED [ 58%] 280s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_hard_line_break_in_translation_unit PASSED [ 58%] 280s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_missing_placeholder PASSED [ 58%] 280s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_duplicate_placeholder PASSED [ 58%] 280s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_extraneous_placeholder PASSED [ 58%] 280s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_reordered_placeholders PASSED [ 58%] 280s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_invalid_markdown_in_translation PASSED [ 58%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_section_basic PASSED [ 58%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_section_with_markup PASSED [ 58%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_section_with_code_block PASSED [ 58%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_multiple_ignore_sections PASSED [ 58%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_at_start PASSED [ 58%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_at_end PASSED [ 58%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_nested_structures_in_ignore PASSED [ 58%] 280s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_link_references_in_ignore PASSED [ 58%] 280s tests/translate/storage/test_mo.py::TestMOUnit::test_isfuzzy PASSED [ 58%] 280s tests/translate/storage/test_mo.py::TestMOUnit::test_create PASSED [ 58%] 280s tests/translate/storage/test_mo.py::TestMOUnit::test_eq PASSED [ 58%] 280s tests/translate/storage/test_mo.py::TestMOUnit::test_target PASSED [ 58%] 280s tests/translate/storage/test_mo.py::TestMOUnit::test_escapes PASSED [ 58%] 280s tests/translate/storage/test_mo.py::TestMOUnit::test_difficult_escapes PASSED [ 58%] 280s tests/translate/storage/test_mo.py::TestMOUnit::test_note_sanity PASSED [ 58%] 280s tests/translate/storage/test_mo.py::TestMOUnit::test_line_number_default PASSED [ 58%] 280s tests/translate/storage/test_mo.py::TestMOUnit::test_rich_get PASSED [ 58%] 280s tests/translate/storage/test_mo.py::TestMOUnit::test_rich_set PASSED [ 58%] 280s tests/translate/storage/test_mo.py::TestMOUnit::test_context PASSED [ 58%] 280s tests/translate/storage/test_mo.py::TestMOFile::test_create_blank PASSED [ 58%] 280s tests/translate/storage/test_mo.py::TestMOFile::test_add PASSED [ 58%] 280s tests/translate/storage/test_mo.py::TestMOFile::test_remove PASSED [ 58%] 280s tests/translate/storage/test_mo.py::TestMOFile::test_find PASSED [ 59%] 280s tests/translate/storage/test_mo.py::TestMOFile::test_translate PASSED [ 59%] 280s tests/translate/storage/test_mo.py::TestMOFile::test_parse PASSED [ 59%] 280s tests/translate/storage/test_mo.py::TestMOFile::test_files PASSED [ 59%] 280s tests/translate/storage/test_mo.py::TestMOFile::test_save PASSED [ 59%] 280s tests/translate/storage/test_mo.py::TestMOFile::test_markup PASSED [ 59%] 280s tests/translate/storage/test_mo.py::TestMOFile::test_nonascii PASSED [ 59%] 280s tests/translate/storage/test_mo.py::TestMOFile::test_extensions PASSED [ 59%] 280s tests/translate/storage/test_mo.py::TestMOFile::test_mimetypes PASSED [ 59%] 280s tests/translate/storage/test_mo.py::TestMOFile::test_language PASSED [ 59%] 280s tests/translate/storage/test_mo.py::TestMOFile::test_context PASSED [ 59%] 280s tests/translate/storage/test_mo.py::TestMOFile::test_output SKIPPED [ 59%] 280s tests/translate/storage/test_mo.py::TestMOFile::test_endian_version_parsing PASSED [ 59%] 280s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_isfuzzy PASSED [ 59%] 280s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_create PASSED [ 59%] 280s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_eq PASSED [ 59%] 280s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_escapes PASSED [ 59%] 280s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_difficult_escapes PASSED [ 59%] 280s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_note_sanity PASSED [ 59%] 280s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_line_number_default PASSED [ 59%] 280s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_target PASSED [ 59%] 280s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_rich_get PASSED [ 59%] 280s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_rich_set PASSED [ 59%] 280s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_create_blank PASSED [ 59%] 280s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_add PASSED [ 59%] 280s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_remove PASSED [ 59%] 280s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_find PASSED [ 59%] 280s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_parse PASSED [ 59%] 280s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_files PASSED [ 59%] 280s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_save PASSED [ 59%] 280s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_extensions PASSED [ 59%] 280s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_mimetypes PASSED [ 59%] 280s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_translate PASSED [ 59%] 280s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_markup PASSED [ 59%] 280s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_nonascii PASSED [ 59%] 280s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[-] PASSED [ 59%] 280s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String-String] PASSED [ 59%] 280s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok}-String] PASSED [ 59%] 280s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {OK}-String] PASSED [ 59%] 280s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[\u015e\u0167\u0159\u012b\u019e\u0260 {ok}-\u015e\u0167\u0159\u012b\u019e\u0260] PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String{ok}-String] PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String{OK}-String] PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok}-String] PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok} -String] PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_isfuzzy PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_create PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_eq PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_target PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_escapes PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_difficult_escapes PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_note_sanity PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_line_number_default PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_rich_get PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_rich_set PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_translate_but_same PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_untranslated PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_comments PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_copy_target PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_create_blank PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_add PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_remove PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_find PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_translate PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_parse PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_files PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_save PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_markup PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_extensions PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_mimetypes PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_nonascii PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_format_layout PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_crlf PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_active_flag PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_multiline_comments PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_template PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[--False] PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ -Source -True] PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ {ok}-Source-True] PASSED [ 60%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ {ok} -Source-True] PASSED [ 61%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[{ok}-Source-True] PASSED [ 61%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_headers PASSED [ 61%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_not_headers PASSED [ 61%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[0] PASSED [ 61%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[1] PASSED [ 61%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[2] PASSED [ 61%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[3] PASSED [ 61%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_tag_comments PASSED [ 61%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_maxlength PASSED [ 61%] 280s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_line_number PASSED [ 61%] 280s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_isfuzzy PASSED [ 61%] 280s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_create PASSED [ 61%] 280s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_eq PASSED [ 61%] 280s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_target PASSED [ 61%] 280s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_escapes PASSED [ 61%] 280s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_difficult_escapes PASSED [ 61%] 280s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_note_sanity PASSED [ 61%] 280s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_line_number_default PASSED [ 61%] 280s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_rich_get PASSED [ 61%] 280s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_rich_set PASSED [ 61%] 280s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_create_blank PASSED [ 61%] 280s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_add PASSED [ 61%] 280s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_remove PASSED [ 61%] 280s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_find PASSED [ 61%] 280s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_translate PASSED [ 61%] 280s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_parse PASSED [ 61%] 280s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_files PASSED [ 61%] 280s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_save PASSED [ 61%] 280s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_markup PASSED [ 61%] 280s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_nonascii PASSED [ 61%] 280s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_mimetypes PASSED [ 61%] 280s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_extensions XFAIL [ 61%] 280s tests/translate/storage/test_oo.py::test_makekey PASSED [ 61%] 280s tests/translate/storage/test_oo.py::test_escape_help_text PASSED [ 61%] 280s tests/translate/storage/test_oo.py::TestOO::test_simpleentry PASSED [ 61%] 280s tests/translate/storage/test_oo.py::TestOO::test_simpleentry_quickhelptest PASSED [ 61%] 280s tests/translate/storage/test_oo.py::TestOO::test_simpleentry_title PASSED [ 61%] 280s tests/translate/storage/test_oo.py::TestOO::test_blankline PASSED [ 61%] 280s tests/translate/storage/test_oo.py::TestOO::test_fieldlength PASSED [ 62%] 280s tests/translate/storage/test_oo.py::TestOO::test_escapes PASSED [ 62%] 280s tests/translate/storage/test_php.py::test_php_escaping_single_quote PASSED [ 62%] 280s tests/translate/storage/test_php.py::test_php_escaping_double_quote PASSED [ 62%] 280s tests/translate/storage/test_php.py::TestPhpUnit::test_isfuzzy PASSED [ 62%] 280s tests/translate/storage/test_php.py::TestPhpUnit::test_create PASSED [ 62%] 280s tests/translate/storage/test_php.py::TestPhpUnit::test_eq PASSED [ 62%] 280s tests/translate/storage/test_php.py::TestPhpUnit::test_escapes PASSED [ 62%] 280s tests/translate/storage/test_php.py::TestPhpUnit::test_note_sanity PASSED [ 62%] 280s tests/translate/storage/test_php.py::TestPhpUnit::test_line_number_default PASSED [ 62%] 280s tests/translate/storage/test_php.py::TestPhpUnit::test_target PASSED [ 62%] 280s tests/translate/storage/test_php.py::TestPhpUnit::test_rich_get PASSED [ 62%] 280s tests/translate/storage/test_php.py::TestPhpUnit::test_rich_set PASSED [ 62%] 280s tests/translate/storage/test_php.py::TestPhpUnit::test_difficult_escapes PASSED [ 62%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_create_blank PASSED [ 62%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_add PASSED [ 62%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_remove PASSED [ 62%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_find PASSED [ 62%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_parse PASSED [ 62%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_files PASSED [ 62%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_save PASSED [ 62%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_extensions PASSED [ 62%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_mimetypes PASSED [ 62%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_translate PASSED [ 62%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_markup PASSED [ 62%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_nonascii PASSED [ 62%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition PASSED [ 62%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition_source PASSED [ 62%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_spaces_in_name PASSED [ 62%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_comment_definition PASSED [ 62%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_comment_blocks PASSED [ 62%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_comment_output PASSED [ 62%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_comment_add PASSED [ 62%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_multiline PASSED [ 62%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays PASSED [ 62%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_array_no_array_syntax PASSED [ 62%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_spaces PASSED [ 62%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_quotes PASSED [ 62%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_number_as_value PASSED [ 62%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_non_textual PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_define PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_define_with_spaces_before_key PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_after_equal_delimiter PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_after_equal_delimiter_and_before_key PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_no_spaces_after_equal_delimiter PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_no_spaces_after_equaldel_but_before_key PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_entries_with_quotes PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_comments_at_entry_line_end PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_double_slash_comments_before_entries PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_before_end_delimiter PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simpledefinition_spaces_before_end_delimiter PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_no_trailing_comma PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_space_before_comma PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_space_before_array_declaration PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_declared_in_a_single_line PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_no_keys PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_no_keys_assigned_to_array PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_no_keys PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_assignment_in_line_where_multiline_comment_ends PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_using_short_array_syntax PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_space_before_array_declaration PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_unnamed_nested_arrays PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_array_declaration_in_next_line PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_array_with_newline_after_delimiter PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_blank_entries PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_slashstar_in_string PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_heredoc_syntax PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition_after_define PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_quotes PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_concatenation PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_serialize PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_space_before_comma PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_equals_in_id PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_comma_in_string PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_nowdoc PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_plain_concatenation PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_array_keys PASSED [ 63%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_double_var PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_return_array PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_with_spaces PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_with_comments PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_short PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_short_quotes PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestPhpFile::test_addunit PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_isfuzzy PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_create PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_eq PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_escapes PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_difficult_escapes PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_note_sanity PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_line_number_default PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_target PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_rich_get PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_rich_set PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_create_blank PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_remove PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_find PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_parse PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_files PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_save PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_extensions PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_mimetypes PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_translate PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_markup PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_nonascii PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_plurals PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_key_stripping PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_key_stripping_array_syntax PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_key_stripping_numeric_keys PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_roundtrip_short_array PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_roundtrip_array_syntax PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_setid_preserves_structure PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_setid_with_array_syntax PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_addunit_with_setid PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_unit_to_short_array_file PASSED [ 64%] 280s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_unit_to_array_function_file PASSED [ 65%] 280s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_multiple_units_to_short_array PASSED [ 65%] 280s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_multiple_units_to_array_function PASSED [ 65%] 280s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_numeric_keys_no_quotes PASSED [ 65%] 280s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_empty_string_key PASSED [ 65%] 280s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_setid_with_non_string_value PASSED [ 65%] 280s tests/translate/storage/test_po.py::test_roundtrip_quoting PASSED [ 65%] 280s tests/translate/storage/test_po.py::TestPOUnit::test_isfuzzy PASSED [ 65%] 280s tests/translate/storage/test_po.py::TestPOUnit::test_create PASSED [ 65%] 280s tests/translate/storage/test_po.py::TestPOUnit::test_eq PASSED [ 65%] 280s tests/translate/storage/test_po.py::TestPOUnit::test_target PASSED [ 65%] 280s tests/translate/storage/test_po.py::TestPOUnit::test_escapes PASSED [ 65%] 280s tests/translate/storage/test_po.py::TestPOUnit::test_difficult_escapes PASSED [ 65%] 280s tests/translate/storage/test_po.py::TestPOUnit::test_note_sanity PASSED [ 65%] 280s tests/translate/storage/test_po.py::TestPOUnit::test_line_number_default PASSED [ 65%] 280s tests/translate/storage/test_po.py::TestPOUnit::test_rich_get PASSED [ 65%] 280s tests/translate/storage/test_po.py::TestPOUnit::test_rich_set PASSED [ 65%] 280s tests/translate/storage/test_po.py::TestPOUnit::test_istranslatable PASSED [ 65%] 280s tests/translate/storage/test_po.py::TestPOUnit::test_locations PASSED [ 65%] 280s tests/translate/storage/test_po.py::TestPOUnit::test_nongettext_location PASSED [ 65%] 280s tests/translate/storage/test_po.py::TestPOUnit::test_adding_empty_note PASSED [ 65%] 280s tests/translate/storage/test_po.py::TestPOUnit::test_markreview PASSED [ 65%] 280s tests/translate/storage/test_po.py::TestPOUnit::test_errors PASSED [ 65%] 280s tests/translate/storage/test_po.py::TestPOUnit::test_no_plural_settarget PASSED [ 65%] 280s tests/translate/storage/test_po.py::TestPOUnit::test_wrapping_bug PASSED [ 65%] 280s tests/translate/storage/test_po.py::TestPOUnit::test_extract_msgidcomments_from_text PASSED [ 65%] 280s tests/translate/storage/test_po.py::TestPOUnit::test_isheader PASSED [ 65%] 280s tests/translate/storage/test_po.py::TestPOUnit::test_buildfromunit PASSED [ 65%] 280s tests/translate/storage/test_po.py::TestPOFile::test_create_blank PASSED [ 65%] 280s tests/translate/storage/test_po.py::TestPOFile::test_add PASSED [ 65%] 280s tests/translate/storage/test_po.py::TestPOFile::test_remove PASSED [ 65%] 280s tests/translate/storage/test_po.py::TestPOFile::test_find PASSED [ 65%] 280s tests/translate/storage/test_po.py::TestPOFile::test_translate PASSED [ 65%] 280s tests/translate/storage/test_po.py::TestPOFile::test_parse PASSED [ 65%] 280s tests/translate/storage/test_po.py::TestPOFile::test_files PASSED [ 65%] 280s tests/translate/storage/test_po.py::TestPOFile::test_save PASSED [ 65%] 280s tests/translate/storage/test_po.py::TestPOFile::test_markup PASSED [ 65%] 280s tests/translate/storage/test_po.py::TestPOFile::test_nonascii PASSED [ 65%] 280s tests/translate/storage/test_po.py::TestPOFile::test_extensions PASSED [ 65%] 280s tests/translate/storage/test_po.py::TestPOFile::test_mimetypes PASSED [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_context_only PASSED [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_simpleentry PASSED [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_copy PASSED [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_parse_source_string PASSED [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_parse_file PASSED [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_unicode PASSED [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_plurals PASSED [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_plural_unicode PASSED [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_nongettext_location PASSED [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_percent_location PASSED [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_kde_plurals XFAIL [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_empty_lines_notes PASSED [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_fuzzy PASSED [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_untranslated XFAIL [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_merging_automaticcomments PASSED [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_malformed_units PASSED [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_invalid_keyword PASSED [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_malformed_obsolete_units PASSED [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_uniforum_po PASSED [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_obsolete PASSED [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_obsolete_with_prev_msgid PASSED [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_header_escapes PASSED [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete PASSED [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_plural PASSED [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_msgctxt PASSED [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_msgidcomments PASSED [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_multiline_obsolete PASSED [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_merge_duplicates PASSED [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_merge_mixed_sources PASSED [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_parse_context PASSED [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_parse_advanced_context PASSED [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_kde_context PASSED [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_broken_kde_context PASSED [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_id PASSED [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_non_ascii_header_comments PASSED [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_non_ascii_header_comments_2 PASSED [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_final_slash PASSED [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_unfinished_lines PASSED [ 66%] 280s tests/translate/storage/test_po.py::TestPOFile::test_encoding_change PASSED [ 67%] 280s tests/translate/storage/test_po.py::TestPOFile::test_istranslated PASSED [ 67%] 280s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_spaces PASSED [ 67%] 280s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long PASSED [ 67%] 280s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_fit PASSED [ 67%] 280s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_overflow PASSED [ 67%] 280s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_multiline PASSED [ 67%] 280s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_escapes PASSED [ 67%] 280s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_cjk PASSED [ 67%] 280s tests/translate/storage/test_po.py::TestPOFile::test_wrap_emoji PASSED [ 67%] 280s tests/translate/storage/test_po.py::TestPOFile::test_wrap_parenthesis PASSED [ 67%] 280s tests/translate/storage/test_po.py::TestPOFile::test_wrap_escape_line PASSED [ 67%] 280s tests/translate/storage/test_po.py::TestPOFile::test_wrap_parenthesis_long PASSED [ 67%] 280s tests/translate/storage/test_po.py::TestPOFile::test_wrap_gettext PASSED [ 67%] 280s tests/translate/storage/test_po.py::TestPOFile::test_wrap_wide_stop PASSED [ 67%] 280s tests/translate/storage/test_po.py::TestPOFile::test_wrap_escape PASSED [ 67%] 280s tests/translate/storage/test_po.py::TestPOFile::test_msgidcomments PASSED [ 67%] 280s tests/translate/storage/test_po.py::TestPOFile::test_unicode_ids PASSED [ 67%] 280s tests/translate/storage/test_po.py::TestPOFile::test_syntax_error PASSED [ 67%] 280s tests/translate/storage/test_po.py::TestPOFile::test_invalid PASSED [ 67%] 280s tests/translate/storage/test_po.py::TestPOFile::test_c_style_comment_error_reporting PASSED [ 67%] 280s tests/translate/storage/test_po.py::TestPOFile::test_wrapped_msgid PASSED [ 67%] 280s tests/translate/storage/test_po.py::TestPOFile::test_missing_plural PASSED [ 67%] 280s tests/translate/storage/test_po.py::TestPOFile::test_unusual_line_endings PASSED [ 67%] 280s tests/translate/storage/test_po.py::TestPOFile::test_charset_with_space PASSED [ 67%] 280s tests/translate/storage/test_po.py::TestPOFile::test_duplicate_msgid_error PASSED [ 67%] 280s tests/translate/storage/test_pocommon.py::test_roundtrip_quote_plus PASSED [ 67%] 280s tests/translate/storage/test_poheader.py::test_parseheaderstring PASSED [ 67%] 280s tests/translate/storage/test_poheader.py::test_update PASSED [ 67%] 280s tests/translate/storage/test_poheader.py::test_po_dates PASSED [ 67%] 280s tests/translate/storage/test_poheader.py::test_timezones PASSED [ 67%] 280s tests/translate/storage/test_poheader.py::test_header_blank PASSED [ 67%] 280s tests/translate/storage/test_poheader.py::test_plural_equation PASSED [ 67%] 280s tests/translate/storage/test_poheader.py::test_plural_equation_across_lines PASSED [ 67%] 280s tests/translate/storage/test_poheader.py::test_updatecontributor PASSED [ 67%] 280s tests/translate/storage/test_poheader.py::test_updatecontributor_header PASSED [ 67%] 280s tests/translate/storage/test_poheader.py::test_language PASSED [ 67%] 280s tests/translate/storage/test_poheader.py::test_project PASSED [ 67%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_isfuzzy PASSED [ 67%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_create PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_eq PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_target PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_escapes PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_difficult_escapes PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_note_sanity PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_line_number_default PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_rich_get PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_rich_set PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_markreview PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_errors PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_accepted_control_chars PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_unaccepted_control_chars PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_plurals PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_ids PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_create_blank PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_remove PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_find PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_translate PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_files PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_save PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_markup PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_nonascii PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_extensions PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_mimetypes PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_basic PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_namespace PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_rich_source PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_rich_target PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_source PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_target PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_sourcelanguage PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_targetlanguage PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_targetlanguage_multi PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_alttrans PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_fuzzy PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_xml_space PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parsing PASSED [ 68%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_marktranslatable PASSED [ 69%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_entities PASSED [ 69%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_multiple_filenodes PASSED [ 69%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_groups_when_adding_units PASSED [ 69%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_multiple_files_and_groups PASSED [ 69%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_unit_to_existing_group PASSED [ 69%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_unit_to_different_file PASSED [ 69%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_mixed_groups_and_body PASSED [ 69%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_addunit_with_new_false PASSED [ 69%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_namespace_preservation_across_versions PASSED [ 69%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_units_between_different_files PASSED [ 69%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_group_preservation_across_different_namespaces PASSED [ 69%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_cross_namespace_group_and_file_preservation PASSED [ 69%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_indent PASSED [ 69%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_target PASSED [ 69%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve PASSED [ 69%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_closing_tags PASSED [ 69%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_context_groups PASSED [ 69%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_getlocations PASSED [ 69%] 280s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_addlocation PASSED [ 69%] 281s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_huge PASSED [ 69%] 281s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_add PASSED [ 69%] 281s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parse PASSED [ 69%] 281s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parse_plural_alpha_id PASSED [ 69%] 281s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_notes PASSED [ 69%] 281s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_plural PASSED [ 69%] 281s tests/translate/storage/test_properties.py::test_find_delimiter_pos_simple PASSED [ 69%] 281s tests/translate/storage/test_properties.py::test_find_delimiter_pos_multiple PASSED [ 69%] 281s tests/translate/storage/test_properties.py::test_find_delimiter_pos_none PASSED [ 69%] 281s tests/translate/storage/test_properties.py::test_find_delimiter_pos_whitespace PASSED [ 69%] 281s tests/translate/storage/test_properties.py::test_find_delimiter_pos_escapes PASSED [ 69%] 281s tests/translate/storage/test_properties.py::test_find_delimiter_pos_empty_and_whitespace PASSED [ 69%] 281s tests/translate/storage/test_properties.py::test_find_delimiter_pos_tabs PASSED [ 69%] 281s tests/translate/storage/test_properties.py::test_is_line_continuation PASSED [ 69%] 281s tests/translate/storage/test_properties.py::test_key_strip PASSED [ 69%] 281s tests/translate/storage/test_properties.py::test_get_comment_one_line PASSED [ 69%] 281s tests/translate/storage/test_properties.py::test_get_comment_start PASSED [ 69%] 281s tests/translate/storage/test_properties.py::test_get_comment_end PASSED [ 69%] 281s tests/translate/storage/test_properties.py::TestPropUnit::test_isfuzzy PASSED [ 69%] 281s tests/translate/storage/test_properties.py::TestPropUnit::test_create PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestPropUnit::test_eq PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestPropUnit::test_escapes PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestPropUnit::test_difficult_escapes PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestPropUnit::test_note_sanity PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestPropUnit::test_line_number_default PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestPropUnit::test_target PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestPropUnit::test_rich_get PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestPropUnit::test_rich_set PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestGwtProp::test_create_blank PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestGwtProp::test_add PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestGwtProp::test_remove PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestGwtProp::test_find PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestGwtProp::test_parse PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestGwtProp::test_files PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestGwtProp::test_save PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestGwtProp::test_extensions PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestGwtProp::test_mimetypes PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestGwtProp::test_translate PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestGwtProp::test_markup PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestGwtProp::test_nonascii PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestGwtProp::test_quotes PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestGwtProp::test_simpledefinition PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestGwtProp::test_doubledefinition PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestGwtProp::test_doubledefinition_source PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestGwtProp::test_reduce PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestGwtProp::test_increase PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestGwtProp::test_extra_plurals PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestGwtProp::test_non_plurals PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestGwtProp::test_encoding PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestGwtProp::test_other_plurals PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestProp::test_create_blank PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestProp::test_add PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestProp::test_remove PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestProp::test_find PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestProp::test_parse PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestProp::test_files PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestProp::test_save PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestProp::test_extensions PASSED [ 70%] 281s tests/translate/storage/test_properties.py::TestProp::test_mimetypes PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_translate PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_markup PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_nonascii PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_simpledefinition PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_simpledefinition_source PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_controlutf8_source PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_control_source PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_unicode_escaping PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_newlines_startend PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_space PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_whitespace_handling PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_key_value_delimiters_simple PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_tab_delimiter_parsing PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_comments PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_latin1 PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_fullspec_delimiters PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_fullspec_escaped_key PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_fullspec_line_continuation PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_fullspec_key_without_value PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_mac_strings PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_utf_16_save PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_mac_multiline_strings PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_unicode PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_utf8 PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_newlines PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comments PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_multilines_comments PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comments_dropping PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_inline_comments PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_inline_comments_nested PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_inline_comment_with_spaces PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_before_entry PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_between_key_and_equals PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_between_equals_and_value PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_after_value_before_semicolon PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_multiple_inline_comments PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_nested_comment PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_inside_value PASSED [ 71%] 281s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_trailing_whitespace_after_semicolon PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_quotes PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_equals PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_serialization PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_double_backslashes PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestProp::test_override_encoding PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestProp::test_trailing_comments PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestProp::test_utf16_byte_order_mark PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestProp::test_raise_ioerror_if_cannot_detect_encoding PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestProp::test_utf8_byte_order_mark PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestProp::test_utf16_bom_no_warning PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestProp::test_joomla_set_target PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestProp::test_joomla PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestProp::test_joomla_escape PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestProp::test_serialize_missing_delimiter PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestProp::test_serialize_missing_value PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestProp::test_multi_comments PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestProp::test_serialize_note PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestProp::test_serialize_long_note PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestProp::test_trailing_newlines PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestXWiki::test_create_blank PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestXWiki::test_add PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestXWiki::test_remove PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestXWiki::test_find PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestXWiki::test_parse PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestXWiki::test_files PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestXWiki::test_save PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestXWiki::test_extensions PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestXWiki::test_mimetypes PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestXWiki::test_translate PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestXWiki::test_markup PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestXWiki::test_nonascii PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestXWiki::test_simpledefinition PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestXWiki::test_missing_definition PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestXWiki::test_missing_definition_source PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestXWiki::test_definition_with_simple_quote PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestXWiki::test_definition_with_simple_quote_and_argument PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestXWiki::test_header_preserved PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestXWiki::test_blank_line_before_comment_preserved PASSED [ 72%] 281s tests/translate/storage/test_properties.py::TestXWiki::test_deprecated_comments_preserved PASSED [ 73%] 281s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_create_blank PASSED [ 73%] 281s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_add PASSED [ 73%] 281s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_remove PASSED [ 73%] 281s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_find PASSED [ 73%] 281s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_parse PASSED [ 73%] 281s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_files PASSED [ 73%] 281s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_save PASSED [ 73%] 281s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_extensions PASSED [ 73%] 281s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_mimetypes PASSED [ 73%] 281s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_translate PASSED [ 73%] 281s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_markup PASSED [ 73%] 281s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_nonascii PASSED [ 73%] 281s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_simpledefinition PASSED [ 73%] 281s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_missing_definition PASSED [ 73%] 281s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_missing_definition_source PASSED [ 73%] 281s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_simple_quote PASSED [ 73%] 281s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_simple_quote_and_argument PASSED [ 73%] 281s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_encoded_html PASSED [ 73%] 281s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_cleaning_attributes PASSED [ 73%] 281s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_translate_source PASSED [ 73%] 281s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_create_blank PASSED [ 73%] 281s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_add PASSED [ 73%] 281s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_find PASSED [ 73%] 281s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_extensions PASSED [ 73%] 281s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_mimetypes PASSED [ 73%] 281s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_translate PASSED [ 73%] 281s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_markup PASSED [ 73%] 281s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_nonascii PASSED [ 73%] 281s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_simpledefinition PASSED [ 73%] 281s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_parse PASSED [ 73%] 281s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_files PASSED [ 73%] 281s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_save PASSED [ 73%] 281s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_cleaning_attributes PASSED [ 73%] 281s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_remove XFAIL [ 73%] 281s tests/translate/storage/test_pypo.py::TestHelpers::test_unescape PASSED [ 73%] 281s tests/translate/storage/test_pypo.py::TestHelpers::test_quoteforpo PASSED [ 73%] 281s tests/translate/storage/test_pypo.py::TestHelpers::test_quoteforpo_escaped_quotes PASSED [ 73%] 281s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_isfuzzy PASSED [ 73%] 281s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_create PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_eq PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_target PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_escapes PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_difficult_escapes PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_note_sanity PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_line_number_default PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_rich_get PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_rich_set PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_istranslatable PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_locations PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_nongettext_location PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_adding_empty_note PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_markreview PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_errors PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_no_plural_settarget PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrapping_bug PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_extract_msgidcomments_from_text PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_isheader PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_buildfromunit PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_plurals PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_plural_reduction PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes_withcomments PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes_with_blank_lines PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_firstlines PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_newlines PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_max_line_length PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_slash PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_spacing_max_line PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_create_blank PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_add PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_remove PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_find PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_translate PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_files PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_save PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_markup PASSED [ 74%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_nonascii PASSED [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_extensions PASSED [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mimetypes PASSED [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_context_only PASSED [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_simpleentry PASSED [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_copy PASSED [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_source_string PASSED [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_file PASSED [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode PASSED [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_plurals PASSED [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_plural_unicode PASSED [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_nongettext_location PASSED [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_percent_location PASSED [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_plurals XFAIL [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_empty_lines_notes PASSED [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_fuzzy PASSED [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_untranslated XFAIL [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merging_automaticcomments PASSED [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_malformed_units PASSED [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_invalid_keyword PASSED [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_malformed_obsolete_units PASSED [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_uniforum_po PASSED [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_obsolete PASSED [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_obsolete_with_prev_msgid PASSED [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_header_escapes PASSED [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete PASSED [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_plural PASSED [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_msgctxt PASSED [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_msgidcomments PASSED [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_multiline_obsolete PASSED [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_duplicates PASSED [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_mixed_sources PASSED [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_context PASSED [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_advanced_context PASSED [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_context PASSED [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_broken_kde_context PASSED [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_id PASSED [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_non_ascii_header_comments PASSED [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_non_ascii_header_comments_2 PASSED [ 75%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_final_slash PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unfinished_lines PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_encoding_change PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_istranslated PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_spaces PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_fit PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_overflow PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_multiline PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_escapes PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_cjk PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_emoji PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_parenthesis PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_escape_line PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_parenthesis_long PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_gettext PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_wide_stop PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_escape PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_msgidcomments PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode_ids PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_syntax_error PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_c_style_comment_error_reporting PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapped_msgid PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_missing_plural PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unusual_line_endings PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_charset_with_space PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_duplicate_msgid_error PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_combine_msgidcomments PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_duplicates_msgctxt PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_blanks PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_output_str_unicode PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_posections PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_typecomments PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_future_flags PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unassociated_comments PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode_header PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_prevmsgid_parse PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_newlines PASSED [ 76%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unix_newlines PASSED [ 77%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines PASSED [ 77%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mac_newlines PASSED [ 77%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines PASSED [ 77%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_header PASSED [ 77%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_comment PASSED [ 77%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_bom PASSED [ 77%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_long_msgidcomments PASSED [ 77%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_incomplete PASSED [ 77%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_invalid PASSED [ 77%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines_write PASSED [ 77%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_typecomment XFAIL [ 77%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines_typecomment PASSED [ 77%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_custom PASSED [ 77%] 281s tests/translate/storage/test_pypo.py::TestPYPOFile::test_line_number PASSED [ 77%] 281s tests/translate/storage/test_qm.py::TestQtUnit::test_isfuzzy PASSED [ 77%] 281s tests/translate/storage/test_qm.py::TestQtUnit::test_create PASSED [ 77%] 281s tests/translate/storage/test_qm.py::TestQtUnit::test_eq PASSED [ 77%] 281s tests/translate/storage/test_qm.py::TestQtUnit::test_target PASSED [ 77%] 281s tests/translate/storage/test_qm.py::TestQtUnit::test_escapes PASSED [ 77%] 281s tests/translate/storage/test_qm.py::TestQtUnit::test_difficult_escapes PASSED [ 77%] 281s tests/translate/storage/test_qm.py::TestQtUnit::test_note_sanity PASSED [ 77%] 281s tests/translate/storage/test_qm.py::TestQtUnit::test_line_number_default PASSED [ 77%] 281s tests/translate/storage/test_qm.py::TestQtUnit::test_rich_get PASSED [ 77%] 281s tests/translate/storage/test_qm.py::TestQtUnit::test_rich_set PASSED [ 77%] 281s tests/translate/storage/test_qm.py::TestQtFile::test_create_blank PASSED [ 77%] 281s tests/translate/storage/test_qm.py::TestQtFile::test_find PASSED [ 77%] 281s tests/translate/storage/test_qm.py::TestQtFile::test_translate PASSED [ 77%] 281s tests/translate/storage/test_qm.py::TestQtFile::test_markup PASSED [ 77%] 281s tests/translate/storage/test_qm.py::TestQtFile::test_extensions PASSED [ 77%] 281s tests/translate/storage/test_qm.py::TestQtFile::test_mimetypes PASSED [ 77%] 281s tests/translate/storage/test_qm.py::TestQtFile::test_parse PASSED [ 77%] 281s tests/translate/storage/test_qm.py::TestQtFile::test_save PASSED [ 77%] 281s tests/translate/storage/test_qm.py::TestQtFile::test_files PASSED [ 77%] 281s tests/translate/storage/test_qm.py::TestQtFile::test_nonascii PASSED [ 77%] 281s tests/translate/storage/test_qm.py::TestQtFile::test_add PASSED [ 77%] 281s tests/translate/storage/test_qm.py::TestQtFile::test_remove PASSED [ 77%] 281s tests/translate/storage/test_qph.py::TestQphUnit::test_isfuzzy PASSED [ 77%] 281s tests/translate/storage/test_qph.py::TestQphUnit::test_create PASSED [ 77%] 281s tests/translate/storage/test_qph.py::TestQphUnit::test_eq PASSED [ 78%] 281s tests/translate/storage/test_qph.py::TestQphUnit::test_target PASSED [ 78%] 281s tests/translate/storage/test_qph.py::TestQphUnit::test_escapes PASSED [ 78%] 281s tests/translate/storage/test_qph.py::TestQphUnit::test_difficult_escapes PASSED [ 78%] 281s tests/translate/storage/test_qph.py::TestQphUnit::test_note_sanity PASSED [ 78%] 281s tests/translate/storage/test_qph.py::TestQphUnit::test_line_number_default PASSED [ 78%] 281s tests/translate/storage/test_qph.py::TestQphUnit::test_rich_get PASSED [ 78%] 281s tests/translate/storage/test_qph.py::TestQphUnit::test_rich_set PASSED [ 78%] 281s tests/translate/storage/test_qph.py::TestQphFile::test_create_blank PASSED [ 78%] 281s tests/translate/storage/test_qph.py::TestQphFile::test_add PASSED [ 78%] 281s tests/translate/storage/test_qph.py::TestQphFile::test_remove PASSED [ 78%] 281s tests/translate/storage/test_qph.py::TestQphFile::test_find PASSED [ 78%] 281s tests/translate/storage/test_qph.py::TestQphFile::test_translate PASSED [ 78%] 281s tests/translate/storage/test_qph.py::TestQphFile::test_parse PASSED [ 78%] 281s tests/translate/storage/test_qph.py::TestQphFile::test_files PASSED [ 78%] 281s tests/translate/storage/test_qph.py::TestQphFile::test_save PASSED [ 78%] 281s tests/translate/storage/test_qph.py::TestQphFile::test_markup PASSED [ 78%] 281s tests/translate/storage/test_qph.py::TestQphFile::test_nonascii PASSED [ 78%] 281s tests/translate/storage/test_qph.py::TestQphFile::test_extensions PASSED [ 78%] 281s tests/translate/storage/test_qph.py::TestQphFile::test_mimetypes PASSED [ 78%] 281s tests/translate/storage/test_qph.py::TestQphFile::test_basic PASSED [ 78%] 281s tests/translate/storage/test_qph.py::TestQphFile::test_source PASSED [ 78%] 281s tests/translate/storage/test_qph.py::TestQphFile::test_target PASSED [ 78%] 281s tests/translate/storage/test_qph.py::TestQphFile::test_language PASSED [ 78%] 281s tests/translate/storage/test_rc.py::test_escaping PASSED [ 78%] 281s tests/translate/storage/test_rc.py::TestRcFile::test_parse_only_comments PASSED [ 78%] 281s tests/translate/storage/test_rc.py::TestRcFile::test_parse_only_textinclude PASSED [ 78%] 281s tests/translate/storage/test_rc.py::TestRcFile::test_parse_dialog PASSED [ 78%] 281s tests/translate/storage/test_rc.py::TestRcFile::test_parse_stringtable PASSED [ 78%] 281s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_lf PASSED [ 78%] 281s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_crlf PASSED [ 78%] 281s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_cr PASSED [ 78%] 281s tests/translate/storage/test_rc.py::TestRcFile::test_parse_no_language PASSED [ 78%] 281s tests/translate/storage/test_rc.py::TestRcFile::test_textinclude PASSED [ 78%] 281s tests/translate/storage/test_rc.py::TestRcFile::test_multiline PASSED [ 78%] 281s tests/translate/storage/test_rc.py::TestRcFile::test_str PASSED [ 78%] 281s tests/translate/storage/test_rc.py::TestRcFile::test_empty PASSED [ 78%] 281s tests/translate/storage/test_rc.py::TestRcFile::test_utf_8 PASSED [ 78%] 281s tests/translate/storage/test_rc.py::TestRcFile::test_utf_16 PASSED [ 78%] 281s tests/translate/storage/test_rc.py::TestRcFile::test_comment PASSED [ 79%] 281s tests/translate/storage/test_rc.py::TestRcFile::test_stringtables PASSED [ 79%] 281s tests/translate/storage/test_rc.py::TestRcFile::test_textinclude_appstudio PASSED [ 79%] 281s tests/translate/storage/test_rc.py::TestRcFile::test_id_whitespace PASSED [ 79%] 281s tests/translate/storage/test_rc.py::TestRcFile::test_menu_comment PASSED [ 79%] 281s tests/translate/storage/test_rc.py::TestRcFile::test_decompiled PASSED [ 79%] 281s tests/translate/storage/test_rc.py::TestRcFile::test_quotes PASSED [ 79%] 281s tests/translate/storage/test_rc.py::TestRcFile::test_utf16_pragma_code_page PASSED [ 79%] 281s tests/translate/storage/test_rc.py::TestRcFile::test_utf8_pragma_code_page PASSED [ 79%] 281s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_isfuzzy PASSED [ 79%] 281s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_create PASSED [ 79%] 281s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_eq PASSED [ 79%] 281s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_escapes PASSED [ 79%] 281s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_difficult_escapes PASSED [ 79%] 281s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_note_sanity PASSED [ 79%] 281s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_line_number_default PASSED [ 79%] 281s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_target PASSED [ 79%] 281s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_rich_get PASSED [ 79%] 281s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_rich_set PASSED [ 79%] 281s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_create_blank PASSED [ 79%] 281s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_add PASSED [ 79%] 281s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_remove PASSED [ 79%] 281s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_find PASSED [ 79%] 281s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_parse PASSED [ 79%] 281s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_files PASSED [ 79%] 281s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_save PASSED [ 79%] 281s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_extensions PASSED [ 79%] 281s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_mimetypes PASSED [ 79%] 281s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_translate PASSED [ 79%] 281s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_markup PASSED [ 79%] 281s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_nonascii PASSED [ 79%] 281s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_roundtrip PASSED [ 79%] 281s tests/translate/storage/test_resx.py::TestRESXUnit::test_isfuzzy PASSED [ 79%] 281s tests/translate/storage/test_resx.py::TestRESXUnit::test_create PASSED [ 79%] 281s tests/translate/storage/test_resx.py::TestRESXUnit::test_eq PASSED [ 79%] 281s tests/translate/storage/test_resx.py::TestRESXUnit::test_escapes PASSED [ 79%] 281s tests/translate/storage/test_resx.py::TestRESXUnit::test_difficult_escapes PASSED [ 79%] 281s tests/translate/storage/test_resx.py::TestRESXUnit::test_note_sanity PASSED [ 79%] 281s tests/translate/storage/test_resx.py::TestRESXUnit::test_line_number_default PASSED [ 79%] 281s tests/translate/storage/test_resx.py::TestRESXUnit::test_target PASSED [ 80%] 281s tests/translate/storage/test_resx.py::TestRESXUnit::test_rich_get PASSED [ 80%] 281s tests/translate/storage/test_resx.py::TestRESXUnit::test_rich_set PASSED [ 80%] 281s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_isfuzzy PASSED [ 80%] 281s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_create PASSED [ 80%] 281s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_eq PASSED [ 80%] 281s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_escapes PASSED [ 80%] 281s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_difficult_escapes PASSED [ 80%] 281s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_note_sanity PASSED [ 80%] 281s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_line_number_default PASSED [ 80%] 281s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_target PASSED [ 80%] 281s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_rich_get PASSED [ 80%] 281s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_rich_set PASSED [ 80%] 281s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_newunit PASSED [ 80%] 281s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_newunit_comment PASSED [ 80%] 281s tests/translate/storage/test_resx.py::TestRESXfile::test_create_blank PASSED [ 80%] 281s tests/translate/storage/test_resx.py::TestRESXfile::test_add PASSED [ 80%] 281s tests/translate/storage/test_resx.py::TestRESXfile::test_remove PASSED [ 80%] 281s tests/translate/storage/test_resx.py::TestRESXfile::test_find PASSED [ 80%] 281s tests/translate/storage/test_resx.py::TestRESXfile::test_parse PASSED [ 80%] 281s tests/translate/storage/test_resx.py::TestRESXfile::test_files PASSED [ 80%] 281s tests/translate/storage/test_resx.py::TestRESXfile::test_save PASSED [ 80%] 281s tests/translate/storage/test_resx.py::TestRESXfile::test_extensions PASSED [ 80%] 281s tests/translate/storage/test_resx.py::TestRESXfile::test_mimetypes PASSED [ 80%] 281s tests/translate/storage/test_resx.py::TestRESXfile::test_translate PASSED [ 80%] 281s tests/translate/storage/test_resx.py::TestRESXfile::test_markup PASSED [ 80%] 281s tests/translate/storage/test_resx.py::TestRESXfile::test_nonascii PASSED [ 80%] 281s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_isfuzzy PASSED [ 80%] 281s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_create PASSED [ 80%] 281s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_eq PASSED [ 80%] 281s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_escapes PASSED [ 80%] 281s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_difficult_escapes PASSED [ 80%] 281s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_note_sanity PASSED [ 80%] 281s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_line_number_default PASSED [ 80%] 281s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_target PASSED [ 80%] 281s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_rich_get PASSED [ 80%] 281s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_rich_set PASSED [ 80%] 281s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_source PASSED [ 80%] 281s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_eq_formatvaluetype PASSED [ 80%] 281s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_innerkey PASSED [ 81%] 281s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_create_blank PASSED [ 81%] 281s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_add PASSED [ 81%] 281s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_remove PASSED [ 81%] 281s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_find PASSED [ 81%] 281s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_parse PASSED [ 81%] 281s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_files PASSED [ 81%] 281s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_save PASSED [ 81%] 281s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_extensions PASSED [ 81%] 281s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_mimetypes PASSED [ 81%] 281s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_translate PASSED [ 81%] 281s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_markup PASSED [ 81%] 281s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_nonascii PASSED [ 81%] 281s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_serialize PASSED [ 81%] 281s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_default_handlings PASSED [ 81%] 281s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_filename PASSED [ 81%] 281s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_base_filename PASSED [ 81%] 281s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_filename_default_language PASSED [ 81%] 281s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_plural_zero_always_set PASSED [ 81%] 281s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_add_unit PASSED [ 81%] 281s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_create_blank PASSED [ 81%] 281s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_add PASSED [ 81%] 281s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_remove PASSED [ 81%] 281s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_find PASSED [ 81%] 281s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_parse PASSED [ 81%] 281s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_files PASSED [ 81%] 281s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_save PASSED [ 81%] 281s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_extensions PASSED [ 81%] 281s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_mimetypes PASSED [ 81%] 281s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_translate PASSED [ 81%] 281s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_markup PASSED [ 81%] 281s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_nonascii PASSED [ 81%] 281s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_ordering PASSED [ 81%] 281s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_create_blank PASSED [ 81%] 281s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_add PASSED [ 81%] 281s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_remove PASSED [ 81%] 281s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_find PASSED [ 81%] 281s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_parse PASSED [ 81%] 281s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_files PASSED [ 81%] 281s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_save PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_extensions PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_mimetypes PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_translate PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_markup PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_nonascii PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_ordering PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_note_sanity XFAIL [ 82%] 281s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_create_blank PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_add PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_remove PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_find PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_parse PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_files PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_save PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_extensions PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_mimetypes PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_translate PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_markup PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_nonascii PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_ordering PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_create_blank PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_add PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_remove PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_find PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_parse PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_files PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_save PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_extensions PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_mimetypes PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_translate PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_markup PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_nonascii PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_ordering PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_style_preservation PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_create_blank PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_add PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_remove PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_find PASSED [ 82%] 281s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_parse PASSED [ 83%] 281s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_files PASSED [ 83%] 281s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_save PASSED [ 83%] 281s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_extensions PASSED [ 83%] 281s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_mimetypes PASSED [ 83%] 281s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_translate PASSED [ 83%] 281s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_markup PASSED [ 83%] 281s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_nonascii PASSED [ 83%] 281s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_ordering PASSED [ 83%] 281s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_style_preservation PASSED [ 83%] 281s tests/translate/storage/test_tbx.py::TestTBXUnit::test_isfuzzy PASSED [ 83%] 281s tests/translate/storage/test_tbx.py::TestTBXUnit::test_create PASSED [ 83%] 281s tests/translate/storage/test_tbx.py::TestTBXUnit::test_eq PASSED [ 83%] 281s tests/translate/storage/test_tbx.py::TestTBXUnit::test_target PASSED [ 83%] 281s tests/translate/storage/test_tbx.py::TestTBXUnit::test_escapes PASSED [ 83%] 281s tests/translate/storage/test_tbx.py::TestTBXUnit::test_difficult_escapes PASSED [ 83%] 281s tests/translate/storage/test_tbx.py::TestTBXUnit::test_note_sanity PASSED [ 83%] 281s tests/translate/storage/test_tbx.py::TestTBXUnit::test_line_number_default PASSED [ 83%] 281s tests/translate/storage/test_tbx.py::TestTBXUnit::test_rich_get PASSED [ 83%] 281s tests/translate/storage/test_tbx.py::TestTBXUnit::test_rich_set PASSED [ 83%] 281s tests/translate/storage/test_tbx.py::TestTBXfile::test_create_blank PASSED [ 83%] 281s tests/translate/storage/test_tbx.py::TestTBXfile::test_add PASSED [ 83%] 281s tests/translate/storage/test_tbx.py::TestTBXfile::test_remove PASSED [ 83%] 281s tests/translate/storage/test_tbx.py::TestTBXfile::test_find PASSED [ 83%] 281s tests/translate/storage/test_tbx.py::TestTBXfile::test_translate PASSED [ 83%] 281s tests/translate/storage/test_tbx.py::TestTBXfile::test_parse PASSED [ 83%] 281s tests/translate/storage/test_tbx.py::TestTBXfile::test_files PASSED [ 83%] 281s tests/translate/storage/test_tbx.py::TestTBXfile::test_save PASSED [ 83%] 281s tests/translate/storage/test_tbx.py::TestTBXfile::test_markup PASSED [ 83%] 281s tests/translate/storage/test_tbx.py::TestTBXfile::test_nonascii PASSED [ 83%] 281s tests/translate/storage/test_tbx.py::TestTBXfile::test_extensions PASSED [ 83%] 281s tests/translate/storage/test_tbx.py::TestTBXfile::test_mimetypes PASSED [ 83%] 281s tests/translate/storage/test_tbx.py::TestTBXfile::test_basic PASSED [ 83%] 281s tests/translate/storage/test_tbx.py::TestTBXfile::test_source PASSED [ 83%] 281s tests/translate/storage/test_tbx.py::TestTBXfile::test_target PASSED [ 83%] 281s tests/translate/storage/test_tbx.py::TestTBXfile::test_setid PASSED [ 83%] 281s tests/translate/storage/test_tbx.py::TestTBXfile::test_indent PASSED [ 83%] 281s tests/translate/storage/test_tbx.py::TestTBXfile::test_descrip PASSED [ 83%] 281s tests/translate/storage/test_tbx.py::TestTBXfile::test_note_from PASSED [ 83%] 281s tests/translate/storage/test_tbx.py::TestTBXfile::test_administrative_status_and_translation_needed PASSED [ 84%] 281s tests/translate/storage/test_tiki.py::TestTikiUnit::test_locations PASSED [ 84%] 281s tests/translate/storage/test_tiki.py::TestTikiUnit::test_to_unicode PASSED [ 84%] 281s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_simple PASSED [ 84%] 281s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_encode PASSED [ 84%] 281s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_locations PASSED [ 84%] 281s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_ignore_extras PASSED [ 84%] 281s tests/translate/storage/test_tmx.py::TestTMXUnit::test_isfuzzy PASSED [ 84%] 281s tests/translate/storage/test_tmx.py::TestTMXUnit::test_create PASSED [ 84%] 281s tests/translate/storage/test_tmx.py::TestTMXUnit::test_eq PASSED [ 84%] 281s tests/translate/storage/test_tmx.py::TestTMXUnit::test_target PASSED [ 84%] 281s tests/translate/storage/test_tmx.py::TestTMXUnit::test_escapes PASSED [ 84%] 281s tests/translate/storage/test_tmx.py::TestTMXUnit::test_difficult_escapes PASSED [ 84%] 281s tests/translate/storage/test_tmx.py::TestTMXUnit::test_note_sanity PASSED [ 84%] 281s tests/translate/storage/test_tmx.py::TestTMXUnit::test_line_number_default PASSED [ 84%] 281s tests/translate/storage/test_tmx.py::TestTMXUnit::test_rich_get PASSED [ 84%] 281s tests/translate/storage/test_tmx.py::TestTMXUnit::test_rich_set PASSED [ 84%] 281s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_isfuzzy PASSED [ 84%] 281s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_create PASSED [ 84%] 281s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_eq PASSED [ 84%] 281s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_target PASSED [ 84%] 281s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_escapes PASSED [ 84%] 281s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_difficult_escapes PASSED [ 84%] 281s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_note_sanity PASSED [ 84%] 281s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_line_number_default PASSED [ 84%] 281s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_rich_get PASSED [ 84%] 281s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_rich_set PASSED [ 84%] 281s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_context PASSED [ 84%] 281s tests/translate/storage/test_tmx.py::TestTMXfile::test_create_blank PASSED [ 84%] 281s tests/translate/storage/test_tmx.py::TestTMXfile::test_add PASSED [ 84%] 281s tests/translate/storage/test_tmx.py::TestTMXfile::test_remove PASSED [ 84%] 281s tests/translate/storage/test_tmx.py::TestTMXfile::test_find PASSED [ 84%] 281s tests/translate/storage/test_tmx.py::TestTMXfile::test_parse PASSED [ 84%] 281s tests/translate/storage/test_tmx.py::TestTMXfile::test_files PASSED [ 84%] 281s tests/translate/storage/test_tmx.py::TestTMXfile::test_save PASSED [ 84%] 281s tests/translate/storage/test_tmx.py::TestTMXfile::test_markup PASSED [ 84%] 281s tests/translate/storage/test_tmx.py::TestTMXfile::test_nonascii PASSED [ 84%] 281s tests/translate/storage/test_tmx.py::TestTMXfile::test_extensions PASSED [ 84%] 281s tests/translate/storage/test_tmx.py::TestTMXfile::test_mimetypes PASSED [ 84%] 281s tests/translate/storage/test_tmx.py::TestTMXfile::test_translate PASSED [ 85%] 281s tests/translate/storage/test_tmx.py::TestTMXfile::test_addtranslation PASSED [ 85%] 281s tests/translate/storage/test_tmx.py::TestTMXfile::test_withcomment PASSED [ 85%] 281s tests/translate/storage/test_tmx.py::TestTMXfile::test_withnewlines PASSED [ 85%] 281s tests/translate/storage/test_tmx.py::TestTMXfile::test_xmlentities PASSED [ 85%] 281s tests/translate/storage/test_tmx.py::TestTMXfile::test_controls_cleaning PASSED [ 85%] 281s tests/translate/storage/test_tmx.py::TestTMXfile::test_context PASSED [ 85%] 281s tests/translate/storage/test_tmx.py::TestTMXfile::test_note_order PASSED [ 85%] 281s tests/translate/storage/test_tmx.py::TestTMXfile::test_prop_and_note_order PASSED [ 85%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_isfuzzy PASSED [ 85%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_create PASSED [ 85%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_eq PASSED [ 85%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_escapes PASSED [ 85%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_difficult_escapes PASSED [ 85%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_note_sanity PASSED [ 85%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_line_number_default PASSED [ 85%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_target PASSED [ 85%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_rich_get PASSED [ 85%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_rich_set PASSED [ 85%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_getlocations PASSED [ 85%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_create_blank PASSED [ 85%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_add PASSED [ 85%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_find PASSED [ 85%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_parse PASSED [ 85%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_files PASSED [ 85%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_save PASSED [ 85%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_extensions PASSED [ 85%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_mimetypes PASSED [ 85%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_translate PASSED [ 85%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_markup PASSED [ 85%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_nonascii PASSED [ 85%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_serialize PASSED [ 85%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_empty PASSED [ 85%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_edit PASSED [ 85%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_edit_unicode PASSED [ 85%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_parse_unicode_list PASSED [ 85%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_ordering PASSED [ 85%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_nested PASSED [ 85%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_multiline PASSED [ 85%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_boolean PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_integer PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_no_quote_strings PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_double_quote_strings PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_single_quote_strings PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_escaped_double_quotes PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_newlines PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_list PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_inline_table PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_key_nesting PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_add_to_empty PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_dict_in_list PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_remove PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_special PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_extraction_simple PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_extraction_multiline PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_no_comment_backwards_compat PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_simple PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_multiline PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_nested PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_with_modification PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_literal_string PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_multiline_basic_string PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_multiline_literal_string PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_create_blank PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_add PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_remove PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_find PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_parse PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_files PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_save PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_extensions PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_mimetypes PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_translate PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_markup PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_nonascii PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_simple_plural PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_plural_with_other_keys PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_full_plural_forms PASSED [ 86%] 281s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_roundtrip_plural PASSED [ 87%] 281s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_mixed_content PASSED [ 87%] 281s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_letsencrypt_style PASSED [ 87%] 281s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_comment_preservation_goi18n PASSED [ 87%] 281s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_comment_preservation_goi18n_plural PASSED [ 87%] 281s tests/translate/storage/test_trados.py::test_unescape PASSED [ 87%] 281s tests/translate/storage/test_trados.py::test_escape PASSED [ 87%] 281s tests/translate/storage/test_ts.py::TestTS::test_construct PASSED [ 87%] 281s tests/translate/storage/test_ts2.py::TestTSUnit::test_isfuzzy PASSED [ 87%] 281s tests/translate/storage/test_ts2.py::TestTSUnit::test_create PASSED [ 87%] 281s tests/translate/storage/test_ts2.py::TestTSUnit::test_eq PASSED [ 87%] 281s tests/translate/storage/test_ts2.py::TestTSUnit::test_target PASSED [ 87%] 281s tests/translate/storage/test_ts2.py::TestTSUnit::test_escapes PASSED [ 87%] 281s tests/translate/storage/test_ts2.py::TestTSUnit::test_difficult_escapes PASSED [ 87%] 281s tests/translate/storage/test_ts2.py::TestTSUnit::test_note_sanity PASSED [ 87%] 281s tests/translate/storage/test_ts2.py::TestTSUnit::test_line_number_default PASSED [ 87%] 281s tests/translate/storage/test_ts2.py::TestTSUnit::test_rich_get PASSED [ 87%] 281s tests/translate/storage/test_ts2.py::TestTSUnit::test_rich_set PASSED [ 87%] 281s tests/translate/storage/test_ts2.py::TestTSfile::test_create_blank PASSED [ 87%] 281s tests/translate/storage/test_ts2.py::TestTSfile::test_add PASSED [ 87%] 281s tests/translate/storage/test_ts2.py::TestTSfile::test_remove PASSED [ 87%] 281s tests/translate/storage/test_ts2.py::TestTSfile::test_find PASSED [ 87%] 281s tests/translate/storage/test_ts2.py::TestTSfile::test_translate PASSED [ 87%] 281s tests/translate/storage/test_ts2.py::TestTSfile::test_parse PASSED [ 87%] 281s tests/translate/storage/test_ts2.py::TestTSfile::test_files PASSED [ 87%] 281s tests/translate/storage/test_ts2.py::TestTSfile::test_save PASSED [ 87%] 281s tests/translate/storage/test_ts2.py::TestTSfile::test_markup PASSED [ 87%] 281s tests/translate/storage/test_ts2.py::TestTSfile::test_nonascii PASSED [ 87%] 281s tests/translate/storage/test_ts2.py::TestTSfile::test_extensions PASSED [ 87%] 281s tests/translate/storage/test_ts2.py::TestTSfile::test_mimetypes PASSED [ 87%] 281s tests/translate/storage/test_ts2.py::TestTSfile::test_basic PASSED [ 87%] 281s tests/translate/storage/test_ts2.py::TestTSfile::test_source PASSED [ 87%] 281s tests/translate/storage/test_ts2.py::TestTSfile::test_target PASSED [ 87%] 281s tests/translate/storage/test_ts2.py::TestTSfile::test_plurals PASSED [ 87%] 281s tests/translate/storage/test_ts2.py::TestTSfile::test_nplural PASSED [ 87%] 281s tests/translate/storage/test_ts2.py::TestTSfile::test_language PASSED [ 87%] 281s tests/translate/storage/test_ts2.py::TestTSfile::test_edit PASSED [ 87%] 281s tests/translate/storage/test_ts2.py::TestTSfile::test_obsolete PASSED [ 87%] 281s tests/translate/storage/test_ts2.py::TestTSfile::test_locations PASSED [ 87%] 281s tests/translate/storage/test_ts2.py::TestTSfile::test_merge_with_fuzzies PASSED [ 88%] 281s tests/translate/storage/test_ts2.py::TestTSfile::test_getid PASSED [ 88%] 281s tests/translate/storage/test_ts2.py::TestTSfile::test_backnforth PASSED [ 88%] 281s tests/translate/storage/test_ts2.py::TestTSfile::test_context PASSED [ 88%] 281s tests/translate/storage/test_ts2.py::TestTSfile::test_roundtrip_context PASSED [ 88%] 281s tests/translate/storage/test_ts2.py::TestTSfile::test_edit_missing_translation PASSED [ 88%] 281s tests/translate/storage/test_ts2.py::TestTSfile::test_missing_source PASSED [ 88%] 281s tests/translate/storage/test_txt.py::TestTxtUnit::test_isfuzzy PASSED [ 88%] 281s tests/translate/storage/test_txt.py::TestTxtUnit::test_create PASSED [ 88%] 281s tests/translate/storage/test_txt.py::TestTxtUnit::test_eq PASSED [ 88%] 281s tests/translate/storage/test_txt.py::TestTxtUnit::test_escapes PASSED [ 88%] 281s tests/translate/storage/test_txt.py::TestTxtUnit::test_difficult_escapes PASSED [ 88%] 281s tests/translate/storage/test_txt.py::TestTxtUnit::test_note_sanity PASSED [ 88%] 281s tests/translate/storage/test_txt.py::TestTxtUnit::test_line_number_default PASSED [ 88%] 281s tests/translate/storage/test_txt.py::TestTxtUnit::test_target PASSED [ 88%] 281s tests/translate/storage/test_txt.py::TestTxtUnit::test_rich_get PASSED [ 88%] 281s tests/translate/storage/test_txt.py::TestTxtUnit::test_rich_set PASSED [ 88%] 281s tests/translate/storage/test_txt.py::TestTxtFile::test_create_blank PASSED [ 88%] 281s tests/translate/storage/test_txt.py::TestTxtFile::test_add PASSED [ 88%] 281s tests/translate/storage/test_txt.py::TestTxtFile::test_remove PASSED [ 88%] 281s tests/translate/storage/test_txt.py::TestTxtFile::test_find PASSED [ 88%] 281s tests/translate/storage/test_txt.py::TestTxtFile::test_parse PASSED [ 88%] 281s tests/translate/storage/test_txt.py::TestTxtFile::test_files PASSED [ 88%] 281s tests/translate/storage/test_txt.py::TestTxtFile::test_save PASSED [ 88%] 281s tests/translate/storage/test_txt.py::TestTxtFile::test_extensions PASSED [ 88%] 281s tests/translate/storage/test_txt.py::TestTxtFile::test_mimetypes PASSED [ 88%] 281s tests/translate/storage/test_txt.py::TestTxtFile::test_translate PASSED [ 88%] 281s tests/translate/storage/test_txt.py::TestTxtFile::test_markup PASSED [ 88%] 281s tests/translate/storage/test_txt.py::TestTxtFile::test_nonascii PASSED [ 88%] 281s tests/translate/storage/test_txt.py::TestTxtFile::test_simpleblock PASSED [ 88%] 281s tests/translate/storage/test_txt.py::TestTxtFile::test_multipleblocks PASSED [ 88%] 281s tests/translate/storage/test_txt.py::TestTxtFile::test_no_segmentation PASSED [ 88%] 281s tests/translate/storage/test_utx.py::TestUtxUnit::test_isfuzzy PASSED [ 88%] 281s tests/translate/storage/test_utx.py::TestUtxUnit::test_create PASSED [ 88%] 281s tests/translate/storage/test_utx.py::TestUtxUnit::test_eq PASSED [ 88%] 281s tests/translate/storage/test_utx.py::TestUtxUnit::test_target PASSED [ 88%] 281s tests/translate/storage/test_utx.py::TestUtxUnit::test_escapes PASSED [ 88%] 281s tests/translate/storage/test_utx.py::TestUtxUnit::test_difficult_escapes PASSED [ 88%] 281s tests/translate/storage/test_utx.py::TestUtxUnit::test_note_sanity PASSED [ 88%] 281s tests/translate/storage/test_utx.py::TestUtxUnit::test_line_number_default PASSED [ 89%] 281s tests/translate/storage/test_utx.py::TestUtxUnit::test_rich_get PASSED [ 89%] 281s tests/translate/storage/test_utx.py::TestUtxUnit::test_rich_set PASSED [ 89%] 281s tests/translate/storage/test_utx.py::TestUtxFile::test_create_blank PASSED [ 89%] 281s tests/translate/storage/test_utx.py::TestUtxFile::test_add PASSED [ 89%] 281s tests/translate/storage/test_utx.py::TestUtxFile::test_remove PASSED [ 89%] 281s tests/translate/storage/test_utx.py::TestUtxFile::test_find PASSED [ 89%] 281s tests/translate/storage/test_utx.py::TestUtxFile::test_translate PASSED [ 89%] 281s tests/translate/storage/test_utx.py::TestUtxFile::test_parse PASSED [ 89%] 281s tests/translate/storage/test_utx.py::TestUtxFile::test_files PASSED [ 89%] 281s tests/translate/storage/test_utx.py::TestUtxFile::test_save PASSED [ 89%] 281s tests/translate/storage/test_utx.py::TestUtxFile::test_markup PASSED [ 89%] 281s tests/translate/storage/test_utx.py::TestUtxFile::test_nonascii PASSED [ 89%] 281s tests/translate/storage/test_utx.py::TestUtxFile::test_extensions PASSED [ 89%] 281s tests/translate/storage/test_utx.py::TestUtxFile::test_mimetypes PASSED [ 89%] 281s tests/translate/storage/test_wordfast.py::TestWFTime::test_timestring PASSED [ 89%] 281s tests/translate/storage/test_wordfast.py::TestWFTime::test_time PASSED [ 89%] 281s tests/translate/storage/test_wordfast.py::TestWFUnit::test_isfuzzy PASSED [ 89%] 281s tests/translate/storage/test_wordfast.py::TestWFUnit::test_create PASSED [ 89%] 281s tests/translate/storage/test_wordfast.py::TestWFUnit::test_eq PASSED [ 89%] 281s tests/translate/storage/test_wordfast.py::TestWFUnit::test_target PASSED [ 89%] 281s tests/translate/storage/test_wordfast.py::TestWFUnit::test_escapes PASSED [ 89%] 281s tests/translate/storage/test_wordfast.py::TestWFUnit::test_note_sanity PASSED [ 89%] 281s tests/translate/storage/test_wordfast.py::TestWFUnit::test_line_number_default PASSED [ 89%] 281s tests/translate/storage/test_wordfast.py::TestWFUnit::test_rich_get PASSED [ 89%] 281s tests/translate/storage/test_wordfast.py::TestWFUnit::test_rich_set PASSED [ 89%] 281s tests/translate/storage/test_wordfast.py::TestWFUnit::test_difficult_escapes PASSED [ 89%] 281s tests/translate/storage/test_wordfast.py::TestWFUnit::test_wordfast_escaping PASSED [ 89%] 281s tests/translate/storage/test_wordfast.py::TestWFUnit::test_newlines PASSED [ 89%] 281s tests/translate/storage/test_wordfast.py::TestWFUnit::test_language_setting PASSED [ 89%] 281s tests/translate/storage/test_wordfast.py::TestWFUnit::test_istranslated PASSED [ 89%] 281s tests/translate/storage/test_wordfast.py::TestWFFile::test_create_blank PASSED [ 89%] 281s tests/translate/storage/test_wordfast.py::TestWFFile::test_add PASSED [ 89%] 281s tests/translate/storage/test_wordfast.py::TestWFFile::test_remove PASSED [ 89%] 281s tests/translate/storage/test_wordfast.py::TestWFFile::test_find PASSED [ 89%] 281s tests/translate/storage/test_wordfast.py::TestWFFile::test_translate PASSED [ 89%] 281s tests/translate/storage/test_wordfast.py::TestWFFile::test_parse PASSED [ 89%] 281s tests/translate/storage/test_wordfast.py::TestWFFile::test_files PASSED [ 89%] 281s tests/translate/storage/test_wordfast.py::TestWFFile::test_save PASSED [ 89%] 281s tests/translate/storage/test_wordfast.py::TestWFFile::test_markup PASSED [ 90%] 281s tests/translate/storage/test_wordfast.py::TestWFFile::test_nonascii PASSED [ 90%] 281s tests/translate/storage/test_wordfast.py::TestWFFile::test_extensions PASSED [ 90%] 281s tests/translate/storage/test_wordfast.py::TestWFFile::test_mimetypes PASSED [ 90%] 281s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_isfuzzy PASSED [ 90%] 281s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_create PASSED [ 90%] 281s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_eq PASSED [ 90%] 281s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_target PASSED [ 90%] 281s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_escapes PASSED [ 90%] 281s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_difficult_escapes PASSED [ 90%] 281s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_note_sanity PASSED [ 90%] 281s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_line_number_default PASSED [ 90%] 281s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_rich_get PASSED [ 90%] 281s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_rich_set PASSED [ 90%] 281s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_markreview PASSED [ 90%] 281s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_errors PASSED [ 90%] 281s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_accepted_control_chars PASSED [ 90%] 281s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_unaccepted_control_chars PASSED [ 90%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_create_blank PASSED [ 90%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add PASSED [ 90%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_remove PASSED [ 90%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_find PASSED [ 90%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_translate PASSED [ 90%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_parse PASSED [ 90%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_files PASSED [ 90%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_save PASSED [ 90%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_markup PASSED [ 90%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_nonascii PASSED [ 90%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_extensions PASSED [ 90%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_mimetypes PASSED [ 90%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_basic PASSED [ 90%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_namespace PASSED [ 90%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_rich_source PASSED [ 90%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_rich_target PASSED [ 90%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_source PASSED [ 90%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_target PASSED [ 90%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_sourcelanguage PASSED [ 90%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_targetlanguage PASSED [ 90%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_targetlanguage_multi PASSED [ 90%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_notes PASSED [ 91%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_alttrans PASSED [ 91%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_fuzzy PASSED [ 91%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_xml_space PASSED [ 91%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_parsing PASSED [ 91%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_marktranslatable PASSED [ 91%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_entities PASSED [ 91%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_multiple_filenodes PASSED [ 91%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_groups_when_adding_units PASSED [ 91%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_multiple_files_and_groups PASSED [ 91%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_unit_to_existing_group PASSED [ 91%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_unit_to_different_file PASSED [ 91%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_mixed_groups_and_body PASSED [ 91%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_addunit_with_new_false PASSED [ 91%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_namespace_preservation_across_versions PASSED [ 91%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_units_between_different_files PASSED [ 91%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_group_preservation_across_different_namespaces PASSED [ 91%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_cross_namespace_group_and_file_preservation PASSED [ 91%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_indent PASSED [ 91%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_target PASSED [ 91%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve PASSED [ 91%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_closing_tags PASSED [ 91%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_context_groups PASSED [ 91%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_getlocations PASSED [ 91%] 281s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_addlocation PASSED [ 91%] 282s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_huge PASSED [ 91%] 282s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_add PASSED [ 91%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_isfuzzy PASSED [ 91%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_create PASSED [ 91%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_eq PASSED [ 91%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_target PASSED [ 91%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_escapes PASSED [ 91%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_difficult_escapes PASSED [ 91%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_note_sanity PASSED [ 91%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_line_number_default PASSED [ 91%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_rich_get PASSED [ 91%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_rich_set PASSED [ 91%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_notes PASSED [ 91%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_id_management PASSED [ 91%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_marktranslatable PASSED [ 92%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_create_blank PASSED [ 92%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_add PASSED [ 92%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_remove PASSED [ 92%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_find PASSED [ 92%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_translate PASSED [ 92%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_parse PASSED [ 92%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_files PASSED [ 92%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_save PASSED [ 92%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_markup PASSED [ 92%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_nonascii PASSED [ 92%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_extensions PASSED [ 92%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_mimetypes PASSED [ 92%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_basic PASSED [ 92%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_source_target PASSED [ 92%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_language_attributes PASSED [ 92%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_namespace PASSED [ 92%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_unit_structure PASSED [ 92%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_multiple_units PASSED [ 92%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_parse_xliff2 PASSED [ 92%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_parse_translate_attribute PASSED [ 92%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_multiple_segments_per_unit PASSED [ 92%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_mixed_single_and_multiple_segments PASSED [ 92%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_segments_without_ids PASSED [ 92%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_escaped_inline_tags PASSED [ 92%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_simple_source_target_pairs PASSED [ 92%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_malformed_xml_declaration PASSED [ 92%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_variable_placeholders PASSED [ 92%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_add_unit PASSED [ 92%] 282s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_states PASSED [ 92%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_isfuzzy PASSED [ 92%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_create PASSED [ 92%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_eq PASSED [ 92%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_escapes PASSED [ 92%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_difficult_escapes PASSED [ 92%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_note_sanity PASSED [ 92%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_line_number_default PASSED [ 92%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_target PASSED [ 92%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_rich_get PASSED [ 92%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_rich_set PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_getlocations PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_create_blank PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_add PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_find PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_parse PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_files PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_save PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_extensions PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_mimetypes PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_translate PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_markup PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_nonascii PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_serialize PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_empty PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_edit PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_edit_unicode PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_parse_unicode_list PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_ordering PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_initial_comments PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_string_key PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_nested PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_multiline PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_boolean PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_integer PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_no_quote_strings PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_double_quote_strings PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_single_quote_strings PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_avoid_escaping_double_quote_strings PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_avoid_escaping_single_quote_strings PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_escaped_double_quotes PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_newlines PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_abbreviated_list PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_abbreviated_dictionary PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_key_nesting PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_add_to_mepty PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_empty_key PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_dict_in_list PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_dump_args PASSED [ 93%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_anchors PASSED [ 94%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_tagged_scalar PASSED [ 94%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_numeric PASSED [ 94%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_remove PASSED [ 94%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_special PASSED [ 94%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_quotes_roundtrip PASSED [ 94%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_simple PASSED [ 94%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_multiline PASSED [ 94%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_nested PASSED [ 94%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_mixed PASSED [ 94%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_no_comment_backwards_compat PASSED [ 94%] 282s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_multiline_literal_format PASSED [ 94%] 282s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_create_blank PASSED [ 94%] 282s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_remove PASSED [ 94%] 282s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_find PASSED [ 94%] 282s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_parse PASSED [ 94%] 282s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_files PASSED [ 94%] 282s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_save PASSED [ 94%] 282s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_extensions PASSED [ 94%] 282s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_mimetypes PASSED [ 94%] 282s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_translate PASSED [ 94%] 282s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_markup PASSED [ 94%] 282s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_nonascii PASSED [ 94%] 282s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_list PASSED [ 94%] 282s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby PASSED [ 94%] 282s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_wrong PASSED [ 94%] 282s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_invalid_value PASSED [ 94%] 282s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural PASSED [ 94%] 282s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_empty PASSED [ 94%] 282s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_anchors PASSED [ 94%] 282s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_type_change PASSED [ 94%] 282s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_add PASSED [ 94%] 282s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_blank PASSED [ 94%] 282s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_partial PASSED [ 94%] 282s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_pt_br PASSED [ 94%] 282s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_bug_ruby_remove_zero_few_and_mix_others PASSED [ 94%] 282s tests/translate/storage/xml_extract/test_misc.py::test_reduce_tree PASSED [ 94%] 282s tests/translate/storage/xml_extract/test_misc.py::test_compose_mappings PASSED [ 94%] 282s tests/translate/storage/xml_extract/test_misc.py::test_parse_tag PASSED [ 94%] 282s tests/translate/storage/xml_extract/test_unit_tree.py::test__split_xpath_component PASSED [ 95%] 282s tests/translate/storage/xml_extract/test_unit_tree.py::test__split_xpath PASSED [ 95%] 282s tests/translate/storage/xml_extract/test_unit_tree.py::test__add_unit_to_tree PASSED [ 95%] 282s tests/translate/storage/xml_extract/test_xpath_breadcrumb.py::test_breadcrumb PASSED [ 95%] 282s tests/translate/tools/test_help.py::test_help[build_tmdb] SKIPPED (S...) [ 95%] 282s tests/translate/tools/test_help.py::test_help[phppo2pypo] SKIPPED (S...) [ 95%] 282s tests/translate/tools/test_help.py::test_help[poclean] SKIPPED (Skip...) [ 95%] 282s tests/translate/tools/test_help.py::test_help[pocompile] SKIPPED (Sk...) [ 95%] 282s tests/translate/tools/test_help.py::test_help[poconflicts] SKIPPED (...) [ 95%] 282s tests/translate/tools/test_help.py::test_help[pocount] SKIPPED (Skip...) [ 95%] 282s tests/translate/tools/test_help.py::test_help[podebug] SKIPPED (Skip...) [ 95%] 282s tests/translate/tools/test_help.py::test_help[pogrep] SKIPPED (Skip ...) [ 95%] 282s tests/translate/tools/test_help.py::test_help[pomerge] SKIPPED (Skip...) [ 95%] 282s tests/translate/tools/test_help.py::test_help[porestructure] SKIPPED [ 95%] 282s tests/translate/tools/test_help.py::test_help[posegment] SKIPPED (Sk...) [ 95%] 282s tests/translate/tools/test_help.py::test_help[poswap] SKIPPED (Skip ...) [ 95%] 282s tests/translate/tools/test_help.py::test_help[poterminology] SKIPPED [ 95%] 282s tests/translate/tools/test_help.py::test_help[pretranslate] SKIPPED [ 95%] 282s tests/translate/tools/test_help.py::test_help[pydiff] SKIPPED (Skip ...) [ 95%] 282s tests/translate/tools/test_help.py::test_help[pypo2phppo] SKIPPED (S...) [ 95%] 282s tests/translate/tools/test_junitmsgfmt.py::test_output[failure] PASSED [ 95%] 282s tests/translate/tools/test_junitmsgfmt.py::test_output[untranslated] PASSED [ 95%] 282s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPo::test_single_po PASSED [ 95%] 282s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPo::test_plural_po PASSED [ 95%] 282s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_single_po PASSED [ 95%] 282s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_plural_po PASSED [ 95%] 282s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_help PASSED [ 95%] 282s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_zero PASSED [ 95%] 282s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_one PASSED [ 95%] 282s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_two PASSED [ 95%] 282s tests/translate/tools/test_pocount.py::TestCount::test_punctuation_divides_words PASSED [ 95%] 282s tests/translate/tools/test_pocount.py::TestCount::test_xml_tags PASSED [ 95%] 282s tests/translate/tools/test_pocount.py::TestCount::test_newlines PASSED [ 95%] 282s tests/translate/tools/test_pocount.py::TestCount::test_variables_are_words PASSED [ 95%] 282s tests/translate/tools/test_pocount.py::TestCount::test_plurals PASSED [ 95%] 282s tests/translate/tools/test_pocount.py::TestCount::test_plurals_kde XFAIL [ 95%] 282s tests/translate/tools/test_pocount.py::TestCount::test_msgid_blank PASSED [ 95%] 282s tests/translate/tools/test_pocount.py::TestPOCount::test_translated PASSED [ 95%] 282s tests/translate/tools/test_pocount.py::TestPOCount::test_fuzzy PASSED [ 95%] 282s tests/translate/tools/test_pocount.py::TestPOCount::test_untranslated PASSED [ 96%] 282s tests/translate/tools/test_pocount.py::TestPOCount::test_total PASSED [ 96%] 282s tests/translate/tools/test_pocount.py::TestPOCount::test_translatedsourcewords PASSED [ 96%] 282s tests/translate/tools/test_pocount.py::TestPOCount::test_fuzzysourcewords PASSED [ 96%] 282s tests/translate/tools/test_pocount.py::TestPOCount::test_untranslatedsourcewords PASSED [ 96%] 282s tests/translate/tools/test_pocount.py::TestPOCount::test_totalsourcewords PASSED [ 96%] 282s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-csv] PASSED [ 96%] 282s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-full] PASSED [ 96%] 282s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-short-strings] PASSED [ 96%] 282s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-short-words] PASSED [ 96%] 282s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-csv] PASSED [ 96%] 282s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-full] PASSED [ 96%] 282s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-short-strings] PASSED [ 96%] 282s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-short-words] PASSED [ 96%] 282s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-csv] PASSED [ 96%] 282s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-full] PASSED [ 96%] 282s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-short-strings] PASSED [ 96%] 282s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-short-words] PASSED [ 96%] 282s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-csv] PASSED [ 96%] 282s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-full] PASSED [ 96%] 282s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-short-strings] PASSED [ 96%] 282s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-short-words] PASSED [ 96%] 282s tests/translate/tools/test_pocount.py::test_cases[po-file] PASSED [ 96%] 282s tests/translate/tools/test_pocount.py::test_cases[po-file-fuzzy] PASSED [ 96%] 282s tests/translate/tools/test_pocount.py::test_cases[po-file-csv] PASSED [ 96%] 282s tests/translate/tools/test_pocount.py::test_cases[xliff-states-yes] PASSED [ 96%] 282s tests/translate/tools/test_pocount.py::test_cases[xliff-states-no] PASSED [ 96%] 282s tests/translate/tools/test_pocount.py::test_error_cases[mutually-exclusive] PASSED [ 96%] 282s tests/translate/tools/test_pocount.py::test_error_cases[missing-file] PASSED [ 96%] 282s tests/translate/tools/test_pocount.py::test_error_cases[no-args] PASSED [ 96%] 282s tests/translate/tools/test_pocount.py::test_csv_line_terminator PASSED [ 96%] 282s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_fuzzy_with_target PASSED [ 96%] 282s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_fuzzy_without_target PASSED [ 96%] 282s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_translated_not_fuzzy PASSED [ 96%] 282s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_untranslated_empty_target PASSED [ 96%] 282s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_categorization_mutually_exclusive PASSED [ 96%] 282s tests/translate/tools/test_pocount.py::TestPOCountLineEndings::test_unusual_line_endings PASSED [ 96%] 282s tests/translate/tools/test_podebug.py::TestPODebug::test_ignore_gtk PASSED [ 96%] 282s tests/translate/tools/test_podebug.py::TestPODebug::test_keep_target PASSED [ 96%] 282s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank PASSED [ 97%] 282s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank_clears_fuzzy PASSED [ 97%] 282s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank_with_plurals PASSED [ 97%] 282s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_en PASSED [ 97%] 282s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_xxx PASSED [ 97%] 282s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_bracket PASSED [ 97%] 282s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode PASSED [ 97%] 282s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_at_placeholders PASSED [ 97%] 282s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_single_brace_placeholders PASSED [ 97%] 282s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_double_brace_placeholders PASSED [ 97%] 282s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_html PASSED [ 97%] 282s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_multiple_styles_of_placeholder PASSED [ 97%] 282s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped PASSED [ 97%] 282s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_at_placeholders PASSED [ 97%] 282s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_single_brace_placeholders PASSED [ 97%] 282s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_double_brace_placeholders PASSED [ 97%] 282s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_html PASSED [ 97%] 282s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_multiple_styles_of_placeholder PASSED [ 97%] 282s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified PASSED [ 97%] 282s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_at_placeholders PASSED [ 97%] 282s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_single_brace_placeholders PASSED [ 97%] 282s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_double_brace_placeholders PASSED [ 97%] 282s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_html PASSED [ 97%] 282s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_multiple_styles_of_placeholder PASSED [ 97%] 282s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_chef PASSED [ 97%] 282s tests/translate/tools/test_podebug.py::TestPODebug::test_po_variables PASSED [ 97%] 282s tests/translate/tools/test_podebug.py::TestPODebug::test_xliff_rewrite PASSED [ 97%] 282s tests/translate/tools/test_podebug.py::TestPODebug::test_hash PASSED [ 97%] 282s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_msgid PASSED [ 97%] 282s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_msgstr PASSED [ 97%] 282s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_locations PASSED [ 97%] 282s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_comments PASSED [ 97%] 282s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_locations_with_comment_enabled PASSED [ 97%] 282s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_message_searchstring PASSED [ 97%] 282s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_message_regex_searchstring PASSED [ 97%] 282s tests/translate/tools/test_pogrep.py::TestPOGrep::test_keep_translations PASSED [ 97%] 282s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_normalise PASSED [ 97%] 282s tests/translate/tools/test_pogrep.py::TestXLiffGrep::test_simplegrep PASSED [ 97%] 282s tests/translate/tools/test_pomerge.py::test_str2bool PASSED [ 97%] 282s tests/translate/tools/test_pomerge.py::TestPOMerge::test_mergesore_bad_data PASSED [ 98%] 282s tests/translate/tools/test_pomerge.py::TestPOMerge::test_simplemerge PASSED [ 98%] 282s tests/translate/tools/test_pomerge.py::TestPOMerge::test_simplemerge_no_locations PASSED [ 98%] 282s tests/translate/tools/test_pomerge.py::TestPOMerge::test_replacemerge PASSED [ 98%] 282s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_blanks PASSED [ 98%] 282s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_fuzzies PASSED [ 98%] 282s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_locations PASSED [ 98%] 282s tests/translate/tools/test_pomerge.py::TestPOMerge::test_unit_missing_in_template_with_locations PASSED [ 98%] 282s tests/translate/tools/test_pomerge.py::TestPOMerge::test_unit_missing_in_template_no_locations PASSED [ 98%] 282s tests/translate/tools/test_pomerge.py::TestPOMerge::test_reflowed_source_comments PASSED [ 98%] 282s tests/translate/tools/test_pomerge.py::TestPOMerge::test_comments_with_blank_lines PASSED [ 98%] 282s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merge_dont_delete_unassociated_comments PASSED [ 98%] 282s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_trailing_newlines PASSED [ 98%] 282s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_minor_start_and_end_of_sentence_changes PASSED [ 98%] 282s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_last_entry_in_a_file PASSED [ 98%] 282s tests/translate/tools/test_pomerge.py::TestPOMerge::test_escape_tabs XFAIL [ 98%] 282s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_comments_layout PASSED [ 98%] 282s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merge_dos2unix PASSED [ 98%] 282s tests/translate/tools/test_pomerge.py::TestPOMerge::test_xliff_into_xliff PASSED [ 98%] 282s tests/translate/tools/test_pomerge.py::TestPOMerge::test_po_into_xliff PASSED [ 98%] 282s tests/translate/tools/test_pomerge.py::TestPOMerge::test_xliff_into_po PASSED [ 98%] 282s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_dont_merge_kde_comments_found_in_translation PASSED [ 98%] 282s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_untranslated_with_kde_disambiguation PASSED [ 98%] 282s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_header_entries PASSED [ 98%] 282s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_different_locations PASSED [ 98%] 282s tests/translate/tools/test_posegment.py::TestPOSegment::test_en_ja_simple PASSED [ 98%] 282s tests/translate/tools/test_posegment.py::TestPOSegment::test_en_ja_punctuation PASSED [ 98%] 282s tests/translate/tools/test_posegment.py::TestPOSegment::test_transifex_po PASSED [ 98%] 282s tests/translate/tools/test_posegment.py::TestXLIFFSegment::test_xliff_en_simple PASSED [ 98%] 282s tests/translate/tools/test_posegment.py::TestXLIFFSegment::test_xliff_untranslated PASSED [ 98%] 282s tests/translate/tools/test_posegment.py::TestTMXSegment::test_tmx_en_simple PASSED [ 98%] 282s tests/translate/tools/test_poterminology.py::TestPOTerminology::test_term_extraction PASSED [ 98%] 282s tests/translate/tools/test_poterminology.py::TestPOTerminology::test_unitinfo_stores_minimal_data PASSED [ 98%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_pretranslatepo_blank PASSED [ 98%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_simple PASSED [ 98%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_messages_marked_fuzzy PASSED [ 98%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_plurals_with_fuzzy_matching PASSED [ 98%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgid_change XFAIL [ 98%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_location_change PASSED [ 98%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_location_and_whitespace_change PASSED [ 99%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_accelerator_changes XFAIL [ 99%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_lines_cut_differently XFAIL [ 99%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_automatic_comments_dont_duplicate PASSED [ 99%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_automatic_comments_new_overrides_old PASSED [ 99%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_comments_with_blank_comment_lines PASSED [ 99%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_empty_commentlines PASSED [ 99%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgidcomments PASSED [ 99%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_plurals PASSED [ 99%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_resurrect_obsolete_messages PASSED [ 99%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_comments PASSED [ 99%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_typecomments PASSED [ 99%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_xliff_states PASSED [ 99%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_pretranslatepo_blank PASSED [ 99%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_simple PASSED [ 99%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_messages_marked_fuzzy PASSED [ 99%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_plurals_with_fuzzy_matching PASSED [ 99%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgid_change XFAIL [ 99%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_location_change PASSED [ 99%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_location_and_whitespace_change PASSED [ 99%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_accelerator_changes XFAIL [ 99%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_lines_cut_differently XFAIL [ 99%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_automatic_comments_dont_duplicate PASSED [ 99%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_automatic_comments_new_overrides_old PASSED [ 99%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_comments_with_blank_comment_lines PASSED [ 99%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_empty_commentlines PASSED [ 99%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgidcomments PASSED [ 99%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_plurals PASSED [ 99%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_resurrect_obsolete_messages PASSED [ 99%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_comments PASSED [ 99%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_typecomments PASSED [ 99%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_xliff_states PASSED [ 99%] 282s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_help PASSED [ 99%] 282s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPo::test_single_po PASSED [ 99%] 282s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPo::test_plural_po PASSED [ 99%] 282s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_single_po PASSED [ 99%] 282s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_plural_po PASSED [ 99%] 282s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_help PASSED [ 99%] 282s tests/xliff_conformance/test_xliff_conformance.py::test_open_office_to_xliff SKIPPED [ 99%] 283s tests/xliff_conformance/test_xliff_conformance.py::test_po_to_xliff SKIPPED [100%] 283s 283s =============================== warnings summary =============================== 283s ../../../usr/lib/python3/dist-packages/pyparsing/core.py:5637 283s Warning: 'return' in a 'finally' block 283s 283s tests/odf_xliff/test_odf_xliff.py::test_roundtrip 283s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.ZrT223/autopkgtest_tmp/tests/odf_xliff/test_2.odt'> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_convertandroid 283s Warning: unclosed file <_io.TextIOWrapper name='TestAndroid2POCommand_test_convertandroid/en.po' mode='r' encoding='UTF-8'> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder 283s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder 283s Warning: unclosed file <_io.TextIOWrapper name='TestCSV2POCommand_test_columnorder/test.po' mode='r' encoding='UTF-8'> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_pot 283s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_pot/simple.pot'> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_po 283s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_po 283s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_po/simple.po'> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_remove_duplicates 283s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_remove_duplicates/simple.po'> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_xlf 283s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_xlf/simple.xlf'> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder 283s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder 283s Warning: unclosed file <_io.TextIOWrapper name='TestPO2CSVCommand_test_columnorder/test.csv' mode='r' encoding='UTF-8'> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_context 283s Warning: unclosed file <_io.TextIOWrapper name='TestPO2CSVCommand_test_context/test.csv' mode='r' encoding='UTF-8'> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing 283s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey 283s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey 283s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing 283s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey 283s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_amp_no_accesskey 283s Warning: Could not find accesskey for key.accesskey 283s 283s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified 283s Warning: unclosed file <_io.BufferedWriter name='translated/file1.html'> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified 283s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file 283s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file_and_templates_overwritten 283s Warning: unclosed file <_io.BufferedReader name='translation/file1.po'> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_convert 283s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.ZrT223/autopkgtest_tmp/tests/translate/convert/test.idml'> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_with_single_po 283s Warning: unclosed file <_io.BufferedReader name='translation.po'> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert 283s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert_with_multiple_units 283s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert 283s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.ZrT223/autopkgtest_tmp/tests/translate/convert/test.odt'> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_return_array_with_comments 283s Warning: unclosed file <_io.FileIO name='input.oo' mode='rb' closefd=True> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_return_array_with_comments 283s Warning: unclosed file <_io.FileIO name='output.oo' mode='wb' closefd=True> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey 283s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys_missing_accesskey 283s Warning: Could not find accesskey for prop.accesskey 283s 283s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_context 283s Warning: unclosed file <_io.BufferedReader name='test.po'> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_context 283s Warning: unclosed file <_io.TextIOWrapper name='TestPO2TMXCommand_test_context/test.tmx' mode='r' encoding='UTF-8'> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert 283s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert/simple.po'> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf16 283s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_utf16/simple.po'> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 283s Warning: unclosed file <_io.BufferedWriter name='simple.po'> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 283s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 283s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_wrong/simple.po'> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf8 283s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_utf8/simple.po'> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_menuex 283s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_menuex/simple.po'> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_pot 283s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_simple_pot/simple.pot'> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_po 283s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_simple_po/simple.po'> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_remove_duplicates 283s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_remove_duplicates/simple.po'> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_preserve_filename 283s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_preserve_filename/snippet.xlf'> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_pot 283s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_simple_pot/simple.pot'> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_po 283s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_simple_po/simple.po'> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_remove_duplicates 283s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_remove_duplicates/simple.po'> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers 283s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers 283s tests/translate/filters/test_checks.py::test_noaccelerators_only_in_mozilla_checker 283s tests/translate/filters/test_checks.py::test_ensure_accelerators_not_in_target_if_not_in_source 283s Warning: The 'u' type code is deprecated and will be removed in Python 3.16 283s 283s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_save_bundle 283s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_save_bundle 283s Warning: unclosed file <_io.BufferedReader name='/tmp/tmp2jb93yp8_test.txt'> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_cross_device_save 283s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_cross_device_save 283s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpg3otmm2u_crossdevice.txt'> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_replace_project_zip 283s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_replace_project_zip 283s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpohbg6yq6_initial.txt'> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 283s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 283s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpzkg9y142_load_test.txt'> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 283s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 283s Warning: unclosed file <_io.BufferedReader name='/tmp/tmps6krpent_load_test.txt'> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 283s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 283s Warning: unclosed file <_io.BufferedReader name='/tmp/tmp2vp17xqb_file0.txt'> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 283s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 283s Warning: unclosed file <_io.BufferedReader name='/tmp/tmp1hvmv4gy_file1.txt'> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 283s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 283s Warning: unclosed file <_io.BufferedReader name='/tmp/tmp3t7jp2y8_file2.txt'> 283s Enable tracemalloc to get traceback where the object was allocated. 283s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 283s 283s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting 283s Warning: DTD parse error: :1:35:FATAL:PARSER:ERR_ENTITY_NOT_FINISHED: xmlParseEntityDecl: entity test.me not terminated 283s :1:35:FATAL:PARSER:ERR_EXT_SUBSET_NOT_FINISHED: Content error in the external subset 283s 283s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting 283s Warning: DTD file '' does not validate 283s 283s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 283s --------------------------- snapshot report summary ---------------------------- 283s 23 snapshots passed. 283s =========================== short test summary info ============================ 283s SKIPPED [1] tests/translate/storage/test_cpo.py:15: could not import 'translate.storage.cpo': gettext PO library not found 283s SKIPPED [1] tests/translate/storage/test_fluent.py:29: could not import 'translate.storage.fluent': No module named 'fluent' 283s SKIPPED [1] tests/translate/filters/test_checks.py:1429: Spell checking for af is not available 283s SKIPPED [1] tests/translate/storage/test_mo.py:512: Skip testing command line tools 283s SKIPPED [16] tests/translate/tools/test_help.py:16: Skip testing command line tools 283s SKIPPED [1] tests/xliff_conformance/test_xliff_conformance.py:47: Skip testing command line tools 283s SKIPPED [1] tests/xliff_conformance/test_xliff_conformance.py:57: Skip testing command line tools 283s XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accelerator_keys_not_in_sentence - Not Implemented 283s XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accelerator_keys_not_in_sentence - Not Implemented 283s XFAIL tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_table - https://github.com/miyuchina/mistletoe/issues/244 283s XFAIL tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_propertyless_template - Need to review if we want this behaviour 283s XFAIL tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_propertyless_template - Need to review if we want this behaviour 283s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_change - Not implemented - review if this is even correct 283s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_accelerator_changes - Not Implemented - needs review 283s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_lines_cut_differently - Not Implemented - review if this is even correct 283s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_change - Not implemented - review if this is even correct 283s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_accelerator_changes - Not Implemented - needs review 283s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_lines_cut_differently - Not Implemented - review if this is even correct 283s XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_no_duplicates - This is invalid YAML document 283s XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_no_duplicates - This is invalid YAML document 283s XFAIL tests/translate/filters/test_checks.py::test_acceleratedvariables - Accelerated variables needs a better implementation 283s XFAIL tests/translate/filters/test_checks.py::test_musttranslatewords - FIXME: All fails() tests are not working 283s XFAIL tests/translate/filters/test_checks.py::test_persian_single_and_double_quote_fail_at_the_same_time - Bug #3408 283s XFAIL tests/translate/filters/test_checks.py::test_bengali_mozilla_inverted_xmltags - Bug #3506 283s XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_general_placeables - Test needs fixing, disabled for now 283s XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_xliff_placeables - Test needs fixing, disabled for now 283s XFAIL tests/translate/storage/test_dtd.py::test_quotefordtd_unimplemented_cases - Not Implemented 283s XFAIL tests/translate/storage/test_dtd.py::test_unquotefromdtd_unimplemented_cases - Not Implemented 283s XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_comment_following - Not Implemented 283s XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting - Not Implemented 283s XFAIL tests/translate/storage/test_omegat.py::TestOmegaTFile::test_extensions - This doesn't work, due to two store classes handling different extensions, but factory listing it as one supported file type 283s XFAIL tests/translate/storage/test_po.py::TestPOFile::test_kde_plurals - Not Implemented 283s XFAIL tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo 283s XFAIL tests/translate/storage/test_properties.py::TestXWikiFullPage::test_remove - removal not working in full page 283s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_plurals - Not Implemented 283s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo 283s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_typecomment - Not sure if this can not be parsed gracefully 283s XFAIL tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_note_sanity - Not Implemented 283s XFAIL tests/translate/tools/test_pocount.py::TestCount::test_plurals_kde - Support commented out pending removal 283s XFAIL tests/translate/tools/test_pomerge.py::TestPOMerge::test_escape_tabs - Not Implemented 283s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgid_change - Not Implemented 283s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_accelerator_changes - Not Implemented 283s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_lines_cut_differently - Not Implemented 283s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgid_change - Not Implemented 283s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_accelerator_changes - Not Implemented 283s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_lines_cut_differently - Not Implemented 283s ========== 3843 passed, 22 skipped, 39 xfailed, 70 warnings in 10.10s ========== 284s ============================= test session starts ============================== 284s platform linux -- Python 3.13.11, pytest-9.0.2, pluggy-1.6.0 -- /usr/bin/python3.13 284s cachedir: .pytest_cache 284s rootdir: /tmp/autopkgtest.ZrT223/autopkgtest_tmp 284s plugins: typeguard-4.4.4, syrupy-5.0.0 287s collecting ... collected 3902 items / 2 skipped 287s 287s tests/odf_xliff/test_odf_xliff.py::test_odf2xliff PASSED [ 0%] 287s tests/odf_xliff/test_odf_xliff.py::test_roundtrip PASSED [ 0%] 287s tests/odf_xliff/test_odf_xliff.py::test_odf2xliff2_inline PASSED [ 0%] 287s tests/translate/convert/test_accesskey.py::test_get_label_and_accesskey PASSED [ 0%] 287s tests/translate/convert/test_accesskey.py::test_extract_bad_accesskeys PASSED [ 0%] 287s tests/translate/convert/test_accesskey.py::test_ignore_entities PASSED [ 0%] 287s tests/translate/convert/test_accesskey.py::test_alternate_accesskey_marker PASSED [ 0%] 287s tests/translate/convert/test_accesskey.py::test_unicode PASSED [ 0%] 287s tests/translate/convert/test_accesskey.py::test_numeric PASSED [ 0%] 287s tests/translate/convert/test_accesskey.py::test_empty_string PASSED [ 0%] 287s tests/translate/convert/test_accesskey.py::test_end_of_string PASSED [ 0%] 287s tests/translate/convert/test_accesskey.py::test_combine_label_accesskey PASSED [ 0%] 287s tests/translate/convert/test_accesskey.py::test_combine_label_accesskey_different_capitals PASSED [ 0%] 287s tests/translate/convert/test_accesskey.py::test_uncombinable PASSED [ 0%] 287s tests/translate/convert/test_accesskey.py::test_accesskey_already_in_text PASSED [ 0%] 287s tests/translate/convert/test_android2po.py::TestAndroid2PO::test_no_template_units PASSED [ 0%] 287s tests/translate/convert/test_android2po.py::TestAndroid2PO::test_template_units PASSED [ 0%] 287s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_no_template_units PASSED [ 0%] 287s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_template_units PASSED [ 0%] 287s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_help PASSED [ 0%] 287s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_convertandroid PASSED [ 0%] 287s tests/translate/convert/test_convert.py::TestConvertCommand::test_help PASSED [ 0%] 287s tests/translate/convert/test_csv2po.py::test_replacestrings PASSED [ 0%] 287s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_simpleentity PASSED [ 0%] 287s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_simpleentity_with_template PASSED [ 0%] 287s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_newlines PASSED [ 0%] 287s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_tabs PASSED [ 0%] 287s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_quotes PASSED [ 0%] 287s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_empties PASSED [ 0%] 287s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_kdecomment PASSED [ 0%] 287s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_escaped_newlines PASSED [ 0%] 287s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_line_numbers_in_errors PASSED [ 0%] 287s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_simpleentity PASSED [ 0%] 287s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_simpleentity_with_template PASSED [ 0%] 287s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_newlines PASSED [ 0%] 287s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_tabs PASSED [ 0%] 287s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_quotes PASSED [ 0%] 287s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_empties PASSED [ 0%] 287s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_kdecomment PASSED [ 0%] 287s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_escaped_newlines PASSED [ 1%] 287s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_line_numbers_in_errors PASSED [ 1%] 287s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_help PASSED [ 1%] 287s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder PASSED [ 1%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_simpleentity PASSED [ 1%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_convertdtd PASSED [ 1%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_apos PASSED [ 1%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_quotes PASSED [ 1%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_emptyentity PASSED [ 1%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_two_empty_entities PASSED [ 1%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_emptyentity_translated PASSED [ 1%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_localisaton_note_simple PASSED [ 1%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_localisation_note_merge PASSED [ 1%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_simple PASSED [ 1%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_label PASSED [ 1%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_onlyentity PASSED [ 1%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_commentedout PASSED [ 1%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_spaces_at_start_of_dtd_lines PASSED [ 1%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accesskeys_folding PASSED [ 1%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accesskeys_mismatch PASSED [ 1%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_carriage_return_in_multiline_dtd PASSED [ 1%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_multiline_with_blankline PASSED [ 1%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_multiline_closing_quotes PASSED [ 1%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_preserving_spaces PASSED [ 1%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_escaping_newline_tabs PASSED [ 1%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_abandoned_accelerator PASSED [ 1%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_unassociable_accelerator PASSED [ 1%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_changed_labels_and_accelerators PASSED [ 1%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accelerator_keys_not_in_sentence XFAIL [ 1%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_exclude_entity_includes PASSED [ 1%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_linewraps PASSED [ 1%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_merging_with_new_untranslated PASSED [ 1%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_merge_without_template PASSED [ 1%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_simpleentity PASSED [ 1%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_convertdtd PASSED [ 1%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_apos PASSED [ 1%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_quotes PASSED [ 1%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_emptyentity PASSED [ 1%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_two_empty_entities PASSED [ 1%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_emptyentity_translated PASSED [ 2%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_localisaton_note_simple PASSED [ 2%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_localisation_note_merge PASSED [ 2%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_simple PASSED [ 2%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_label PASSED [ 2%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_onlyentity PASSED [ 2%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_commentedout PASSED [ 2%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_spaces_at_start_of_dtd_lines PASSED [ 2%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accesskeys_folding PASSED [ 2%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accesskeys_mismatch PASSED [ 2%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_carriage_return_in_multiline_dtd PASSED [ 2%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_multiline_with_blankline PASSED [ 2%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_multiline_closing_quotes PASSED [ 2%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_preserving_spaces PASSED [ 2%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_escaping_newline_tabs PASSED [ 2%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_abandoned_accelerator PASSED [ 2%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_unassociable_accelerator PASSED [ 2%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_changed_labels_and_accelerators PASSED [ 2%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accelerator_keys_not_in_sentence XFAIL [ 2%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_exclude_entity_includes PASSED [ 2%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_linewraps PASSED [ 2%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_merging_with_new_untranslated PASSED [ 2%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_merge_without_template PASSED [ 2%] 287s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_help PASSED [ 2%] 287s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_defaults PASSED [ 2%] 287s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_root_name PASSED [ 2%] 287s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_value_name PASSED [ 2%] 287s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_key PASSED [ 2%] 287s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_default_namespace PASSED [ 2%] 287s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_namespace_prefix PASSED [ 2%] 287s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_all_parameters PASSED [ 2%] 287s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_empty_file_is_empty_store PASSED [ 2%] 287s tests/translate/convert/test_flatxml2po.py::TestFlatXML2POCommand::test_help PASSED [ 2%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_extract_lang_attribute_from_html_tag PASSED [ 2%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_do_not_extract_lang_attribute_from_tags_other_than_html PASSED [ 2%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_title PASSED [ 2%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_title_with_linebreak PASSED [ 2%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta PASSED [ 2%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p PASSED [ 2%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_br PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_linebreak PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_linebreak_and_embedded_br PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_uppercase_html PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_div PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_div_with_linebreaks PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_a PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_a_with_linebreak PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_sequence_of_anchor_elements PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_img PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_img_empty PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_img_inside_a PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_table_summary PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_simple PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_complex PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_empty PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_address PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_headings PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_headings_with_linebreaks PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_dt PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_dd PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_span PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_ul PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_nested_lists PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_duplicates PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_multiline_reflow PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_nested_tags PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_carriage_return PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_encoding_latin1 PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_strip_html PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_entityrefs_in_text PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_entityrefs_in_attributes PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_charrefs PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_multiple_php PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php_multiline PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php_with_embedded_html PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_comments PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_attribute_without_value PASSED [ 3%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_data_translate_ignore_attribute PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_translate_comment_directives PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta_social_media_tags PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta_non_translatable_tags_not_extracted PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta_mixed_translatable_and_non_translatable PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_data_translate_comment_attribute PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_data_translate_comment_without_keepcomments PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2PO::test_text_after_empty_tags PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_extract_lang_attribute_from_html_tag PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_do_not_extract_lang_attribute_from_tags_other_than_html PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_title PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_title_with_linebreak PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_br PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_linebreak PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_linebreak_and_embedded_br PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_uppercase_html PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_div PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_div_with_linebreaks PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_a PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_a_with_linebreak PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_sequence_of_anchor_elements PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_img PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_img_empty PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_img_inside_a PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_table_summary PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_simple PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_complex PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_empty PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_address PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_headings PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_headings_with_linebreaks PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_dt PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_dd PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_span PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_ul PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_nested_lists PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_duplicates PASSED [ 4%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multiline_reflow PASSED [ 5%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_nested_tags PASSED [ 5%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_carriage_return PASSED [ 5%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_encoding_latin1 PASSED [ 5%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_strip_html PASSED [ 5%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_entityrefs_in_text PASSED [ 5%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_entityrefs_in_attributes PASSED [ 5%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_charrefs PASSED [ 5%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php PASSED [ 5%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multiple_php PASSED [ 5%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php_multiline PASSED [ 5%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php_with_embedded_html PASSED [ 5%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_comments PASSED [ 5%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_attribute_without_value PASSED [ 5%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_data_translate_ignore_attribute PASSED [ 5%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_translate_comment_directives PASSED [ 5%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta_social_media_tags PASSED [ 5%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta_non_translatable_tags_not_extracted PASSED [ 5%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta_mixed_translatable_and_non_translatable PASSED [ 5%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_data_translate_comment_attribute PASSED [ 5%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_data_translate_comment_without_keepcomments PASSED [ 5%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_text_after_empty_tags PASSED [ 5%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_help PASSED [ 5%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_single PASSED [ 5%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_onefile PASSED [ 5%] 287s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_onefile_to_stdout PASSED [ 5%] 287s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_convert_empty_file PASSED [ 5%] 287s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_no_translations PASSED [ 5%] 287s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_summary PASSED [ 5%] 287s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_description PASSED [ 5%] 287s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_location PASSED [ 5%] 287s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_comment PASSED [ 5%] 287s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_no_template_duplicate_style PASSED [ 5%] 288s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge PASSED [ 5%] 288s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_misaligned_files PASSED [ 5%] 288s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_blank_msgstr PASSED [ 5%] 288s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_duplicate_style PASSED [ 5%] 288s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_convert_empty_file PASSED [ 5%] 288s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_no_translations PASSED [ 5%] 288s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_summary PASSED [ 6%] 288s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_description PASSED [ 6%] 288s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_location PASSED [ 6%] 288s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_comment PASSED [ 6%] 288s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_no_template_duplicate_style PASSED [ 6%] 288s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge PASSED [ 6%] 288s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_misaligned_files PASSED [ 6%] 288s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_blank_msgstr PASSED [ 6%] 288s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_duplicate_style PASSED [ 6%] 288s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_help PASSED [ 6%] 288s tests/translate/convert/test_idml2po.py::TestIDML2POCommand::test_help PASSED [ 6%] 288s tests/translate/convert/test_idml2po.py::TestIDML2POCommand::test_convert PASSED [ 6%] 288s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_empty_file PASSED [ 6%] 288s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_no_translation PASSED [ 6%] 288s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_simple PASSED [ 6%] 288s tests/translate/convert/test_ini2po.py::TestIni2PO::test_no_duplicates PASSED [ 6%] 288s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_simple PASSED [ 6%] 288s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_misaligned_files PASSED [ 6%] 288s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_blank_msgstr PASSED [ 6%] 288s tests/translate/convert/test_ini2po.py::TestIni2PO::test_dialects_inno PASSED [ 6%] 288s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_empty_file PASSED [ 6%] 288s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_no_translation PASSED [ 6%] 288s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_simple PASSED [ 6%] 288s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_no_duplicates PASSED [ 6%] 288s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_simple PASSED [ 6%] 288s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_misaligned_files PASSED [ 6%] 288s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_blank_msgstr PASSED [ 6%] 288s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_dialects_inno PASSED [ 6%] 288s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_help PASSED [ 6%] 288s tests/translate/convert/test_json2po.py::TestJson2PO::test_simple PASSED [ 6%] 288s tests/translate/convert/test_json2po.py::TestJson2PO::test_three_same_keys PASSED [ 6%] 288s tests/translate/convert/test_json2po.py::TestJson2PO::test_filter PASSED [ 6%] 288s tests/translate/convert/test_json2po.py::TestJson2PO::test_multiple_units PASSED [ 6%] 288s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_simple PASSED [ 6%] 288s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_three_same_keys PASSED [ 6%] 288s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_filter PASSED [ 6%] 288s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_multiple_units PASSED [ 6%] 288s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_help PASSED [ 6%] 288s tests/translate/convert/test_md2po.py::TestMD2PO::test_help PASSED [ 6%] 288s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_file_with_multifile_single PASSED [ 7%] 288s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_file_with_multifile_onefile PASSED [ 7%] 288s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_directory_with_multifile_single PASSED [ 7%] 288s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_directory_with_multifile_onefile PASSED [ 7%] 288s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_frontmatter PASSED [ 7%] 288s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_translation_ignore_sections PASSED [ 7%] 288s tests/translate/convert/test_moz2po.py::TestMoz2PO::test_duplicate_locations PASSED [ 7%] 288s tests/translate/convert/test_moz2po.py::TestMoz2POCommand::test_duplicate_locations PASSED [ 7%] 288s tests/translate/convert/test_moz2po.py::TestMoz2POCommand::test_help PASSED [ 7%] 288s tests/translate/convert/test_mozfunny2prop.py::TestInc2PO::test_simpleentry PASSED [ 7%] 288s tests/translate/convert/test_mozfunny2prop.py::TestInc2PO::test_uncomment_contributors PASSED [ 7%] 288s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_convert_empty PASSED [ 7%] 288s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_string PASSED [ 7%] 288s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_merge PASSED [ 7%] 288s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_entry PASSED [ 7%] 288s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_comment PASSED [ 7%] 288s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_meta_tags PASSED [ 7%] 288s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_keep_duplicates PASSED [ 7%] 288s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_drop_duplicates PASSED [ 7%] 288s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_convert_empty PASSED [ 7%] 288s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_string PASSED [ 7%] 288s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_merge PASSED [ 7%] 288s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_entry PASSED [ 7%] 288s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_comment PASSED [ 7%] 288s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_meta_tags PASSED [ 7%] 288s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_keep_duplicates PASSED [ 7%] 288s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_drop_duplicates PASSED [ 7%] 288s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_help PASSED [ 7%] 288s tests/translate/convert/test_ods2xliff.py::TestODF2XLIFFCommand::test_help PASSED [ 7%] 288s tests/translate/convert/test_ods2xliff.py::TestODF2XLIFFCommand::test_convert PASSED [ 7%] 288s tests/translate/convert/test_oo2po.py::TestOO2PO::test_simpleentity PASSED [ 7%] 288s tests/translate/convert/test_oo2po.py::TestOO2PO::test_escapes PASSED [ 7%] 288s tests/translate/convert/test_oo2po.py::TestOO2PO::test_roundtrip_escape PASSED [ 7%] 288s tests/translate/convert/test_oo2po.py::TestOO2PO::test_roundtrip_whitespaceonly PASSED [ 7%] 288s tests/translate/convert/test_oo2po.py::TestOO2PO::test_double_escapes PASSED [ 7%] 288s tests/translate/convert/test_oo2po.py::TestOO2PO::test_escapes_helpcontent2 PASSED [ 7%] 288s tests/translate/convert/test_oo2po.py::TestOO2PO::test_msgid_bug_error_address PASSED [ 7%] 288s tests/translate/convert/test_oo2po.py::TestOO2PO::test_x_comment_inclusion PASSED [ 7%] 288s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simpleentity PASSED [ 7%] 288s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_escapes PASSED [ 8%] 288s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_roundtrip_escape PASSED [ 8%] 288s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_roundtrip_whitespaceonly PASSED [ 8%] 288s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_double_escapes PASSED [ 8%] 288s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_escapes_helpcontent2 PASSED [ 8%] 288s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_msgid_bug_error_address PASSED [ 8%] 288s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_x_comment_inclusion PASSED [ 8%] 288s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_help PASSED [ 8%] 288s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_preserve_filename PASSED [ 8%] 288s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_pot PASSED [ 8%] 288s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_po PASSED [ 8%] 288s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_onefile_nonrecursive PASSED [ 8%] 288s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_remove_duplicates PASSED [ 8%] 288s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_simpleentity PASSED [ 8%] 288s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_escapes PASSED [ 8%] 288s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_roundtrip_escape PASSED [ 8%] 288s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_roundtrip_whitespaceonly PASSED [ 8%] 288s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_double_escapes PASSED [ 8%] 288s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_escapes_helpcontent2 PASSED [ 8%] 288s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_x_comment_inclusion PASSED [ 8%] 288s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_msgid_bug_error_address PASSED [ 8%] 288s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simpleentity PASSED [ 8%] 288s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_escapes PASSED [ 8%] 288s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_roundtrip_escape PASSED [ 8%] 288s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_roundtrip_whitespaceonly PASSED [ 8%] 288s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_double_escapes PASSED [ 8%] 288s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_escapes_helpcontent2 PASSED [ 8%] 288s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_x_comment_inclusion PASSED [ 8%] 288s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_msgid_bug_error_address PASSED [ 8%] 288s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_help PASSED [ 8%] 288s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_preserve_filename PASSED [ 8%] 288s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_xlf PASSED [ 8%] 288s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_po PASSED [ 8%] 288s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_onefile_nonrecursive PASSED [ 8%] 288s tests/translate/convert/test_php2po.py::TestPhp2PO::test_simpleentry PASSED [ 8%] 288s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphp PASSED [ 8%] 288s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphptemplate PASSED [ 8%] 288s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphpmissing PASSED [ 8%] 288s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphpempty PASSED [ 8%] 288s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unicode PASSED [ 9%] 288s tests/translate/convert/test_php2po.py::TestPhp2PO::test_multiline PASSED [ 9%] 288s tests/translate/convert/test_php2po.py::TestPhp2PO::test_comments_before PASSED [ 9%] 288s tests/translate/convert/test_php2po.py::TestPhp2PO::test_emptyentry PASSED [ 9%] 288s tests/translate/convert/test_php2po.py::TestPhp2PO::test_hash_comment_with_equals PASSED [ 9%] 288s tests/translate/convert/test_php2po.py::TestPhp2PO::test_emptyentry_translated PASSED [ 9%] 288s tests/translate/convert/test_php2po.py::TestPhp2PO::test_newlines_in_value PASSED [ 9%] 288s tests/translate/convert/test_php2po.py::TestPhp2PO::test_spaces_in_name PASSED [ 9%] 288s tests/translate/convert/test_php2po.py::TestPhp2PO::test_named_array PASSED [ 9%] 288s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unnamed_array PASSED [ 9%] 288s tests/translate/convert/test_php2po.py::TestPhp2PO::test_named_nested_arrays PASSED [ 9%] 288s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unnamed_nested_arrays PASSED [ 9%] 288s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_simpleentry PASSED [ 9%] 288s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphp PASSED [ 9%] 288s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphptemplate PASSED [ 9%] 288s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphpmissing PASSED [ 9%] 288s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphpempty PASSED [ 9%] 288s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unicode PASSED [ 9%] 288s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_multiline PASSED [ 9%] 288s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_comments_before PASSED [ 9%] 288s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_emptyentry PASSED [ 9%] 288s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_hash_comment_with_equals PASSED [ 9%] 288s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_emptyentry_translated PASSED [ 9%] 288s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_newlines_in_value PASSED [ 9%] 288s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_spaces_in_name PASSED [ 9%] 288s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_named_array PASSED [ 9%] 288s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unnamed_array PASSED [ 9%] 288s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_named_nested_arrays PASSED [ 9%] 288s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unnamed_nested_arrays PASSED [ 9%] 288s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_help PASSED [ 9%] 288s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_simpleentity PASSED [ 9%] 288s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_multiline PASSED [ 9%] 288s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapednewlines PASSED [ 9%] 288s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedtabs PASSED [ 9%] 288s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedquotes PASSED [ 9%] 288s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedescape PASSED [ 9%] 288s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_singlequotes PASSED [ 9%] 288s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_empties PASSED [ 9%] 288s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_kdecomments PASSED [ 9%] 288s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_simpleentity PASSED [ 10%] 288s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_multiline PASSED [ 10%] 288s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapednewlines PASSED [ 10%] 288s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedtabs PASSED [ 10%] 288s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedquotes PASSED [ 10%] 288s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedescape PASSED [ 10%] 288s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_singlequotes PASSED [ 10%] 288s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_empties PASSED [ 10%] 288s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_kdecomments PASSED [ 10%] 288s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_help PASSED [ 10%] 288s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder PASSED [ 10%] 288s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_context PASSED [ 10%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_joinlines PASSED [ 10%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_escapedstr PASSED [ 10%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_missingaccesskey PASSED [ 10%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskeycase PASSED [ 10%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_types PASSED [ 10%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing PASSED [ 10%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey PASSED [ 10%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_source_no_amp_in_target PASSED [ 10%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_both_amp_and_accesskey PASSED [ 10%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey PASSED [ 10%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_entities_two PASSED [ 10%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_entities PASSED [ 10%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_comments_translator PASSED [ 10%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_retains_hashprefix PASSED [ 10%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_convertdtd PASSED [ 10%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_untranslated_with_template PASSED [ 10%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_untranslated_without_template PASSED [ 10%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_blank_source PASSED [ 10%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_newlines_escapes PASSED [ 10%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_simple PASSED [ 10%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_escape PASSED [ 10%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_quotes PASSED [ 10%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_amp PASSED [ 10%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_merging_entries_with_spaces_removed PASSED [ 10%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_preserving_spaces PASSED [ 10%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_preserving_spaces_after_value PASSED [ 10%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_comments PASSED [ 10%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_duplicates PASSED [ 11%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_joinlines PASSED [ 11%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_escapedstr PASSED [ 11%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_missingaccesskey PASSED [ 11%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskeycase PASSED [ 11%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_types PASSED [ 11%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing PASSED [ 11%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey PASSED [ 11%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_source_no_amp_in_target PASSED [ 11%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_both_amp_and_accesskey PASSED [ 11%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_amp_no_accesskey PASSED [ 11%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_entities_two PASSED [ 11%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_entities PASSED [ 11%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_comments_translator PASSED [ 11%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_retains_hashprefix PASSED [ 11%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_convertdtd PASSED [ 11%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_untranslated_with_template PASSED [ 11%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_untranslated_without_template PASSED [ 11%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_blank_source PASSED [ 11%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_newlines_escapes PASSED [ 11%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_simple PASSED [ 11%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_escape PASSED [ 11%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_quotes PASSED [ 11%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_amp PASSED [ 11%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_merging_entries_with_spaces_removed PASSED [ 11%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_preserving_spaces PASSED [ 11%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_preserving_spaces_after_value PASSED [ 11%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_comments PASSED [ 11%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_duplicates PASSED [ 11%] 288s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_help PASSED [ 11%] 288s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_defaults PASSED [ 11%] 288s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_root_name PASSED [ 11%] 288s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_value_name PASSED [ 11%] 288s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_key PASSED [ 11%] 288s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_default_namespace PASSED [ 11%] 288s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_namespace_prefix PASSED [ 11%] 288s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_indent_eight PASSED [ 11%] 288s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_noindent PASSED [ 11%] 288s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXMLCommand::test_help PASSED [ 11%] 288s tests/translate/convert/test_po2html.py::TestPO2Html::test_simple PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2Html::test_linebreaks PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2Html::test_replace_substrings PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_outside_translatable_content PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_within_translatable_content_not_embedded PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_embedded_within_translatable_content PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_without_value PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2Html::test_entities PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2Html::test_entities_template_vs_po_mismatch PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2Html::test_utf8_non_ascii_characters PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2Html::test_custom_entities_preserved PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2Html::test_escapes PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_auto_rtl PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_auto_ltr PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_added_when_missing PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_not_changed_without_lang_translation PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_translated PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_untranslated PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_fuzzy PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2Html::test_untranslated_attributes PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2Html::test_button_translation PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2Html::test_lang_attribute_only_on_html_tag PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2Html::test_data_translate_ignore_preserved PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2Html::test_translate_comment_directives_preserved PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2Html::test_data_translate_ignore_with_translation_in_po PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2Html::test_translate_comment_with_translation_in_po PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2Html::test_meta_social_media_tags_translation PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2Html::test_meta_non_translatable_tags_preserved PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_simple PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_linebreaks PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_replace_substrings PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_outside_translatable_content PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_within_translatable_content_not_embedded PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_embedded_within_translatable_content PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_without_value PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_entities PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_entities_template_vs_po_mismatch PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_utf8_non_ascii_characters PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_custom_entities_preserved PASSED [ 12%] 288s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_escapes PASSED [ 13%] 288s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_auto_rtl PASSED [ 13%] 288s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_auto_ltr PASSED [ 13%] 288s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_added_when_missing PASSED [ 13%] 288s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_not_changed_without_lang_translation PASSED [ 13%] 288s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_translated PASSED [ 13%] 288s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_untranslated PASSED [ 13%] 288s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_fuzzy PASSED [ 13%] 288s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_untranslated_attributes PASSED [ 13%] 288s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_button_translation PASSED [ 13%] 288s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_lang_attribute_only_on_html_tag PASSED [ 13%] 288s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_data_translate_ignore_preserved PASSED [ 13%] 288s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_translate_comment_directives_preserved PASSED [ 13%] 288s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_data_translate_ignore_with_translation_in_po PASSED [ 13%] 288s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_translate_comment_with_translation_in_po PASSED [ 13%] 288s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_meta_social_media_tags_translation PASSED [ 13%] 288s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_meta_non_translatable_tags_preserved PASSED [ 13%] 288s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_help PASSED [ 13%] 288s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_individual_files PASSED [ 13%] 288s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_fully_recursive PASSED [ 13%] 288s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_input_specified PASSED [ 13%] 288s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified PASSED [ 13%] 288s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_output_specified PASSED [ 13%] 288s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file PASSED [ 13%] 288s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file_and_templates_overwritten PASSED [ 13%] 288s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_empty_file PASSED [ 13%] 288s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_summary PASSED [ 13%] 288s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_description PASSED [ 13%] 288s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_location PASSED [ 13%] 288s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_comment PASSED [ 13%] 288s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_complex_icalendar PASSED [ 13%] 288s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_skip_fuzzy PASSED [ 13%] 288s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_include_fuzzy PASSED [ 13%] 288s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_no_template PASSED [ 13%] 288s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_template_location_not_in_source_file PASSED [ 13%] 288s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_completion_below_threshold PASSED [ 13%] 288s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_completion_above_threshold PASSED [ 13%] 288s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_empty_file PASSED [ 13%] 288s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_summary PASSED [ 13%] 288s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_description PASSED [ 14%] 288s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_location PASSED [ 14%] 288s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_comment PASSED [ 14%] 288s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_complex_icalendar PASSED [ 14%] 288s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_skip_fuzzy PASSED [ 14%] 288s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_include_fuzzy PASSED [ 14%] 288s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_no_template PASSED [ 14%] 288s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_template_location_not_in_source_file PASSED [ 14%] 288s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_completion_below_threshold PASSED [ 14%] 288s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_completion_above_threshold PASSED [ 14%] 288s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_help PASSED [ 14%] 288s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_help PASSED [ 14%] 288s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_convert PASSED [ 14%] 288s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_no_templates PASSED [ 14%] 288s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_simple PASSED [ 14%] 288s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_space_preservation PASSED [ 14%] 288s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_blank_entries PASSED [ 14%] 288s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_fuzzy PASSED [ 14%] 288s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_propertyless_template PASSED [ 14%] 288s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_empty_value PASSED [ 14%] 288s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_dialects_inno PASSED [ 14%] 288s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_misaligned_files PASSED [ 14%] 288s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_completion_below_threshold PASSED [ 14%] 288s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_completion_above_threshold PASSED [ 14%] 288s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_no_fuzzy PASSED [ 14%] 288s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_allow_fuzzy PASSED [ 14%] 288s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_missing_source PASSED [ 14%] 288s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_repeated_locations PASSED [ 14%] 288s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_no_templates PASSED [ 14%] 288s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_simple PASSED [ 14%] 288s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_space_preservation PASSED [ 14%] 288s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_blank_entries PASSED [ 14%] 288s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_fuzzy PASSED [ 14%] 288s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_propertyless_template PASSED [ 14%] 288s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_empty_value PASSED [ 14%] 288s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_dialects_inno PASSED [ 14%] 288s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_misaligned_files PASSED [ 14%] 288s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_completion_below_threshold PASSED [ 14%] 288s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_completion_above_threshold PASSED [ 14%] 288s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_no_fuzzy PASSED [ 15%] 288s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_allow_fuzzy PASSED [ 15%] 288s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_missing_source PASSED [ 15%] 288s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_repeated_locations PASSED [ 15%] 288s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_help PASSED [ 15%] 288s tests/translate/convert/test_po2json.py::TestPO2JSON::test_basic PASSED [ 15%] 288s tests/translate/convert/test_po2json.py::TestPO2JSON::test_ordering_serialize PASSED [ 15%] 288s tests/translate/convert/test_po2json.py::TestPO2JSON::test_dont_use_empty_translation PASSED [ 15%] 288s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_false_remove_untranslated_false PASSED [ 15%] 288s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_false_remove_untranslated_true PASSED [ 15%] 288s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_true_remove_untranslated_false PASSED [ 15%] 288s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_true_remove_untranslated_true PASSED [ 15%] 288s tests/translate/convert/test_po2md.py::TestPO2MD::test_help PASSED [ 15%] 288s tests/translate/convert/test_po2md.py::TestPO2MD::test_single_markdown_file_with_single_po PASSED [ 15%] 288s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_with_single_po PASSED [ 15%] 288s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_and_directory_of_po_files PASSED [ 15%] 288s tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_table XFAIL [ 15%] 288s tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_frontmatter PASSED [ 15%] 288s tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_translation_ignore_sections PASSED [ 15%] 288s tests/translate/convert/test_po2moz.py::TestPO2MozCommand::test_help PASSED [ 15%] 288s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_empty PASSED [ 15%] 288s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_simple PASSED [ 15%] 288s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_comment PASSED [ 15%] 288s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_ok_marker PASSED [ 15%] 288s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_completion_below_threshold PASSED [ 15%] 288s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_completion_above_threshold PASSED [ 15%] 288s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_skip_non_translatable_input PASSED [ 15%] 288s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_no_fuzzy PASSED [ 15%] 288s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_allow_fuzzy PASSED [ 15%] 288s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_mark_active PASSED [ 15%] 288s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_empty PASSED [ 15%] 288s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_simple PASSED [ 15%] 288s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_comment PASSED [ 15%] 288s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_ok_marker PASSED [ 15%] 288s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_completion_below_threshold PASSED [ 15%] 288s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_completion_above_threshold PASSED [ 15%] 288s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_skip_non_translatable_input PASSED [ 15%] 288s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_no_fuzzy PASSED [ 15%] 288s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_allow_fuzzy PASSED [ 15%] 288s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_mark_active PASSED [ 16%] 288s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_help PASSED [ 16%] 288s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_help PASSED [ 16%] 288s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert PASSED [ 16%] 288s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert_with_multiple_units PASSED [ 16%] 288s tests/translate/convert/test_po2oo.py::TestPO2OO::test_convertoo PASSED [ 16%] 288s tests/translate/convert/test_po2oo.py::TestPO2OO::test_pofilter PASSED [ 16%] 288s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_simple PASSED [ 16%] 288s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_escape PASSED [ 16%] 288s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_quotes PASSED [ 16%] 288s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_spaces PASSED [ 16%] 288s tests/translate/convert/test_po2oo.py::TestPO2OO::test_default_timestamp PASSED [ 16%] 288s tests/translate/convert/test_po2oo.py::TestPO2OO::test_escape_conversion PASSED [ 16%] 288s tests/translate/convert/test_po2oo.py::TestPO2OO::test_helpcontent_escapes PASSED [ 16%] 288s tests/translate/convert/test_po2oo.py::TestPO2OO::test_helpcontent_escapes2 PASSED [ 16%] 288s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_convertoo PASSED [ 16%] 288s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_pofilter PASSED [ 16%] 288s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_simple PASSED [ 16%] 288s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_escape PASSED [ 16%] 288s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_quotes PASSED [ 16%] 288s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_spaces PASSED [ 16%] 288s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_default_timestamp PASSED [ 16%] 288s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_escape_conversion PASSED [ 16%] 288s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_helpcontent_escapes PASSED [ 16%] 288s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_helpcontent_escapes2 PASSED [ 16%] 288s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_help PASSED [ 16%] 288s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp PASSED [ 16%] 288s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp_notemplate PASSED [ 16%] 288s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp_empty_template PASSED [ 16%] 288s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_simple PASSED [ 16%] 288s tests/translate/convert/test_po2php.py::TestPO2Php::test_space_preservation PASSED [ 16%] 288s tests/translate/convert/test_po2php.py::TestPO2Php::test_preserve_unused_statement PASSED [ 16%] 288s tests/translate/convert/test_po2php.py::TestPO2Php::test_not_translated_multiline PASSED [ 16%] 288s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_blank_entries PASSED [ 16%] 288s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_fuzzy PASSED [ 16%] 288s tests/translate/convert/test_po2php.py::TestPO2Php::test_locations_with_spaces PASSED [ 16%] 288s tests/translate/convert/test_po2php.py::TestPO2Php::test_inline_comments PASSED [ 16%] 288s tests/translate/convert/test_po2php.py::TestPO2Php::test_block_comments PASSED [ 16%] 288s tests/translate/convert/test_po2php.py::TestPO2Php::test_named_variables PASSED [ 16%] 288s tests/translate/convert/test_po2php.py::TestPO2Php::test_multiline PASSED [ 17%] 288s tests/translate/convert/test_po2php.py::TestPO2Php::test_hash_comment PASSED [ 17%] 288s tests/translate/convert/test_po2php.py::TestPO2Php::test_arrays PASSED [ 17%] 288s tests/translate/convert/test_po2php.py::TestPO2Php::test_named_nested_array PASSED [ 17%] 288s tests/translate/convert/test_po2php.py::TestPO2Php::test_unnamed_nested_arrays PASSED [ 17%] 288s tests/translate/convert/test_po2php.py::TestPO2Php::test_return_array_with_comments PASSED [ 17%] 288s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_propertyless_template XFAIL [ 17%] 288s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp PASSED [ 17%] 288s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp_notemplate PASSED [ 17%] 288s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp_empty_template PASSED [ 17%] 288s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_simple PASSED [ 17%] 288s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_space_preservation PASSED [ 17%] 288s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_preserve_unused_statement PASSED [ 17%] 288s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_not_translated_multiline PASSED [ 17%] 288s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_blank_entries PASSED [ 17%] 288s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_fuzzy PASSED [ 17%] 288s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_locations_with_spaces PASSED [ 17%] 288s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_inline_comments PASSED [ 17%] 288s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_block_comments PASSED [ 17%] 288s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_named_variables PASSED [ 17%] 288s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_multiline PASSED [ 17%] 288s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_hash_comment PASSED [ 17%] 288s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_arrays PASSED [ 17%] 288s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_named_nested_array PASSED [ 17%] 288s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_unnamed_nested_arrays PASSED [ 17%] 288s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_return_array_with_comments PASSED [ 17%] 288s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_propertyless_template XFAIL [ 17%] 288s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_help PASSED [ 17%] 288s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_simple PASSED [ 17%] 288s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated PASSED [ 17%] 288s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_hard_newlines_preserved PASSED [ 17%] 288s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_space_preservation PASSED [ 17%] 288s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_no_value PASSED [ 17%] 288s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_no_separator PASSED [ 17%] 288s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_value_no_key PASSED [ 17%] 288s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_blank_entries PASSED [ 17%] 288s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_fuzzy PASSED [ 17%] 288s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys PASSED [ 17%] 288s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey PASSED [ 17%] 288s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_margin_whitespace PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_all_whitespace PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_propertyless_template PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_delimiters PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_empty_value PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_personalities PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_simple PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_multiline PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_multiline2 PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_comments PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_unchanged PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_blank PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_gaia_plurals PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_duplicates PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_gwt_plurals PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_utf16_with_empty_lines PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_simple PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_hard_newlines_preserved PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_space_preservation PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_no_value PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_no_separator PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_value_no_key PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_blank_entries PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_fuzzy PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys_missing_accesskey PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_margin_whitespace PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_all_whitespace PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_propertyless_template PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_delimiters PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_empty_value PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_personalities PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_simple PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_multiline PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_multiline2 PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_comments PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_unchanged PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_blank PASSED [ 18%] 288s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_gaia_plurals PASSED [ 19%] 288s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_duplicates PASSED [ 19%] 288s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_gwt_plurals PASSED [ 19%] 288s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_utf16_with_empty_lines PASSED [ 19%] 288s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_help PASSED [ 19%] 288s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_help PASSED [ 19%] 288s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert PASSED [ 19%] 288s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_quotes PASSED [ 19%] 288s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment PASSED [ 19%] 289s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment_dos_eol PASSED [ 19%] 289s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_double_string PASSED [ 19%] 289s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_popup PASSED [ 19%] 289s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_discardable PASSED [ 19%] 289s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_menuex PASSED [ 19%] 289s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_newlines PASSED [ 19%] 289s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment_after PASSED [ 19%] 289s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_block_language PASSED [ 19%] 289s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_output_encoding PASSED [ 19%] 289s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_quotes_strintable PASSED [ 19%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_simpleunit PASSED [ 19%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_basic PASSED [ 19%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_multiline PASSED [ 19%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapednewlines PASSED [ 19%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapedtabs PASSED [ 19%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapedquotes PASSED [ 19%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_exclusions PASSED [ 19%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments PASSED [ 19%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingcomment PASSED [ 19%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingduplicatecomment PASSED [ 19%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingduplicatecommentwithwhitespace PASSED [ 19%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments PASSED [ 19%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments_existingcomment PASSED [ 19%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments_existingduplicatecomment PASSED [ 19%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments PASSED [ 19%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments_existingduplicatecomment PASSED [ 19%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments_existingcomment PASSED [ 19%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_existingcomments PASSED [ 19%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_plus_in_resourcekey PASSED [ 19%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_special_chars_in_resourcekey PASSED [ 19%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_simpleunit PASSED [ 20%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_basic PASSED [ 20%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_multiline PASSED [ 20%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapednewlines PASSED [ 20%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapedtabs PASSED [ 20%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapedquotes PASSED [ 20%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_exclusions PASSED [ 20%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments PASSED [ 20%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingcomment PASSED [ 20%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingduplicatecomment PASSED [ 20%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingduplicatecommentwithwhitespace PASSED [ 20%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments PASSED [ 20%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments_existingcomment PASSED [ 20%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments_existingduplicatecomment PASSED [ 20%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments PASSED [ 20%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments_existingduplicatecomment PASSED [ 20%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments_existingcomment PASSED [ 20%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_existingcomments PASSED [ 20%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_plus_in_resourcekey PASSED [ 20%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_special_chars_in_resourcekey PASSED [ 20%] 289s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_help PASSED [ 20%] 289s tests/translate/convert/test_po2sub.py::TestPO2Sub::test_subrip PASSED [ 20%] 289s tests/translate/convert/test_po2sub.py::TestPO2SubCommand::test_subrip PASSED [ 20%] 289s tests/translate/convert/test_po2sub.py::TestPO2SubCommand::test_help PASSED [ 20%] 289s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert_empty PASSED [ 20%] 289s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert PASSED [ 20%] 289s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert_marked_untranslated PASSED [ 20%] 289s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert_empty PASSED [ 20%] 289s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert PASSED [ 20%] 289s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert_marked_untranslated PASSED [ 20%] 289s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_help PASSED [ 20%] 289s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_basic PASSED [ 20%] 289s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_sourcelanguage PASSED [ 20%] 289s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_targetlanguage PASSED [ 20%] 289s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_multiline PASSED [ 20%] 289s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapednewlines PASSED [ 20%] 289s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapedtabs PASSED [ 20%] 289s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapedquotes PASSED [ 20%] 289s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_exclusions PASSED [ 20%] 289s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_nonascii PASSED [ 21%] 289s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_nonecomments PASSED [ 21%] 289s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_otherscomments PASSED [ 21%] 289s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_sourcecomments PASSED [ 21%] 289s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_typecomments PASSED [ 21%] 289s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_basic PASSED [ 21%] 289s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_sourcelanguage PASSED [ 21%] 289s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_targetlanguage PASSED [ 21%] 289s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_multiline PASSED [ 21%] 289s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapednewlines PASSED [ 21%] 289s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapedtabs PASSED [ 21%] 289s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapedquotes PASSED [ 21%] 289s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_exclusions PASSED [ 21%] 289s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_nonascii PASSED [ 21%] 289s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_nonecomments PASSED [ 21%] 289s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_otherscomments PASSED [ 21%] 289s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_sourcecomments PASSED [ 21%] 289s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_typecomments PASSED [ 21%] 289s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_help PASSED [ 21%] 289s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_context PASSED [ 21%] 289s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_simple_convert PASSED [ 21%] 289s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_nested_convert PASSED [ 21%] 289s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_template_required PASSED [ 21%] 289s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_untranslated_uses_source PASSED [ 21%] 289s tests/translate/convert/test_po2ts.py::TestPO2TS::test_simpleunit PASSED [ 21%] 289s tests/translate/convert/test_po2ts.py::TestPO2TS::test_simple_unicode_unit PASSED [ 21%] 289s tests/translate/convert/test_po2ts.py::TestPO2TS::test_fullunit PASSED [ 21%] 289s tests/translate/convert/test_po2ts.py::TestPO2TS::test_fuzzyunit PASSED [ 21%] 289s tests/translate/convert/test_po2ts.py::TestPO2TS::test_obsolete PASSED [ 21%] 289s tests/translate/convert/test_po2ts.py::TestPO2TS::test_duplicates PASSED [ 21%] 289s tests/translate/convert/test_po2ts.py::TestPO2TS::test_linebreak PASSED [ 21%] 289s tests/translate/convert/test_po2ts.py::TestPO2TS::test_linebreak_consecutive PASSED [ 21%] 289s tests/translate/convert/test_po2ts.py::TestPO2TS::test_plural PASSED [ 21%] 289s tests/translate/convert/test_po2ts.py::TestPO2TS::test_plural_fuzzy PASSED [ 21%] 289s tests/translate/convert/test_po2ts.py::TestPO2TS::test_unit_without_location PASSED [ 21%] 289s tests/translate/convert/test_po2ts.py::TestPO2TS::test_mixed_units_with_and_without_location PASSED [ 21%] 289s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_simpleunit PASSED [ 21%] 289s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_simple_unicode_unit PASSED [ 21%] 289s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_fullunit PASSED [ 21%] 289s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_fuzzyunit PASSED [ 22%] 289s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_obsolete PASSED [ 22%] 289s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_duplicates PASSED [ 22%] 289s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_linebreak PASSED [ 22%] 289s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_linebreak_consecutive PASSED [ 22%] 289s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_plural PASSED [ 22%] 289s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_plural_fuzzy PASSED [ 22%] 289s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_unit_without_location PASSED [ 22%] 289s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_mixed_units_with_and_without_location PASSED [ 22%] 289s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_help PASSED [ 22%] 289s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_basic PASSED [ 22%] 289s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_nonascii PASSED [ 22%] 289s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_blank_handling PASSED [ 22%] 289s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_fuzzy_handling PASSED [ 22%] 289s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_obsolete_ignore PASSED [ 22%] 289s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_header_ignore PASSED [ 22%] 289s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_convert_completion_below_threshold PASSED [ 22%] 289s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_convert_completion_above_threshold PASSED [ 22%] 289s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_substring_replacement PASSED [ 22%] 289s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_duplicate_text_segment_based_replacement PASSED [ 22%] 289s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_dokuwiki_flavour_segmentation PASSED [ 22%] 289s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_basic PASSED [ 22%] 289s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_nonascii PASSED [ 22%] 289s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_blank_handling PASSED [ 22%] 289s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_fuzzy_handling PASSED [ 22%] 289s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_obsolete_ignore PASSED [ 22%] 289s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_header_ignore PASSED [ 22%] 289s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_convert_completion_below_threshold PASSED [ 22%] 289s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_convert_completion_above_threshold PASSED [ 22%] 289s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_substring_replacement PASSED [ 22%] 289s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_duplicate_text_segment_based_replacement PASSED [ 22%] 289s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_dokuwiki_flavour_segmentation PASSED [ 22%] 289s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_help PASSED [ 22%] 289s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_basic PASSED [ 22%] 289s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_unicode PASSED [ 22%] 289s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_ordering_serialize PASSED [ 22%] 289s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_markmin PASSED [ 22%] 289s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_minimal PASSED [ 22%] 289s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_basic PASSED [ 22%] 289s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_multiline PASSED [ 23%] 289s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapednewlines PASSED [ 23%] 289s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapedtabs PASSED [ 23%] 289s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapedquotes PASSED [ 23%] 289s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_locationcomments PASSED [ 23%] 289s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_othercomments PASSED [ 23%] 289s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_automaticcomments PASSED [ 23%] 289s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_header PASSED [ 23%] 289s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_fuzzy PASSED [ 23%] 289s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_germanic_plurals PASSED [ 23%] 289s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_funny_plurals PASSED [ 23%] 289s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_language_tags PASSED [ 23%] 289s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_variables PASSED [ 23%] 289s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_approved PASSED [ 23%] 289s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_empty_PO PASSED [ 23%] 289s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_no_templates PASSED [ 23%] 289s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_simple_output PASSED [ 23%] 289s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_simple PASSED [ 23%] 289s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_translated PASSED [ 23%] 289s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_no_fuzzy PASSED [ 23%] 289s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_allow_fuzzy PASSED [ 23%] 289s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_nested PASSED [ 23%] 289s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_completion_below_threshold PASSED [ 23%] 289s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_completion_above_threshold PASSED [ 23%] 289s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_empty_PO PASSED [ 23%] 289s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_no_templates PASSED [ 23%] 289s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_simple_output PASSED [ 23%] 289s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_simple PASSED [ 23%] 289s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_translated PASSED [ 23%] 289s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_no_fuzzy PASSED [ 23%] 289s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_allow_fuzzy PASSED [ 23%] 289s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_nested PASSED [ 23%] 289s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_completion_below_threshold PASSED [ 23%] 289s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_completion_above_threshold PASSED [ 23%] 289s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_help PASSED [ 23%] 289s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_convertpot_blank PASSED [ 23%] 289s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_convertpot_blank_plurals PASSED [ 23%] 289s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_simple PASSED [ 23%] 289s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_messages_marked_fuzzy PASSED [ 23%] 289s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_plurals_with_fuzzy_matching PASSED [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_change XFAIL [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_change PASSED [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_and_whitespace_change PASSED [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_ambiguous_with_disambiguous PASSED [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_accelerator_changes XFAIL [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_lines_cut_differently XFAIL [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_automatic_comments_dont_duplicate PASSED [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_automatic_comments_new_overrides_old PASSED [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_comments_with_blank_comment_lines PASSED [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_empty_commentlines PASSED [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgidcomments PASSED [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_with_msgidcomment PASSED [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_plurals PASSED [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_obsoleting_messages PASSED [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_not_obsoleting_empty_messages PASSED [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_new_before_obsolete PASSED [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_resurrect_obsolete_messages PASSED [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_resurrect_obsolete_messages_into_msgidcomment PASSED [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_header_initialisation PASSED [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_comments PASSED [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_typecomments PASSED [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgctxt PASSED [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgctxt_multiline PASSED [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgid_merge_on_location PASSED [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgid_merge_on_id PASSED [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_empty_msgid PASSED [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_migrate_msgidcomment_to_msgctxt PASSED [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_obsolete_msgctxt PASSED [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_small_strings PASSED [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_convertpot_blank PASSED [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_convertpot_blank_plurals PASSED [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_simple PASSED [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_messages_marked_fuzzy PASSED [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_plurals_with_fuzzy_matching PASSED [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_change XFAIL [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_change PASSED [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_and_whitespace_change PASSED [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_ambiguous_with_disambiguous PASSED [ 24%] 289s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_accelerator_changes XFAIL [ 25%] 289s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_lines_cut_differently XFAIL [ 25%] 289s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_automatic_comments_dont_duplicate PASSED [ 25%] 289s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_automatic_comments_new_overrides_old PASSED [ 25%] 289s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_comments_with_blank_comment_lines PASSED [ 25%] 289s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_empty_commentlines PASSED [ 25%] 289s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgidcomments PASSED [ 25%] 289s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_with_msgidcomment PASSED [ 25%] 289s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_plurals PASSED [ 25%] 289s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_obsoleting_messages PASSED [ 25%] 289s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_not_obsoleting_empty_messages PASSED [ 25%] 289s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_new_before_obsolete PASSED [ 25%] 289s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_resurrect_obsolete_messages PASSED [ 25%] 289s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_resurrect_obsolete_messages_into_msgidcomment PASSED [ 25%] 289s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_header_initialisation PASSED [ 25%] 289s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_comments PASSED [ 25%] 289s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_typecomments PASSED [ 25%] 289s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgctxt PASSED [ 25%] 289s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgctxt_multiline PASSED [ 25%] 289s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgid_merge_on_location PASSED [ 25%] 289s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgid_merge_on_id PASSED [ 25%] 289s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_empty_msgid PASSED [ 25%] 289s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_migrate_msgidcomment_to_msgctxt PASSED [ 25%] 289s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_obsolete_msgctxt PASSED [ 25%] 289s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_small_strings PASSED [ 25%] 289s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_help PASSED [ 25%] 289s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_no_endlines_added PASSED [ 25%] 289s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_uncomment_contributors PASSED [ 25%] 289s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_multiline_comment_newlines PASSED [ 25%] 289s tests/translate/convert/test_prop2po.py::TestProp2PO::test_simpleentry PASSED [ 25%] 289s tests/translate/convert/test_prop2po.py::TestProp2PO::test_convertprop PASSED [ 25%] 289s tests/translate/convert/test_prop2po.py::TestProp2PO::test_no_value_entry PASSED [ 25%] 289s tests/translate/convert/test_prop2po.py::TestProp2PO::test_no_separator_entry PASSED [ 25%] 289s tests/translate/convert/test_prop2po.py::TestProp2PO::test_value_no_key_entry PASSED [ 25%] 289s tests/translate/convert/test_prop2po.py::TestProp2PO::test_tab_at_end_of_string PASSED [ 25%] 289s tests/translate/convert/test_prop2po.py::TestProp2PO::test_tab_at_start_of_value PASSED [ 25%] 289s tests/translate/convert/test_prop2po.py::TestProp2PO::test_unicode PASSED [ 25%] 289s tests/translate/convert/test_prop2po.py::TestProp2PO::test_multiline_escaping PASSED [ 25%] 289s tests/translate/convert/test_prop2po.py::TestProp2PO::test_comments PASSED [ 25%] 289s tests/translate/convert/test_prop2po.py::TestProp2PO::test_multiline_comments PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2PO::test_folding_accesskeys PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2PO::test_dont_translate PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2PO::test_duplicate_locations_mozilla PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2PO::test_emptyproperty PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2PO::test_emptyproperty_translated PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2PO::test_newlines_in_value PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2PO::test_header_comments PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2PO::test_unassociated_comment_order PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2PO::test_x_header PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2PO::test_gaia_plurals PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2PO::test_successive_gaia_plurals PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2PO::test_duplicate_keys PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2PO::test_gwt_plurals PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2PO::test_strings_bilingual_simple PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2PO::test_strings_bilingual_multiline PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_simpleentry PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_convertprop PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_no_value_entry PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_no_separator_entry PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_value_no_key_entry PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_tab_at_end_of_string PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_tab_at_start_of_value PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_unicode PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_multiline_escaping PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_comments PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_multiline_comments PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_folding_accesskeys PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_dont_translate PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_duplicate_locations_mozilla PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_emptyproperty PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_emptyproperty_translated PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_newlines_in_value PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_header_comments PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_unassociated_comment_order PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_x_header PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_gaia_plurals PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_successive_gaia_plurals PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_duplicate_keys PASSED [ 26%] 289s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_gwt_plurals PASSED [ 27%] 289s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_strings_bilingual_simple PASSED [ 27%] 289s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_strings_bilingual_multiline PASSED [ 27%] 289s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_help PASSED [ 27%] 289s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_help PASSED [ 27%] 289s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert PASSED [ 27%] 289s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf16 PASSED [ 27%] 289s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong PASSED [ 27%] 289s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf8 PASSED [ 27%] 289s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_menuex PASSED [ 27%] 289s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_simple PASSED [ 27%] 289s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_multiple_units PASSED [ 27%] 289s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_automaticcomments PASSED [ 27%] 289s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_translatorcomments PASSED [ 27%] 289s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_locations PASSED [ 27%] 289s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple PASSED [ 27%] 289s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_multiple_units PASSED [ 27%] 289s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_automaticcomments PASSED [ 27%] 289s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_translatorcomments PASSED [ 27%] 289s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_locations PASSED [ 27%] 289s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_help PASSED [ 27%] 289s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_pot PASSED [ 27%] 289s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_po PASSED [ 27%] 289s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_remove_duplicates PASSED [ 27%] 289s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_convert_empty PASSED [ 27%] 289s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_converttiki_defaults PASSED [ 27%] 289s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_converttiki_includeunused PASSED [ 27%] 289s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_convert_empty PASSED [ 27%] 289s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_converttiki_defaults PASSED [ 27%] 289s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_converttiki_includeunused PASSED [ 27%] 289s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_help PASSED [ 27%] 289s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_simple_convert PASSED [ 27%] 289s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_nested_convert PASSED [ 27%] 289s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_comment_extraction PASSED [ 27%] 289s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_merge_with_template PASSED [ 27%] 289s tests/translate/convert/test_ts2po.py::TestTS2PO::test_blank PASSED [ 27%] 289s tests/translate/convert/test_ts2po.py::TestTS2PO::test_basic PASSED [ 27%] 289s tests/translate/convert/test_ts2po.py::TestTS2PO::test_unfinished PASSED [ 27%] 289s tests/translate/convert/test_ts2po.py::TestTS2PO::test_multiline PASSED [ 27%] 289s tests/translate/convert/test_ts2po.py::TestTS2PO::test_obsolete PASSED [ 28%] 289s tests/translate/convert/test_ts2po.py::TestTS2PO::test_comment PASSED [ 28%] 289s tests/translate/convert/test_ts2po.py::TestTS2PO::test_extracomment PASSED [ 28%] 289s tests/translate/convert/test_ts2po.py::TestTS2PO::test_emptycontext PASSED [ 28%] 289s tests/translate/convert/test_ts2po.py::TestTS2PO::test_plural PASSED [ 28%] 289s tests/translate/convert/test_ts2po.py::TestTS2PO::test_plural_unfinished PASSED [ 28%] 289s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_blank PASSED [ 28%] 289s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_basic PASSED [ 28%] 289s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_unfinished PASSED [ 28%] 289s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_multiline PASSED [ 28%] 289s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_obsolete PASSED [ 28%] 289s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_comment PASSED [ 28%] 289s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_extracomment PASSED [ 28%] 289s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_emptycontext PASSED [ 28%] 289s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_plural PASSED [ 28%] 289s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_plural_unfinished PASSED [ 28%] 289s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_help PASSED [ 28%] 289s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_convert_empty PASSED [ 28%] 289s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_keep_duplicates PASSED [ 28%] 289s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_drop_duplicates PASSED [ 28%] 289s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_simple PASSED [ 28%] 289s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_multiple_units PASSED [ 28%] 289s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_carriage_return PASSED [ 28%] 289s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_merge PASSED [ 28%] 289s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_no_segmentation PASSED [ 28%] 289s tests/translate/convert/test_txt2po.py::TestDoku2po::test_convert_empty PASSED [ 28%] 289s tests/translate/convert/test_txt2po.py::TestDoku2po::test_keep_duplicates PASSED [ 28%] 289s tests/translate/convert/test_txt2po.py::TestDoku2po::test_drop_duplicates PASSED [ 28%] 289s tests/translate/convert/test_txt2po.py::TestDoku2po::test_basic PASSED [ 28%] 289s tests/translate/convert/test_txt2po.py::TestDoku2po::test_bullet_list PASSED [ 28%] 289s tests/translate/convert/test_txt2po.py::TestDoku2po::test_numbered_list PASSED [ 28%] 289s tests/translate/convert/test_txt2po.py::TestDoku2po::test_spacing PASSED [ 28%] 289s tests/translate/convert/test_txt2po.py::TestDoku2po::test_merge PASSED [ 28%] 289s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_convert_empty PASSED [ 28%] 289s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_keep_duplicates PASSED [ 28%] 289s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_drop_duplicates PASSED [ 28%] 289s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_simple PASSED [ 28%] 289s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_multiple_units PASSED [ 28%] 289s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_carriage_return PASSED [ 28%] 289s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_merge PASSED [ 29%] 289s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_no_segmentation PASSED [ 29%] 289s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_help PASSED [ 29%] 289s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_basic PASSED [ 29%] 289s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_unicode PASSED [ 29%] 289s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_markmin PASSED [ 29%] 289s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_help PASSED [ 29%] 289s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert PASSED [ 29%] 289s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_minimal PASSED [ 29%] 289s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_basic PASSED [ 29%] 289s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_translatorcomments PASSED [ 29%] 289s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_autocomment PASSED [ 29%] 289s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_locations PASSED [ 29%] 289s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_fuzzy PASSED [ 29%] 289s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_plurals PASSED [ 29%] 289s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_minimal PASSED [ 29%] 289s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_basic PASSED [ 29%] 289s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_translatorcomments PASSED [ 29%] 289s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_autocomment PASSED [ 29%] 289s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_locations PASSED [ 29%] 289s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_fuzzy PASSED [ 29%] 289s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_plurals PASSED [ 29%] 289s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_help PASSED [ 29%] 289s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_simple_convert PASSED [ 29%] 289s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_minimal PASSED [ 29%] 289s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_basic PASSED [ 29%] 289s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_translatorcomments PASSED [ 29%] 289s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_autocomment PASSED [ 29%] 289s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_locations PASSED [ 29%] 289s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_fuzzy PASSED [ 29%] 289s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_plurals PASSED [ 29%] 289s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_help PASSED [ 29%] 289s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_preserve_filename PASSED [ 29%] 289s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_pot PASSED [ 29%] 289s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_po PASSED [ 29%] 289s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_remove_duplicates PASSED [ 29%] 289s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_convert_empty_YAML PASSED [ 29%] 289s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_simple_output PASSED [ 29%] 289s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_simple PASSED [ 29%] 289s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_nested PASSED [ 30%] 289s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_no_duplicates XFAIL [ 30%] 289s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_convert_with_template PASSED [ 30%] 289s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_comment_extraction PASSED [ 30%] 289s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_comment_extraction_nested PASSED [ 30%] 289s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_convert_empty_YAML PASSED [ 30%] 289s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_simple_output PASSED [ 30%] 289s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_simple PASSED [ 30%] 289s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_nested PASSED [ 30%] 289s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_no_duplicates XFAIL [ 30%] 289s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_convert_with_template PASSED [ 30%] 289s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_comment_extraction PASSED [ 30%] 289s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_comment_extraction_nested PASSED [ 30%] 289s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_help PASSED [ 30%] 289s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_empty_target PASSED [ 30%] 289s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_ellipsis PASSED [ 30%] 289s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_spacestart_spaceend PASSED [ 30%] 289s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_start_capitals PASSED [ 30%] 289s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_end_punc PASSED [ 30%] 289s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_combinations PASSED [ 30%] 289s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_nothing_to_do PASSED [ 30%] 289s tests/translate/filters/test_checks.py::test_defaults PASSED [ 30%] 289s tests/translate/filters/test_checks.py::test_construct PASSED [ 30%] 289s tests/translate/filters/test_checks.py::test_accelerator_markers PASSED [ 30%] 289s tests/translate/filters/test_checks.py::test_messages PASSED [ 30%] 289s tests/translate/filters/test_checks.py::test_accelerators PASSED [ 30%] 289s tests/translate/filters/test_checks.py::test_acceleratedvariables XFAIL [ 30%] 289s tests/translate/filters/test_checks.py::test_acronyms PASSED [ 30%] 289s tests/translate/filters/test_checks.py::test_blank PASSED [ 30%] 289s tests/translate/filters/test_checks.py::test_brackets PASSED [ 30%] 289s tests/translate/filters/test_checks.py::test_compendiumconflicts PASSED [ 30%] 289s tests/translate/filters/test_checks.py::test_doublequoting PASSED [ 30%] 289s tests/translate/filters/test_checks.py::test_doublespacing PASSED [ 30%] 289s tests/translate/filters/test_checks.py::test_doublewords PASSED [ 30%] 289s tests/translate/filters/test_checks.py::test_endpunc PASSED [ 30%] 289s tests/translate/filters/test_checks.py::test_endwhitespace PASSED [ 30%] 289s tests/translate/filters/test_checks.py::test_escapes PASSED [ 30%] 289s tests/translate/filters/test_checks.py::test_newlines PASSED [ 30%] 289s tests/translate/filters/test_checks.py::test_tabs PASSED [ 30%] 289s tests/translate/filters/test_checks.py::test_filepaths PASSED [ 31%] 289s tests/translate/filters/test_checks.py::test_kdecomments PASSED [ 31%] 289s tests/translate/filters/test_checks.py::test_long PASSED [ 31%] 289s tests/translate/filters/test_checks.py::test_musttranslatewords XFAIL [ 31%] 289s tests/translate/filters/test_checks.py::test_notranslatewords PASSED [ 31%] 289s tests/translate/filters/test_checks.py::test_numbers PASSED [ 31%] 289s tests/translate/filters/test_checks.py::test_persian_numbers PASSED [ 31%] 289s tests/translate/filters/test_checks.py::test_bengali_numbers PASSED [ 31%] 289s tests/translate/filters/test_checks.py::test_arabic_numbers PASSED [ 31%] 289s tests/translate/filters/test_checks.py::test_assamese_numbers PASSED [ 31%] 289s tests/translate/filters/test_checks.py::test_options PASSED [ 31%] 289s tests/translate/filters/test_checks.py::test_printf PASSED [ 31%] 289s tests/translate/filters/test_checks.py::test_pythonbraceformat PASSED [ 31%] 289s tests/translate/filters/test_checks.py::test_puncspacing PASSED [ 31%] 289s tests/translate/filters/test_checks.py::test_purepunc PASSED [ 31%] 289s tests/translate/filters/test_checks.py::test_sentencecount PASSED [ 31%] 289s tests/translate/filters/test_checks.py::test_short PASSED [ 31%] 289s tests/translate/filters/test_checks.py::test_singlequoting PASSED [ 31%] 289s tests/translate/filters/test_checks.py::test_vietnamese_singlequoting PASSED [ 31%] 289s tests/translate/filters/test_checks.py::test_persian_single_and_double_quote_fail_at_the_same_time XFAIL [ 31%] 289s tests/translate/filters/test_checks.py::test_persian_quoting PASSED [ 31%] 289s tests/translate/filters/test_checks.py::test_simplecaps PASSED [ 31%] 289s tests/translate/filters/test_checks.py::test_spellcheck SKIPPED (Spe...) [ 31%] 289s tests/translate/filters/test_checks.py::test_startcaps PASSED [ 31%] 289s tests/translate/filters/test_checks.py::test_startpunc PASSED [ 31%] 289s tests/translate/filters/test_checks.py::test_startwhitespace PASSED [ 31%] 289s tests/translate/filters/test_checks.py::test_unchanged PASSED [ 31%] 289s tests/translate/filters/test_checks.py::test_untranslated PASSED [ 31%] 289s tests/translate/filters/test_checks.py::test_validchars PASSED [ 31%] 289s tests/translate/filters/test_checks.py::test_minimalchecker PASSED [ 31%] 289s tests/translate/filters/test_checks.py::test_reducedchecker PASSED [ 31%] 289s tests/translate/filters/test_checks.py::test_variables_kde PASSED [ 31%] 289s tests/translate/filters/test_checks.py::test_variables_gnome PASSED [ 31%] 289s tests/translate/filters/test_checks.py::test_variables_mozilla PASSED [ 31%] 289s tests/translate/filters/test_checks.py::test_variables_openoffice PASSED [ 31%] 289s tests/translate/filters/test_checks.py::test_variables_cclicense PASSED [ 31%] 289s tests/translate/filters/test_checks.py::test_variables_ios PASSED [ 31%] 289s tests/translate/filters/test_checks.py::test_xmltags PASSED [ 31%] 289s tests/translate/filters/test_checks.py::test_bengali_mozilla_inverted_xmltags XFAIL [ 31%] 289s tests/translate/filters/test_checks.py::test_ooxmltags PASSED [ 32%] 289s tests/translate/filters/test_checks.py::test_functions PASSED [ 32%] 289s tests/translate/filters/test_checks.py::test_emails PASSED [ 32%] 289s tests/translate/filters/test_checks.py::test_urls PASSED [ 32%] 289s tests/translate/filters/test_checks.py::test_simpleplurals PASSED [ 32%] 289s tests/translate/filters/test_checks.py::test_nplurals PASSED [ 32%] 289s tests/translate/filters/test_checks.py::test_credits PASSED [ 32%] 289s tests/translate/filters/test_checks.py::test_gconf PASSED [ 32%] 289s tests/translate/filters/test_checks.py::test_validxml PASSED [ 32%] 289s tests/translate/filters/test_checks.py::test_hassuggestion PASSED [ 32%] 289s tests/translate/filters/test_checks.py::test_dialogsizes PASSED [ 32%] 290s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers PASSED [ 32%] 290s tests/translate/filters/test_checks.py::test_mozilla_no_accelerators_for_indic PASSED [ 32%] 290s tests/translate/filters/test_checks.py::test_noaccelerators_only_in_mozilla_checker PASSED [ 32%] 290s tests/translate/filters/test_checks.py::test_ensure_accelerators_not_in_target_if_not_in_source PASSED [ 32%] 290s tests/translate/filters/test_checks.py::test_ensure_bengali_languages_script_is_correct PASSED [ 32%] 290s tests/translate/filters/test_checks.py::test_category PASSED [ 32%] 290s tests/translate/filters/test_decoration.py::test_spacestart PASSED [ 32%] 290s tests/translate/filters/test_decoration.py::test_isvalidaccelerator PASSED [ 32%] 290s tests/translate/filters/test_decoration.py::test_find_marked_variables PASSED [ 32%] 290s tests/translate/filters/test_decoration.py::test_getnumbers PASSED [ 32%] 290s tests/translate/filters/test_decoration.py::test_getfunctions PASSED [ 32%] 290s tests/translate/filters/test_pofilter.py::TestPOFilter::test_simplepass PASSED [ 32%] 290s tests/translate/filters/test_pofilter.py::TestPOFilter::test_simplefail PASSED [ 32%] 290s tests/translate/filters/test_pofilter.py::TestPOFilter::test_variables_across_lines PASSED [ 32%] 290s tests/translate/filters/test_pofilter.py::TestPOFilter::test_ignore_if_already_marked PASSED [ 32%] 290s tests/translate/filters/test_pofilter.py::TestPOFilter::test_non_existent_check PASSED [ 32%] 290s tests/translate/filters/test_pofilter.py::TestPOFilter::test_list_all_tests PASSED [ 32%] 290s tests/translate/filters/test_pofilter.py::TestPOFilter::test_test_against_fuzzy PASSED [ 32%] 290s tests/translate/filters/test_pofilter.py::TestPOFilter::test_test_against_review PASSED [ 32%] 290s tests/translate/filters/test_pofilter.py::TestPOFilter::test_isfuzzy PASSED [ 32%] 290s tests/translate/filters/test_pofilter.py::TestPOFilter::test_isreview PASSED [ 32%] 290s tests/translate/filters/test_pofilter.py::TestPOFilter::test_notes PASSED [ 32%] 290s tests/translate/filters/test_pofilter.py::TestPOFilter::test_unicode PASSED [ 32%] 290s tests/translate/filters/test_pofilter.py::TestPOFilter::test_preconditions PASSED [ 32%] 290s tests/translate/filters/test_pofilter.py::TestPOFilter::test_msgid_comments PASSED [ 32%] 290s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_simplepass PASSED [ 32%] 290s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_simplefail PASSED [ 32%] 290s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_variables_across_lines PASSED [ 32%] 290s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_ignore_if_already_marked PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_non_existent_check PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_list_all_tests PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_test_against_fuzzy PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_test_against_review PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_isfuzzy PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_isreview PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_notes PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_unicode PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_preconditions PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_simplepass PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_simplefail PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_variables_across_lines PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_ignore_if_already_marked PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_non_existent_check PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_list_all_tests PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_notes PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_unicode PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_preconditions PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_test_against_fuzzy PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_test_against_review PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_isfuzzy PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_isreview PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_simplepass PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_simplefail PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_variables_across_lines PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_ignore_if_already_marked PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_non_existent_check PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_list_all_tests PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_test_against_fuzzy PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_test_against_review PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_isfuzzy PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_isreview PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_notes PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_unicode PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_preconditions PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_msgid_comments PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_cedillas PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_niciun PASSED [ 33%] 290s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_nicio PASSED [ 34%] 290s tests/translate/filters/test_prefilters.py::test_removekdecomments PASSED [ 34%] 290s tests/translate/filters/test_prefilters.py::test_filterwordswithpunctuation PASSED [ 34%] 290s tests/translate/lang/test_af.py::test_sentences PASSED [ 34%] 290s tests/translate/lang/test_af.py::test_capsstart PASSED [ 34%] 290s tests/translate/lang/test_af.py::test_transliterate_cyrillic PASSED [ 34%] 290s tests/translate/lang/test_am.py::test_punctranslate PASSED [ 34%] 290s tests/translate/lang/test_am.py::test_sentences PASSED [ 34%] 290s tests/translate/lang/test_ar.py::test_punctranslate PASSED [ 34%] 290s tests/translate/lang/test_ar.py::test_sentences PASSED [ 34%] 290s tests/translate/lang/test_common.py::test_characters PASSED [ 34%] 290s tests/translate/lang/test_common.py::test_words PASSED [ 34%] 290s tests/translate/lang/test_common.py::test_word_khmer PASSED [ 34%] 290s tests/translate/lang/test_common.py::test_sentences PASSED [ 34%] 290s tests/translate/lang/test_common.py::test_capsstart PASSED [ 34%] 290s tests/translate/lang/test_common.py::test_numstart PASSED [ 34%] 290s tests/translate/lang/test_common.py::test_punctranslate PASSED [ 34%] 290s tests/translate/lang/test_common.py::test_length_difference PASSED [ 34%] 290s tests/translate/lang/test_common.py::test_alter_length PASSED [ 34%] 290s tests/translate/lang/test_data.py::test_normalise_code PASSED [ 34%] 290s tests/translate/lang/test_data.py::test_simplify_to_common PASSED [ 34%] 290s tests/translate/lang/test_data.py::test_is_rtl PASSED [ 34%] 290s tests/translate/lang/test_el.py::test_punctranslate PASSED [ 34%] 290s tests/translate/lang/test_el.py::test_sentences PASSED [ 34%] 290s tests/translate/lang/test_es.py::test_punctranslate PASSED [ 34%] 290s tests/translate/lang/test_es.py::test_sentences PASSED [ 34%] 290s tests/translate/lang/test_fa.py::test_punctranslate PASSED [ 34%] 290s tests/translate/lang/test_fa.py::test_sentences PASSED [ 34%] 290s tests/translate/lang/test_factory.py::test_getlanguage PASSED [ 34%] 290s tests/translate/lang/test_factory.py::test_get_all_languages PASSED [ 34%] 290s tests/translate/lang/test_fr.py::test_punctranslate PASSED [ 34%] 290s tests/translate/lang/test_fr.py::test_sentences PASSED [ 34%] 290s tests/translate/lang/test_hy.py::test_punctranslate PASSED [ 34%] 290s tests/translate/lang/test_hy.py::test_sentences PASSED [ 34%] 290s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_identify_lang PASSED [ 34%] 290s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_identify_store PASSED [ 34%] 290s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_bad_init_data PASSED [ 34%] 290s tests/translate/lang/test_ja.py::test_punctranslate PASSED [ 34%] 290s tests/translate/lang/test_ja.py::test_sentences PASSED [ 34%] 290s tests/translate/lang/test_km.py::test_punctranslate PASSED [ 35%] 290s tests/translate/lang/test_km.py::test_sentences PASSED [ 35%] 290s tests/translate/lang/test_ko.py::test_punctranslate PASSED [ 35%] 290s tests/translate/lang/test_ko.py::test_sentences PASSED [ 35%] 290s tests/translate/lang/test_ne.py::test_punctranslate PASSED [ 35%] 290s tests/translate/lang/test_ne.py::test_sentences PASSED [ 35%] 290s tests/translate/lang/test_nqo.py::test_punctranslate PASSED [ 35%] 290s tests/translate/lang/test_nqo.py::test_sentences PASSED [ 35%] 290s tests/translate/lang/test_or.py::test_punctranslate PASSED [ 35%] 290s tests/translate/lang/test_or.py::test_country_code PASSED [ 35%] 290s tests/translate/lang/test_or.py::test_sentences PASSED [ 35%] 290s tests/translate/lang/test_poedit.py::test_isocode PASSED [ 35%] 290s tests/translate/lang/test_ro.py::test_cedillas PASSED [ 35%] 290s tests/translate/lang/test_ro.py::test_niciun PASSED [ 35%] 290s tests/translate/lang/test_scn.py::test_italianisms PASSED [ 35%] 290s tests/translate/lang/test_scn.py::test_vocalism PASSED [ 35%] 290s tests/translate/lang/test_scn.py::test_suffixes PASSED [ 35%] 290s tests/translate/lang/test_team.py::test_simple PASSED [ 35%] 290s tests/translate/lang/test_th.py::test_punctranslate PASSED [ 35%] 290s tests/translate/lang/test_th.py::test_sentences PASSED [ 35%] 290s tests/translate/lang/test_tr.py::test_sentences PASSED [ 35%] 290s tests/translate/lang/test_uk.py::test_sentences PASSED [ 35%] 290s tests/translate/lang/test_vi.py::test_punctranslate PASSED [ 35%] 290s tests/translate/lang/test_vi.py::test_sentences PASSED [ 35%] 290s tests/translate/lang/test_zh.py::test_punctranslate PASSED [ 35%] 290s tests/translate/lang/test_zh.py::test_sentences PASSED [ 35%] 290s tests/translate/misc/test_deprecation.py::TestDeprecation::test_deprecated_decorator PASSED [ 35%] 290s tests/translate/misc/test_deprecation.py::TestDeprecation::test_no_deprecated_decorator PASSED [ 35%] 290s tests/translate/misc/test_dictutils.py::test_cidict_has_key PASSED [ 35%] 290s tests/translate/misc/test_dictutils.py::test_cidict_pop PASSED [ 35%] 290s tests/translate/misc/test_dictutils.py::test_cidict_getitem PASSED [ 35%] 290s tests/translate/misc/test_dictutils.py::test_cidict_setitem PASSED [ 35%] 290s tests/translate/misc/test_dictutils.py::test_cidict_delitem PASSED [ 35%] 290s tests/translate/misc/test_multistring.py::TestMultistring::test_constructor PASSED [ 35%] 290s tests/translate/misc/test_multistring.py::TestMultistring::test_constructor_validation PASSED [ 35%] 290s tests/translate/misc/test_multistring.py::TestMultistring::test_repr PASSED [ 35%] 290s tests/translate/misc/test_multistring.py::TestMultistring::test_replace PASSED [ 35%] 290s tests/translate/misc/test_multistring.py::TestMultistring::test_comparison PASSED [ 35%] 290s tests/translate/misc/test_multistring.py::TestMultistring::test_coercion PASSED [ 35%] 290s tests/translate/misc/test_multistring.py::TestMultistring::test_unicode_coercion PASSED [ 36%] 290s tests/translate/misc/test_multistring.py::TestMultistring::test_list_coercion PASSED [ 36%] 290s tests/translate/misc/test_multistring.py::TestMultistring::test_multistring_hash PASSED [ 36%] 290s tests/translate/misc/test_multistring.py::TestMultistring::test_bool PASSED [ 36%] 290s tests/translate/misc/test_optrecurse.py::TestRecursiveOptionParser::test_splitext PASSED [ 36%] 290s tests/translate/misc/test_optrecurse.py::TestRecursiveOptionParser::test_outputfile_receives_bytes PASSED [ 36%] 290s tests/translate/misc/test_progressbar.py::test_hashprogressbar PASSED [ 36%] 290s tests/translate/misc/test_quote.py::test_find_all PASSED [ 36%] 290s tests/translate/misc/test_quote.py::test_extract PASSED [ 36%] 290s tests/translate/misc/test_quote.py::test_extractwithoutquotes PASSED [ 36%] 290s tests/translate/misc/test_quote.py::test_extractwithoutquotes_passfunc PASSED [ 36%] 290s tests/translate/misc/test_quote.py::test_stripcomment PASSED [ 36%] 290s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode PASSED [ 36%] 290s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode_iso_8859_1 PASSED [ 36%] 290s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode_ascii PASSED [ 36%] 290s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode_unicode_range PASSED [ 36%] 290s tests/translate/misc/test_quote.py::TestEncoding::test_java_utf8_properties_encode PASSED [ 36%] 290s tests/translate/misc/test_quote.py::TestEncoding::test_escapespace PASSED [ 36%] 290s tests/translate/misc/test_quote.py::TestEncoding::test_mozillaescapemarginspaces PASSED [ 36%] 290s tests/translate/misc/test_quote.py::TestEncoding::test_mozilla_control_escapes PASSED [ 36%] 290s tests/translate/misc/test_quote.py::TestEncoding::test_propertiesdecode PASSED [ 36%] 290s tests/translate/misc/test_quote.py::TestEncoding::test_controlchars PASSED [ 36%] 290s tests/translate/misc/test_quote.py::TestEncoding::test_properties_decode_slashu PASSED [ 36%] 290s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding PASSED [ 36%] 290s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_existing_entities PASSED [ 36%] 290s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_passthrough PASSED [ 36%] 290s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_nonentities PASSED [ 36%] 290s tests/translate/misc/test_xml_helpers.py::TestReindent::test_indent_four_spaces PASSED [ 36%] 290s tests/translate/misc/test_xml_helpers.py::TestReindent::test_indent_tab PASSED [ 36%] 290s tests/translate/search/test_lshtein.py::TestLevenshtein::test_basic_distance PASSED [ 36%] 290s tests/translate/search/test_lshtein.py::TestLevenshtein::test_basic_similarity PASSED [ 36%] 290s tests/translate/search/test_lshtein.py::TestLevenshtein::test_long_similarity PASSED [ 36%] 290s tests/translate/search/test_match.py::TestMatch::test_matching PASSED [ 36%] 290s tests/translate/search/test_match.py::TestMatch::test_multiple_store PASSED [ 36%] 290s tests/translate/search/test_match.py::TestMatch::test_extendtm PASSED [ 36%] 290s tests/translate/search/test_match.py::TestMatch::test_terminology PASSED [ 36%] 290s tests/translate/search/test_match.py::TestMatch::test_brackets PASSED [ 36%] 290s tests/translate/search/test_match.py::TestMatch::test_past_tences PASSED [ 36%] 290s tests/translate/search/test_match.py::TestMatch::test_space_mismatch PASSED [ 36%] 290s tests/translate/search/test_match.py::TestMatch::test_hyphen_mismatch PASSED [ 37%] 290s tests/translate/search/test_terminology.py::TestTerminology::test_basic PASSED [ 37%] 290s tests/translate/services/test_tmserver.py::TestTMServer::test_import PASSED [ 37%] 290s tests/translate/services/test_tmserver.py::TestTMServer::test_server PASSED [ 37%] 290s tests/translate/storage/placeables/test_base.py::TestStringElem::test_parse PASSED [ 37%] 290s tests/translate/storage/placeables/test_base.py::TestStringElem::test_tree PASSED [ 37%] 290s tests/translate/storage/placeables/test_base.py::TestStringElem::test_add PASSED [ 37%] 290s tests/translate/storage/placeables/test_base.py::TestStringElem::test_contains PASSED [ 37%] 290s tests/translate/storage/placeables/test_base.py::TestStringElem::test_getitem PASSED [ 37%] 290s tests/translate/storage/placeables/test_base.py::TestStringElem::test_getslice PASSED [ 37%] 290s tests/translate/storage/placeables/test_base.py::TestStringElem::test_iter PASSED [ 37%] 290s tests/translate/storage/placeables/test_base.py::TestStringElem::test_len PASSED [ 37%] 290s tests/translate/storage/placeables/test_base.py::TestStringElem::test_mul PASSED [ 37%] 290s tests/translate/storage/placeables/test_base.py::TestStringElem::test_elem_offset PASSED [ 37%] 290s tests/translate/storage/placeables/test_base.py::TestStringElem::test_elem_at_offset PASSED [ 37%] 290s tests/translate/storage/placeables/test_base.py::TestStringElem::test_find PASSED [ 37%] 290s tests/translate/storage/placeables/test_base.py::TestStringElem::test_find_elems_with PASSED [ 37%] 290s tests/translate/storage/placeables/test_base.py::TestStringElem::test_flatten PASSED [ 37%] 290s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case1 PASSED [ 37%] 290s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case2 PASSED [ 37%] 290s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case3 PASSED [ 37%] 290s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case4 PASSED [ 37%] 290s tests/translate/storage/placeables/test_base.py::TestStringElem::test_insert PASSED [ 37%] 290s tests/translate/storage/placeables/test_base.py::TestStringElem::test_isleaf PASSED [ 37%] 290s tests/translate/storage/placeables/test_base.py::TestStringElem::test_prune PASSED [ 37%] 290s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_base_placeables PASSED [ 37%] 290s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_general_placeables XFAIL [ 37%] 290s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_xliff_placeables XFAIL [ 37%] 290s tests/translate/storage/placeables/test_general.py::test_placeable_numbers PASSED [ 37%] 290s tests/translate/storage/placeables/test_general.py::test_placeable_newline PASSED [ 37%] 290s tests/translate/storage/placeables/test_general.py::test_placeable_alt_attr PASSED [ 37%] 290s tests/translate/storage/placeables/test_general.py::test_placeable_qt_formatting PASSED [ 37%] 290s tests/translate/storage/placeables/test_general.py::test_placeable_camelcase PASSED [ 37%] 290s tests/translate/storage/placeables/test_general.py::test_placeable_space PASSED [ 37%] 290s tests/translate/storage/placeables/test_general.py::test_placeable_punctuation PASSED [ 37%] 290s tests/translate/storage/placeables/test_general.py::test_placeable_xml_entity PASSED [ 37%] 290s tests/translate/storage/placeables/test_general.py::test_placeable_xml_tag PASSED [ 37%] 290s tests/translate/storage/placeables/test_general.py::test_placeable_option PASSED [ 37%] 290s tests/translate/storage/placeables/test_general.py::test_placeable_file PASSED [ 37%] 290s tests/translate/storage/placeables/test_general.py::test_placeable_email PASSED [ 38%] 290s tests/translate/storage/placeables/test_general.py::test_placeable_caps PASSED [ 38%] 290s tests/translate/storage/placeables/test_general.py::test_placeable_formatting PASSED [ 38%] 290s tests/translate/storage/placeables/test_general.py::test_placeable_doubleat PASSED [ 38%] 290s tests/translate/storage/placeables/test_general.py::test_placeable_brace PASSED [ 38%] 290s tests/translate/storage/placeables/test_general.py::test_python_placeable PASSED [ 38%] 290s tests/translate/storage/placeables/test_lisa.py::test_xml_to_strelem PASSED [ 38%] 290s tests/translate/storage/placeables/test_lisa.py::test_xml_space PASSED [ 38%] 290s tests/translate/storage/placeables/test_lisa.py::test_chunk_list PASSED [ 38%] 290s tests/translate/storage/placeables/test_lisa.py::test_set_strelem_to_xml PASSED [ 38%] 290s tests/translate/storage/placeables/test_lisa.py::test_unknown_xml_placeable PASSED [ 38%] 290s tests/translate/storage/placeables/test_terminology.py::TestTerminologyPlaceable::test_simple_terminology PASSED [ 38%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_isfuzzy PASSED [ 38%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_create PASSED [ 38%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_eq PASSED [ 38%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escapes PASSED [ 38%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_difficult_escapes PASSED [ 38%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_note_sanity PASSED [ 38%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_line_number_default PASSED [ 38%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_target PASSED [ 38%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_rich_get PASSED [ 38%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_rich_set PASSED [ 38%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_message_with_newline PASSED [ 38%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quotes_with_newline PASSED [ 38%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_message_with_newline_in_xml PASSED [ 38%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_twitter PASSED [ 38%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quote PASSED [ 38%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_question PASSED [ 38%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_double_space PASSED [ 38%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_leading_space PASSED [ 38%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_tailing_space PASSED [ 38%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_xml_entities PASSED [ 38%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code PASSED [ 38%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code_quote PASSED [ 38%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code_quote_newline PASSED [ 38%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_arrows PASSED [ 38%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_link PASSED [ 38%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_link_and_text PASSED [ 38%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_blank_string PASSED [ 38%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_escape_message_with_newline PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_invalid_lang PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_quote PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_leading_space PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_trailing_space PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_with_ampersand PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_double_space PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_deep_double_space PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_complex_xml PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quoted_newlines PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_message_with_newline PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_message_with_newline_in_xml PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_twitter PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_question PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quote PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_double_space PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_space PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_newlines PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_xml_entities PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_code PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_arrows PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_link PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_link_and_text PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_blank_string PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_space PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_spaces PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_escaped_newline PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_escaped_newline PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_spaces PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_newline PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_many_quotes PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_blank_string_again PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_double_quotes_string PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_newline_in_string PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_not_translatable_string PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_parse_message_with_newline PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_parse_message_with_comments PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_quote PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_leading_space PASSED [ 39%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_leading_space_quoted PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_trailing_space PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_trailing_space_quoted PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_with_ampersand PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_double_space_quoted PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_deep_double_space_quoted PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_complex_xml PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_unicode PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_unescaped PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_escaped_alone PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_escaped_full PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_escaped_percent PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_percent PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_quote PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_unparied_quote PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escape_slash PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escape_ignored PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escaped_quote_end PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_xml PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_create_blank PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_add PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_remove PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_find PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_parse PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_files PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_save PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_extensions PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_mimetypes PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_translate PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_nonascii PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_default_handlings PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_filename PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_filename_default_language PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_invalid_filename PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_namespaces PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_serialize PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_add_formatting PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity PASSED [ 40%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_invalid_entity PASSED [ 41%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_indent PASSED [ 41%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_markup PASSED [ 41%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_parse_decimal_plurals PASSED [ 41%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_to_plurals PASSED [ 41%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity_add_edit PASSED [ 41%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity_add_noedit PASSED [ 41%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_remove PASSED [ 41%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_set PASSED [ 41%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_others PASSED [ 41%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_quotes_set PASSED [ 41%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_xliff_g PASSED [ 41%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_xliff_namespace PASSED [ 41%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_zh_hk PASSED [ 41%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_b_zh_hk PASSED [ 41%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_missing_plural PASSED [ 41%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_empty_missing_plural_tag PASSED [ 41%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_removeunit PASSED [ 41%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_cdata PASSED [ 41%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_cdata_text PASSED [ 41%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_prefix PASSED [ 41%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_rtl PASSED [ 41%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_tail PASSED [ 41%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_translatable_marking PASSED [ 41%] 290s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_escaping PASSED [ 41%] 290s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_isfuzzy PASSED [ 41%] 290s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_create PASSED [ 41%] 290s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_eq PASSED [ 41%] 291s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_escapes PASSED [ 41%] 291s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_difficult_escapes PASSED [ 41%] 291s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_note_sanity PASSED [ 41%] 291s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_line_number_default PASSED [ 41%] 291s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_target PASSED [ 41%] 291s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_rich_get PASSED [ 41%] 291s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_rich_set PASSED [ 41%] 291s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_escape_quote PASSED [ 41%] 291s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_create_blank PASSED [ 41%] 291s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_add PASSED [ 41%] 291s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_remove PASSED [ 41%] 291s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_find PASSED [ 42%] 291s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_parse PASSED [ 42%] 291s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_files PASSED [ 42%] 291s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_save PASSED [ 42%] 291s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_extensions PASSED [ 42%] 291s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_mimetypes PASSED [ 42%] 291s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_translate PASSED [ 42%] 291s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_markup PASSED [ 42%] 291s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_nonascii PASSED [ 42%] 291s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_plural PASSED [ 42%] 291s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_isfuzzy PASSED [ 42%] 291s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_create PASSED [ 42%] 291s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_eq PASSED [ 42%] 291s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_escapes PASSED [ 42%] 291s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_difficult_escapes PASSED [ 42%] 291s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_note_sanity PASSED [ 42%] 291s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_line_number_default PASSED [ 42%] 291s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_target PASSED [ 42%] 291s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_rich_get PASSED [ 42%] 291s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_rich_set PASSED [ 42%] 291s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_escape_quote PASSED [ 42%] 291s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_create_blank PASSED [ 42%] 291s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_add PASSED [ 42%] 291s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_remove PASSED [ 42%] 291s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_find PASSED [ 42%] 291s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_parse PASSED [ 42%] 291s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_files PASSED [ 42%] 291s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_save PASSED [ 42%] 291s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_extensions PASSED [ 42%] 291s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_mimetypes PASSED [ 42%] 291s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_translate PASSED [ 42%] 291s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_markup PASSED [ 42%] 291s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_nonascii PASSED [ 42%] 291s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_quote_escape PASSED [ 42%] 291s tests/translate/storage/test_base.py::TestTranslationUnit::test_isfuzzy PASSED [ 42%] 291s tests/translate/storage/test_base.py::TestTranslationUnit::test_create PASSED [ 42%] 291s tests/translate/storage/test_base.py::TestTranslationUnit::test_eq PASSED [ 42%] 291s tests/translate/storage/test_base.py::TestTranslationUnit::test_target PASSED [ 42%] 291s tests/translate/storage/test_base.py::TestTranslationUnit::test_escapes PASSED [ 42%] 291s tests/translate/storage/test_base.py::TestTranslationUnit::test_difficult_escapes PASSED [ 43%] 291s tests/translate/storage/test_base.py::TestTranslationUnit::test_note_sanity PASSED [ 43%] 291s tests/translate/storage/test_base.py::TestTranslationUnit::test_line_number_default PASSED [ 43%] 291s tests/translate/storage/test_base.py::TestTranslationUnit::test_rich_get PASSED [ 43%] 291s tests/translate/storage/test_base.py::TestTranslationUnit::test_rich_set PASSED [ 43%] 291s tests/translate/storage/test_base.py::TestTranslationStore::test_create_blank PASSED [ 43%] 291s tests/translate/storage/test_base.py::TestTranslationStore::test_add PASSED [ 43%] 291s tests/translate/storage/test_base.py::TestTranslationStore::test_remove PASSED [ 43%] 291s tests/translate/storage/test_base.py::TestTranslationStore::test_find PASSED [ 43%] 291s tests/translate/storage/test_base.py::TestTranslationStore::test_translate PASSED [ 43%] 291s tests/translate/storage/test_base.py::TestTranslationStore::test_parse PASSED [ 43%] 291s tests/translate/storage/test_base.py::TestTranslationStore::test_files PASSED [ 43%] 291s tests/translate/storage/test_base.py::TestTranslationStore::test_save PASSED [ 43%] 291s tests/translate/storage/test_base.py::TestTranslationStore::test_markup PASSED [ 43%] 291s tests/translate/storage/test_base.py::TestTranslationStore::test_nonascii PASSED [ 43%] 291s tests/translate/storage/test_base.py::TestTranslationStore::test_extensions PASSED [ 43%] 291s tests/translate/storage/test_base.py::TestTranslationStore::test_mimetypes PASSED [ 43%] 291s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_create_empty_bundle PASSED [ 43%] 291s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_create_bundle_from_nonexistent_file PASSED [ 43%] 291s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_save_bundle PASSED [ 43%] 291s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_cross_device_save PASSED [ 43%] 291s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_replace_project_zip PASSED [ 43%] 291s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle PASSED [ 43%] 291s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_update_file_in_bundle PASSED [ 43%] 291s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle PASSED [ 43%] 291s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_invalid_bundle_error PASSED [ 43%] 291s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_isfuzzy PASSED [ 43%] 291s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_create PASSED [ 43%] 291s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_eq PASSED [ 43%] 291s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_target PASSED [ 43%] 291s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_escapes PASSED [ 43%] 291s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_line_number_default PASSED [ 43%] 291s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_rich_get PASSED [ 43%] 291s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_rich_set PASSED [ 43%] 291s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_difficult_escapes PASSED [ 43%] 291s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_newlines PASSED [ 43%] 291s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_istranslated PASSED [ 43%] 291s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_note_sanity PASSED [ 43%] 291s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_create_blank PASSED [ 43%] 291s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_add PASSED [ 44%] 291s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_remove PASSED [ 44%] 291s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_find PASSED [ 44%] 291s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_translate PASSED [ 44%] 291s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_parse PASSED [ 44%] 291s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_files PASSED [ 44%] 291s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_save PASSED [ 44%] 291s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_markup PASSED [ 44%] 291s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_nonascii PASSED [ 44%] 291s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_extensions PASSED [ 44%] 291s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_mimetypes PASSED [ 44%] 291s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_checksum PASSED [ 44%] 291s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_isfuzzy PASSED [ 44%] 291s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_create PASSED [ 44%] 291s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_eq PASSED [ 44%] 291s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_target PASSED [ 44%] 291s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_escapes PASSED [ 44%] 291s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_difficult_escapes PASSED [ 44%] 291s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_note_sanity PASSED [ 44%] 291s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_line_number_default PASSED [ 44%] 291s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_rich_get PASSED [ 44%] 291s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_rich_set PASSED [ 44%] 291s tests/translate/storage/test_csvl10n.py::TestCSV::test_create_blank PASSED [ 44%] 291s tests/translate/storage/test_csvl10n.py::TestCSV::test_add PASSED [ 44%] 291s tests/translate/storage/test_csvl10n.py::TestCSV::test_remove PASSED [ 44%] 291s tests/translate/storage/test_csvl10n.py::TestCSV::test_find PASSED [ 44%] 291s tests/translate/storage/test_csvl10n.py::TestCSV::test_translate PASSED [ 44%] 291s tests/translate/storage/test_csvl10n.py::TestCSV::test_parse PASSED [ 44%] 291s tests/translate/storage/test_csvl10n.py::TestCSV::test_files PASSED [ 44%] 291s tests/translate/storage/test_csvl10n.py::TestCSV::test_save PASSED [ 44%] 291s tests/translate/storage/test_csvl10n.py::TestCSV::test_markup PASSED [ 44%] 291s tests/translate/storage/test_csvl10n.py::TestCSV::test_nonascii PASSED [ 44%] 291s tests/translate/storage/test_csvl10n.py::TestCSV::test_extensions PASSED [ 44%] 291s tests/translate/storage/test_csvl10n.py::TestCSV::test_mimetypes PASSED [ 44%] 291s tests/translate/storage/test_csvl10n.py::TestCSV::test_singlequoting PASSED [ 44%] 291s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8 PASSED [ 44%] 291s tests/translate/storage/test_csvl10n.py::TestCSV::test_dialect PASSED [ 44%] 291s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8_sig PASSED [ 44%] 291s tests/translate/storage/test_csvl10n.py::TestCSV::test_default PASSED [ 44%] 291s tests/translate/storage/test_csvl10n.py::TestCSV::test_location_is_parsed PASSED [ 45%] 291s tests/translate/storage/test_csvl10n.py::TestCSV::test_context_is_parsed PASSED [ 45%] 291s tests/translate/storage/test_csvl10n.py::TestCSV::test_newline PASSED [ 45%] 291s tests/translate/storage/test_csvl10n.py::TestCSV::test_parse_sample PASSED [ 45%] 291s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8_detection PASSED [ 45%] 291s tests/translate/storage/test_csvl10n.py::TestCSV::test_encoding PASSED [ 45%] 291s tests/translate/storage/test_csvl10n.py::TestCSV::test_corrupt PASSED [ 45%] 291s tests/translate/storage/test_csvl10n.py::TestCSV::test_encoding_save PASSED [ 45%] 291s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_id_target PASSED [ 45%] 291s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_context_target PASSED [ 45%] 291s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_key_translation PASSED [ 45%] 291s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_roundtrip PASSED [ 45%] 291s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_context_roundtrip PASSED [ 45%] 291s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_id_context_roundtrip PASSED [ 45%] 291s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_target_only_roundtrip PASSED [ 45%] 291s tests/translate/storage/test_csvl10n.py::TestCSV::test_quote_nonnumeric_handling PASSED [ 45%] 291s tests/translate/storage/test_csvl10n.py::TestCSV::test_quote_nonnumeric_with_single_quotes PASSED [ 45%] 291s tests/translate/storage/test_csvl10n.py::TestCSV::test_line_number PASSED [ 45%] 291s tests/translate/storage/test_dtd.py::test_roundtrip_quoting PASSED [ 45%] 291s tests/translate/storage/test_dtd.py::test_quotefordtd_unimplemented_cases XFAIL [ 45%] 291s tests/translate/storage/test_dtd.py::test_quotefordtd PASSED [ 45%] 291s tests/translate/storage/test_dtd.py::test_unquotefromdtd_unimplemented_cases XFAIL [ 45%] 291s tests/translate/storage/test_dtd.py::test_unquotefromdtd PASSED [ 45%] 291s tests/translate/storage/test_dtd.py::test_android_roundtrip_quoting PASSED [ 45%] 291s tests/translate/storage/test_dtd.py::test_quoteforandroid PASSED [ 45%] 291s tests/translate/storage/test_dtd.py::test_unquotefromandroid PASSED [ 45%] 291s tests/translate/storage/test_dtd.py::test_removeinvalidamp PASSED [ 45%] 291s tests/translate/storage/test_dtd.py::TestDTDUnit::test_isfuzzy PASSED [ 45%] 291s tests/translate/storage/test_dtd.py::TestDTDUnit::test_create PASSED [ 45%] 291s tests/translate/storage/test_dtd.py::TestDTDUnit::test_eq PASSED [ 45%] 291s tests/translate/storage/test_dtd.py::TestDTDUnit::test_escapes PASSED [ 45%] 291s tests/translate/storage/test_dtd.py::TestDTDUnit::test_difficult_escapes PASSED [ 45%] 291s tests/translate/storage/test_dtd.py::TestDTDUnit::test_note_sanity PASSED [ 45%] 291s tests/translate/storage/test_dtd.py::TestDTDUnit::test_line_number_default PASSED [ 45%] 291s tests/translate/storage/test_dtd.py::TestDTDUnit::test_target PASSED [ 45%] 291s tests/translate/storage/test_dtd.py::TestDTDUnit::test_rich_get PASSED [ 45%] 291s tests/translate/storage/test_dtd.py::TestDTDUnit::test_rich_set PASSED [ 45%] 291s tests/translate/storage/test_dtd.py::TestDTD::test_create_blank PASSED [ 45%] 291s tests/translate/storage/test_dtd.py::TestDTD::test_add PASSED [ 45%] 291s tests/translate/storage/test_dtd.py::TestDTD::test_remove PASSED [ 46%] 291s tests/translate/storage/test_dtd.py::TestDTD::test_find PASSED [ 46%] 291s tests/translate/storage/test_dtd.py::TestDTD::test_parse PASSED [ 46%] 291s tests/translate/storage/test_dtd.py::TestDTD::test_files PASSED [ 46%] 291s tests/translate/storage/test_dtd.py::TestDTD::test_save PASSED [ 46%] 291s tests/translate/storage/test_dtd.py::TestDTD::test_extensions PASSED [ 46%] 291s tests/translate/storage/test_dtd.py::TestDTD::test_mimetypes PASSED [ 46%] 291s tests/translate/storage/test_dtd.py::TestDTD::test_translate PASSED [ 46%] 291s tests/translate/storage/test_dtd.py::TestDTD::test_markup PASSED [ 46%] 291s tests/translate/storage/test_dtd.py::TestDTD::test_nonascii PASSED [ 46%] 291s tests/translate/storage/test_dtd.py::TestDTD::test_simpleentity PASSED [ 46%] 291s tests/translate/storage/test_dtd.py::TestDTD::test_blanklines PASSED [ 46%] 291s tests/translate/storage/test_dtd.py::TestDTD::test_simpleentity_source PASSED [ 46%] 291s tests/translate/storage/test_dtd.py::TestDTD::test_hashcomment_source PASSED [ 46%] 291s tests/translate/storage/test_dtd.py::TestDTD::test_commentclosing PASSED [ 46%] 291s tests/translate/storage/test_dtd.py::TestDTD::test_commententity PASSED [ 46%] 291s tests/translate/storage/test_dtd.py::TestDTD::test_newlines_in_entity PASSED [ 46%] 291s tests/translate/storage/test_dtd.py::TestDTD::test_conflate_comments PASSED [ 46%] 291s tests/translate/storage/test_dtd.py::TestDTD::test_localisation_notes PASSED [ 46%] 291s tests/translate/storage/test_dtd.py::TestDTD::test_entitityreference_in_source PASSED [ 46%] 291s tests/translate/storage/test_dtd.py::TestDTD::test_entitityreference_order_in_source PASSED [ 46%] 291s tests/translate/storage/test_dtd.py::TestDTD::test_comment_following XFAIL [ 46%] 291s tests/translate/storage/test_dtd.py::TestDTD::test_comment_newline_space_closing PASSED [ 46%] 291s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting XFAIL [ 46%] 291s tests/translate/storage/test_dtd.py::TestDTD::test_missing_quotes PASSED [ 46%] 291s tests/translate/storage/test_dtd.py::TestDTD::test_entity_escaping PASSED [ 46%] 291s tests/translate/storage/test_dtd.py::TestDTD::test_entity_escaping_roundtrip PASSED [ 46%] 291s tests/translate/storage/test_dtd.py::TestDTD::test_multiple_blank_lines PASSED [ 46%] 291s tests/translate/storage/test_dtd.py::TestDTD::test_entity_with_extra_spaces PASSED [ 46%] 291s tests/translate/storage/test_dtd.py::TestDTD::test_mixed_content_preservation PASSED [ 46%] 291s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_create_blank PASSED [ 46%] 291s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_add PASSED [ 46%] 291s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_remove PASSED [ 46%] 291s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_find PASSED [ 46%] 291s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_parse PASSED [ 46%] 291s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_files PASSED [ 46%] 291s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_save PASSED [ 46%] 291s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_extensions PASSED [ 46%] 291s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_mimetypes PASSED [ 46%] 291s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_translate PASSED [ 47%] 291s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_markup PASSED [ 47%] 291s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_nonascii PASSED [ 47%] 291s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_single_quote_escape PASSED [ 47%] 291s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_single_quote_escape_parse_and_convert_back PASSED [ 47%] 291s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_double_quote_escape PASSED [ 47%] 291s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_double_quote_escape_parse_and_convert_back PASSED [ 47%] 291s tests/translate/storage/test_factory.py::TestPOFactory::test_getclass PASSED [ 47%] 291s tests/translate/storage/test_factory.py::TestPOFactory::test_getobject_store PASSED [ 47%] 291s tests/translate/storage/test_factory.py::TestPOFactory::test_getobject PASSED [ 47%] 291s tests/translate/storage/test_factory.py::TestPOFactory::test_get_noname_object PASSED [ 47%] 291s tests/translate/storage/test_factory.py::TestPOFactory::test_gzfile PASSED [ 47%] 291s tests/translate/storage/test_factory.py::TestPOFactory::test_bz2file PASSED [ 47%] 291s tests/translate/storage/test_factory.py::TestPOFactory::test_directory PASSED [ 47%] 291s tests/translate/storage/test_factory.py::TestXliffFactory::test_getclass PASSED [ 47%] 291s tests/translate/storage/test_factory.py::TestXliffFactory::test_getobject_store PASSED [ 47%] 291s tests/translate/storage/test_factory.py::TestXliffFactory::test_getobject PASSED [ 47%] 291s tests/translate/storage/test_factory.py::TestXliffFactory::test_get_noname_object PASSED [ 47%] 291s tests/translate/storage/test_factory.py::TestXliffFactory::test_gzfile PASSED [ 47%] 291s tests/translate/storage/test_factory.py::TestXliffFactory::test_bz2file PASSED [ 47%] 291s tests/translate/storage/test_factory.py::TestXliffFactory::test_directory PASSED [ 47%] 291s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getclass PASSED [ 47%] 291s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getobject_store PASSED [ 47%] 291s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getobject PASSED [ 47%] 291s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_get_noname_object PASSED [ 47%] 291s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_gzfile PASSED [ 47%] 291s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_bz2file PASSED [ 47%] 291s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_directory PASSED [ 47%] 291s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getclass PASSED [ 47%] 291s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getobject_store PASSED [ 47%] 291s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getobject PASSED [ 47%] 291s tests/translate/storage/test_factory.py::TestWordfastFactory::test_get_noname_object PASSED [ 47%] 291s tests/translate/storage/test_factory.py::TestWordfastFactory::test_gzfile PASSED [ 47%] 291s tests/translate/storage/test_factory.py::TestWordfastFactory::test_bz2file PASSED [ 47%] 291s tests/translate/storage/test_factory.py::TestWordfastFactory::test_directory PASSED [ 47%] 291s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_isfuzzy PASSED [ 47%] 291s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_create PASSED [ 47%] 291s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_eq PASSED [ 47%] 291s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_escapes PASSED [ 47%] 291s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_difficult_escapes PASSED [ 48%] 291s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_note_sanity PASSED [ 48%] 291s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_line_number_default PASSED [ 48%] 291s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_target PASSED [ 48%] 291s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_rich_get PASSED [ 48%] 291s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_rich_set PASSED [ 48%] 291s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_create_blank PASSED [ 48%] 291s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_add PASSED [ 48%] 291s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_remove PASSED [ 48%] 291s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_find PASSED [ 48%] 291s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_parse PASSED [ 48%] 291s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_files PASSED [ 48%] 291s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_save PASSED [ 48%] 291s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_extensions PASSED [ 48%] 291s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_mimetypes PASSED [ 48%] 291s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_translate PASSED [ 48%] 291s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_markup PASSED [ 48%] 291s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_nonascii PASSED [ 48%] 291s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_root_config_detect PASSED [ 48%] 291s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_value_config_detect PASSED [ 48%] 291s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_key_config_detect PASSED [ 48%] 291s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_value_config_mixed_ok PASSED [ 48%] 291s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_namespace_config_detect PASSED [ 48%] 291s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_four_spaces PASSED [ 48%] 291s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_tab PASSED [ 48%] 291s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_none_linearizes PASSED [ 48%] 291s tests/translate/storage/test_html.py::test_guess_encoding PASSED [ 48%] 291s tests/translate/storage/test_html.py::TestHTMLParsing::test_mismatched_tags PASSED [ 48%] 291s tests/translate/storage/test_html.py::TestHTMLParsing::test_self_closing_tags PASSED [ 48%] 291s tests/translate/storage/test_html.py::TestHTMLParsing::test_escaping_script_and_pre PASSED [ 48%] 291s tests/translate/storage/test_html.py::TestHTMLExtraction::test_strip_html PASSED [ 48%] 291s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_tag_figcaption PASSED [ 48%] 291s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_tag_caption_td_th PASSED [ 48%] 291s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_attr_alt PASSED [ 48%] 291s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_attr_title PASSED [ 48%] 291s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_pre PASSED [ 48%] 291s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_pre_code PASSED [ 48%] 291s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_button PASSED [ 48%] 291s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_lang_attribute PASSED [ 48%] 291s tests/translate/storage/test_html.py::TestHTMLExtraction::test_dir_attribute_not_extracted PASSED [ 49%] 291s tests/translate/storage/test_html.py::TestHTMLExtraction::test_data_translate_ignore_attribute PASSED [ 49%] 291s tests/translate/storage/test_html.py::TestHTMLExtraction::test_translate_comment_directives PASSED [ 49%] 291s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_meta_social_media_tags PASSED [ 49%] 291s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_meta_non_translatable_tags PASSED [ 49%] 291s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_meta_mixed_translatable_and_non_translatable PASSED [ 49%] 291s tests/translate/storage/test_html.py::TestHTMLExtraction::test_data_translate_comment_attribute PASSED [ 49%] 291s tests/translate/storage/test_html_context.py::test_html_context_basic PASSED [ 49%] 291s tests/translate/storage/test_html_context.py::test_html_context_attribute PASSED [ 49%] 291s tests/translate/storage/test_html_context.py::test_html_context_attribute_with_id PASSED [ 49%] 291s tests/translate/storage/test_html_context.py::test_html_context_same_source_different_contexts PASSED [ 49%] 291s tests/translate/storage/test_html_context.py::test_html_context_nested_outer_wins PASSED [ 49%] 291s tests/translate/storage/test_html_context.py::test_html_context_absent PASSED [ 49%] 291s tests/translate/storage/test_html_context.py::test_html_context_id_overridden_by_explicit PASSED [ 49%] 291s tests/translate/storage/test_html_context.py::test_html_context_id_not_used_when_no_duplicates PASSED [ 49%] 291s tests/translate/storage/test_html_context.py::test_html_context_id_not_used_when_data_translate_context_identical PASSED [ 49%] 291s tests/translate/storage/test_html_context.py::test_html_context_disambiguates_duplicates_with_id PASSED [ 49%] 291s tests/translate/storage/test_html_context.py::test_html_context_disambiguates_duplicates_with_ancestor_id PASSED [ 49%] 291s tests/translate/storage/test_ini.py::TestINIUnit::test_isfuzzy PASSED [ 49%] 291s tests/translate/storage/test_ini.py::TestINIUnit::test_create PASSED [ 49%] 291s tests/translate/storage/test_ini.py::TestINIUnit::test_eq PASSED [ 49%] 291s tests/translate/storage/test_ini.py::TestINIUnit::test_escapes PASSED [ 49%] 291s tests/translate/storage/test_ini.py::TestINIUnit::test_difficult_escapes PASSED [ 49%] 291s tests/translate/storage/test_ini.py::TestINIUnit::test_note_sanity PASSED [ 49%] 291s tests/translate/storage/test_ini.py::TestINIUnit::test_line_number_default PASSED [ 49%] 291s tests/translate/storage/test_ini.py::TestINIUnit::test_target PASSED [ 49%] 291s tests/translate/storage/test_ini.py::TestINIUnit::test_rich_get PASSED [ 49%] 291s tests/translate/storage/test_ini.py::TestINIUnit::test_rich_set PASSED [ 49%] 291s tests/translate/storage/test_ini.py::TestINIStore::test_create_blank PASSED [ 49%] 291s tests/translate/storage/test_ini.py::TestINIStore::test_add PASSED [ 49%] 291s tests/translate/storage/test_ini.py::TestINIStore::test_remove PASSED [ 49%] 291s tests/translate/storage/test_ini.py::TestINIStore::test_find PASSED [ 49%] 291s tests/translate/storage/test_ini.py::TestINIStore::test_parse PASSED [ 49%] 291s tests/translate/storage/test_ini.py::TestINIStore::test_files PASSED [ 49%] 291s tests/translate/storage/test_ini.py::TestINIStore::test_save PASSED [ 49%] 291s tests/translate/storage/test_ini.py::TestINIStore::test_extensions PASSED [ 49%] 291s tests/translate/storage/test_ini.py::TestINIStore::test_mimetypes PASSED [ 49%] 291s tests/translate/storage/test_ini.py::TestINIStore::test_translate PASSED [ 49%] 291s tests/translate/storage/test_ini.py::TestINIStore::test_markup PASSED [ 49%] 291s tests/translate/storage/test_ini.py::TestINIStore::test_nonascii PASSED [ 50%] 291s tests/translate/storage/test_ini.py::TestINIStore::test_serialize PASSED [ 50%] 291s tests/translate/storage/test_ini.py::TestINIStore::test_rem PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_isfuzzy PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_create PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_eq PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_escapes PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_difficult_escapes PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_note_sanity PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_line_number_default PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_target PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_rich_get PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_rich_set PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_create_blank PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_remove PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_find PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_parse PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_files PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_save PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_extensions PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_mimetypes PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_translate PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_markup PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_nonascii PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_serialize PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_can_not_detect PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_error PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_filter PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_ordering PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_args PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_bom PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_complex PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_complex_array PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add_list_like PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add_blank PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_types PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_null PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_isfuzzy PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_create PASSED [ 50%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_eq PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_escapes PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_difficult_escapes PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_note_sanity PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_line_number_default PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_target PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_rich_get PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_rich_set PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_serialize PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_ordering PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_array PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_index PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_index_nested PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_nested_list_mixed PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_list_to_dict PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_complex_keys PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_other PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[0]-expected0] PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[test[0]-expected1] PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[test[0][1][2][3]-expected2] PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[test]selection-expected3] PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[test][0]selection-expected4] PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[0][test]selection-expected5] PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[-expected6] PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_dot_keys PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_isfuzzy PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_create PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_eq PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_escapes PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_difficult_escapes PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_note_sanity PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_line_number_default PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_target PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_rich_get PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_rich_set PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_create_blank PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_add PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_remove PASSED [ 51%] 291s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_find PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_parse PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_files PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_save PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_extensions PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_mimetypes PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_translate PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_markup PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_nonascii PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_serialize PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_dot_keys PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_leading_dot_keys PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_serialize_no_description PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_set_target PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_placeholders PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_comments PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_create_blank PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_add PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_remove PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_find PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_parse PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_files PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_save PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_extensions PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_mimetypes PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_translate PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_markup PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_nonascii PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_serialize PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_units PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_plurals PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_nested_array PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_new_plural PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_new_plural_id PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_create_blank PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_add PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_remove PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_find PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_parse PASSED [ 52%] 291s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_files PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_save PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_extensions PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_mimetypes PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_translate PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_markup PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_nonascii PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_plurals PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_plurals_missing PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_case_no_msg PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_complex_id PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_create_blank PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_add PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_remove PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_find PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_parse PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_files PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_save PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_extensions PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_mimetypes PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_translate PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_markup PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_nonascii PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_serialize PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_units PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_plurals PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_nested_array PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_new_plural PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_ru PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_create_blank PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_add PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_remove PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_find PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_parse PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_files PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_save PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_extensions PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_mimetypes PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_translate PASSED [ 53%] 291s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_markup PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_nonascii PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_serialize PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_units PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_plurals PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_nested_array PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_new_plural PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_ru PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_create_blank PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_add PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_remove PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_find PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_parse PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_files PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_save PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_extensions PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_mimetypes PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_translate PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_markup PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_nonascii PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_plurals PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_plurals_missing PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_invalid PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_dot_keys PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_create_blank PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_add PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_remove PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_find PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_parse PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_files PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_save PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_extensions PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_mimetypes PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_translate PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_markup PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_nonascii PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_1 PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_2 PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_blank PASSED [ 54%] 291s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_missing PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_simplification PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_invalid PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_dot_keys PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_create_blank PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_add PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_remove PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_find PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_parse PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_files PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_save PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_extensions PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_mimetypes PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_translate PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_markup PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_nonascii PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_roundtrip PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_leading_dot_keys PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_invalid_nesting PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_empty_metadata_not_stored PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_create_blank PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_add PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_remove PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_find PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_parse PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_files PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_save PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_extensions PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_mimetypes PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_translate PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_markup PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_nonascii PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_roundtrip PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_leading_dot_keys PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_invalid PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_isfuzzy PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_create PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_eq PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_escapes PASSED [ 55%] 291s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_difficult_escapes PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_note_sanity PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_line_number_default PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_target PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_rich_get PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_rich_set PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_source_property_maps_to_id PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_source_roundtrip PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_create_blank PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_add PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_remove PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_find PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_parse PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_files PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_save PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_extensions PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_mimetypes PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_translate PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_markup PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_nonascii PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_parse_simple PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_serialize_simple PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_parse_with_plurals PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_preserve_plural_form PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_roundtrip_with_plurals PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_ignore_non_translations_keys PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_preserve_other_metadata PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_add_unit PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_add_plural_unit PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_empty_translations PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_create_blank PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_add PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_remove PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_find PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_parse PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_files PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_save PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_extensions PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_mimetypes PASSED [ 56%] 291s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_translate PASSED [ 57%] 291s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_markup PASSED [ 57%] 291s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_nonascii PASSED [ 57%] 291s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_roundtrip PASSED [ 57%] 291s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_basic_parsing PASSED [ 57%] 291s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_multiple_metadata PASSED [ 57%] 291s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_no_metadata PASSED [ 57%] 291s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_edit_target PASSED [ 57%] 291s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_edit_notes PASSED [ 57%] 291s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_keys_with_dots PASSED [ 57%] 291s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_leading_dot_keys PASSED [ 57%] 291s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_invalid_nesting PASSED [ 57%] 291s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_source_property_get_set PASSED [ 57%] 291s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_source_property_persists PASSED [ 57%] 291s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_getcontext_returns_id PASSED [ 57%] 291s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_parsing_preserves_order PASSED [ 57%] 291s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_metadata_without_translation PASSED [ 57%] 291s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_complex_keys_with_multiple_dots PASSED [ 57%] 291s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_source_empty_string PASSED [ 57%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_atx_heading PASSED [ 57%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_autolink PASSED [ 57%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_block_quote PASSED [ 57%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_code_block PASSED [ 57%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_code_span PASSED [ 57%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_atx_heading PASSED [ 57%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_document PASSED [ 57%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_list_item PASSED [ 57%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_escaped_character PASSED [ 57%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_hard_line_break PASSED [ 57%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_block PASSED [ 57%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_character_entities PASSED [ 57%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_span PASSED [ 57%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_image_embedded_in_link PASSED [ 57%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_collapsed_reference_link PASSED [ 57%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_full_reference_link PASSED [ 57%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_shortcut_reference_link PASSED [ 57%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_merging_of_adjacent_placeholders PASSED [ 57%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_nested_block_tokens PASSED [ 57%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_nested_list PASSED [ 57%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_paragraph_with_basic_markup PASSED [ 58%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_paragraph_with_only_whitespace_and_placeholders PASSED [ 58%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_placeholder_trimming PASSED [ 58%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_image PASSED [ 58%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_image_no_title PASSED [ 58%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_link PASSED [ 58%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_text_paragraph PASSED [ 58%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_remove_placeholders_from_both_ends_of_translation_units PASSED [ 58%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_setext_heading PASSED [ 58%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_table_with_header PASSED [ 58%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_thematic_break PASSED [ 58%] 291s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_hard_line_break_in_translation_unit PASSED [ 58%] 291s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_missing_placeholder PASSED [ 58%] 291s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_duplicate_placeholder PASSED [ 58%] 291s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_extraneous_placeholder PASSED [ 58%] 291s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_reordered_placeholders PASSED [ 58%] 291s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_invalid_markdown_in_translation PASSED [ 58%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_section_basic PASSED [ 58%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_section_with_markup PASSED [ 58%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_section_with_code_block PASSED [ 58%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_multiple_ignore_sections PASSED [ 58%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_at_start PASSED [ 58%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_at_end PASSED [ 58%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_nested_structures_in_ignore PASSED [ 58%] 291s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_link_references_in_ignore PASSED [ 58%] 291s tests/translate/storage/test_mo.py::TestMOUnit::test_isfuzzy PASSED [ 58%] 291s tests/translate/storage/test_mo.py::TestMOUnit::test_create PASSED [ 58%] 291s tests/translate/storage/test_mo.py::TestMOUnit::test_eq PASSED [ 58%] 291s tests/translate/storage/test_mo.py::TestMOUnit::test_target PASSED [ 58%] 291s tests/translate/storage/test_mo.py::TestMOUnit::test_escapes PASSED [ 58%] 291s tests/translate/storage/test_mo.py::TestMOUnit::test_difficult_escapes PASSED [ 58%] 291s tests/translate/storage/test_mo.py::TestMOUnit::test_note_sanity PASSED [ 58%] 291s tests/translate/storage/test_mo.py::TestMOUnit::test_line_number_default PASSED [ 58%] 291s tests/translate/storage/test_mo.py::TestMOUnit::test_rich_get PASSED [ 58%] 291s tests/translate/storage/test_mo.py::TestMOUnit::test_rich_set PASSED [ 58%] 291s tests/translate/storage/test_mo.py::TestMOUnit::test_context PASSED [ 58%] 291s tests/translate/storage/test_mo.py::TestMOFile::test_create_blank PASSED [ 58%] 291s tests/translate/storage/test_mo.py::TestMOFile::test_add PASSED [ 58%] 291s tests/translate/storage/test_mo.py::TestMOFile::test_remove PASSED [ 58%] 291s tests/translate/storage/test_mo.py::TestMOFile::test_find PASSED [ 59%] 291s tests/translate/storage/test_mo.py::TestMOFile::test_translate PASSED [ 59%] 291s tests/translate/storage/test_mo.py::TestMOFile::test_parse PASSED [ 59%] 291s tests/translate/storage/test_mo.py::TestMOFile::test_files PASSED [ 59%] 291s tests/translate/storage/test_mo.py::TestMOFile::test_save PASSED [ 59%] 291s tests/translate/storage/test_mo.py::TestMOFile::test_markup PASSED [ 59%] 291s tests/translate/storage/test_mo.py::TestMOFile::test_nonascii PASSED [ 59%] 291s tests/translate/storage/test_mo.py::TestMOFile::test_extensions PASSED [ 59%] 291s tests/translate/storage/test_mo.py::TestMOFile::test_mimetypes PASSED [ 59%] 291s tests/translate/storage/test_mo.py::TestMOFile::test_language PASSED [ 59%] 291s tests/translate/storage/test_mo.py::TestMOFile::test_context PASSED [ 59%] 291s tests/translate/storage/test_mo.py::TestMOFile::test_output SKIPPED [ 59%] 291s tests/translate/storage/test_mo.py::TestMOFile::test_endian_version_parsing PASSED [ 59%] 291s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_isfuzzy PASSED [ 59%] 291s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_create PASSED [ 59%] 291s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_eq PASSED [ 59%] 291s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_escapes PASSED [ 59%] 291s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_difficult_escapes PASSED [ 59%] 291s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_note_sanity PASSED [ 59%] 291s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_line_number_default PASSED [ 59%] 291s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_target PASSED [ 59%] 291s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_rich_get PASSED [ 59%] 291s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_rich_set PASSED [ 59%] 291s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_create_blank PASSED [ 59%] 291s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_add PASSED [ 59%] 291s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_remove PASSED [ 59%] 291s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_find PASSED [ 59%] 291s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_parse PASSED [ 59%] 291s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_files PASSED [ 59%] 291s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_save PASSED [ 59%] 291s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_extensions PASSED [ 59%] 291s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_mimetypes PASSED [ 59%] 291s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_translate PASSED [ 59%] 291s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_markup PASSED [ 59%] 291s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_nonascii PASSED [ 59%] 291s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[-] PASSED [ 59%] 291s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String-String] PASSED [ 59%] 291s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok}-String] PASSED [ 59%] 291s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {OK}-String] PASSED [ 59%] 291s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[\u015e\u0167\u0159\u012b\u019e\u0260 {ok}-\u015e\u0167\u0159\u012b\u019e\u0260] PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String{ok}-String] PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String{OK}-String] PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok}-String] PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok} -String] PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_isfuzzy PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_create PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_eq PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_target PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_escapes PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_difficult_escapes PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_note_sanity PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_line_number_default PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_rich_get PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_rich_set PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_translate_but_same PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_untranslated PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_comments PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_copy_target PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_create_blank PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_add PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_remove PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_find PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_translate PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_parse PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_files PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_save PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_markup PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_extensions PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_mimetypes PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_nonascii PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_format_layout PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_crlf PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_active_flag PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_multiline_comments PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_template PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[--False] PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ -Source -True] PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ {ok}-Source-True] PASSED [ 60%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ {ok} -Source-True] PASSED [ 61%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[{ok}-Source-True] PASSED [ 61%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_headers PASSED [ 61%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_not_headers PASSED [ 61%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[0] PASSED [ 61%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[1] PASSED [ 61%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[2] PASSED [ 61%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[3] PASSED [ 61%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_tag_comments PASSED [ 61%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_maxlength PASSED [ 61%] 291s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_line_number PASSED [ 61%] 291s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_isfuzzy PASSED [ 61%] 291s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_create PASSED [ 61%] 291s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_eq PASSED [ 61%] 291s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_target PASSED [ 61%] 291s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_escapes PASSED [ 61%] 291s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_difficult_escapes PASSED [ 61%] 291s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_note_sanity PASSED [ 61%] 291s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_line_number_default PASSED [ 61%] 291s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_rich_get PASSED [ 61%] 291s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_rich_set PASSED [ 61%] 291s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_create_blank PASSED [ 61%] 291s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_add PASSED [ 61%] 291s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_remove PASSED [ 61%] 291s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_find PASSED [ 61%] 291s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_translate PASSED [ 61%] 291s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_parse PASSED [ 61%] 291s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_files PASSED [ 61%] 291s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_save PASSED [ 61%] 291s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_markup PASSED [ 61%] 291s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_nonascii PASSED [ 61%] 291s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_mimetypes PASSED [ 61%] 291s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_extensions XFAIL [ 61%] 291s tests/translate/storage/test_oo.py::test_makekey PASSED [ 61%] 291s tests/translate/storage/test_oo.py::test_escape_help_text PASSED [ 61%] 291s tests/translate/storage/test_oo.py::TestOO::test_simpleentry PASSED [ 61%] 291s tests/translate/storage/test_oo.py::TestOO::test_simpleentry_quickhelptest PASSED [ 61%] 291s tests/translate/storage/test_oo.py::TestOO::test_simpleentry_title PASSED [ 61%] 291s tests/translate/storage/test_oo.py::TestOO::test_blankline PASSED [ 61%] 291s tests/translate/storage/test_oo.py::TestOO::test_fieldlength PASSED [ 62%] 291s tests/translate/storage/test_oo.py::TestOO::test_escapes PASSED [ 62%] 291s tests/translate/storage/test_php.py::test_php_escaping_single_quote PASSED [ 62%] 291s tests/translate/storage/test_php.py::test_php_escaping_double_quote PASSED [ 62%] 291s tests/translate/storage/test_php.py::TestPhpUnit::test_isfuzzy PASSED [ 62%] 291s tests/translate/storage/test_php.py::TestPhpUnit::test_create PASSED [ 62%] 291s tests/translate/storage/test_php.py::TestPhpUnit::test_eq PASSED [ 62%] 291s tests/translate/storage/test_php.py::TestPhpUnit::test_escapes PASSED [ 62%] 291s tests/translate/storage/test_php.py::TestPhpUnit::test_note_sanity PASSED [ 62%] 291s tests/translate/storage/test_php.py::TestPhpUnit::test_line_number_default PASSED [ 62%] 291s tests/translate/storage/test_php.py::TestPhpUnit::test_target PASSED [ 62%] 291s tests/translate/storage/test_php.py::TestPhpUnit::test_rich_get PASSED [ 62%] 291s tests/translate/storage/test_php.py::TestPhpUnit::test_rich_set PASSED [ 62%] 291s tests/translate/storage/test_php.py::TestPhpUnit::test_difficult_escapes PASSED [ 62%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_create_blank PASSED [ 62%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_add PASSED [ 62%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_remove PASSED [ 62%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_find PASSED [ 62%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_parse PASSED [ 62%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_files PASSED [ 62%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_save PASSED [ 62%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_extensions PASSED [ 62%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_mimetypes PASSED [ 62%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_translate PASSED [ 62%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_markup PASSED [ 62%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_nonascii PASSED [ 62%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition PASSED [ 62%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition_source PASSED [ 62%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_spaces_in_name PASSED [ 62%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_comment_definition PASSED [ 62%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_comment_blocks PASSED [ 62%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_comment_output PASSED [ 62%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_comment_add PASSED [ 62%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_multiline PASSED [ 62%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays PASSED [ 62%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_array_no_array_syntax PASSED [ 62%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_spaces PASSED [ 62%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_quotes PASSED [ 62%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_number_as_value PASSED [ 62%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_non_textual PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_define PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_define_with_spaces_before_key PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_after_equal_delimiter PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_after_equal_delimiter_and_before_key PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_no_spaces_after_equal_delimiter PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_no_spaces_after_equaldel_but_before_key PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_entries_with_quotes PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_comments_at_entry_line_end PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_double_slash_comments_before_entries PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_before_end_delimiter PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simpledefinition_spaces_before_end_delimiter PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_no_trailing_comma PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_space_before_comma PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_space_before_array_declaration PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_declared_in_a_single_line PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_no_keys PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_no_keys_assigned_to_array PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_no_keys PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_assignment_in_line_where_multiline_comment_ends PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_using_short_array_syntax PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_space_before_array_declaration PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_unnamed_nested_arrays PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_array_declaration_in_next_line PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_array_with_newline_after_delimiter PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_blank_entries PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_slashstar_in_string PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_heredoc_syntax PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition_after_define PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_quotes PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_concatenation PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_serialize PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_space_before_comma PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_equals_in_id PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_comma_in_string PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_nowdoc PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_plain_concatenation PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_array_keys PASSED [ 63%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_double_var PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_return_array PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_with_spaces PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_with_comments PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_short PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_short_quotes PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestPhpFile::test_addunit PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_isfuzzy PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_create PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_eq PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_escapes PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_difficult_escapes PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_note_sanity PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_line_number_default PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_target PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_rich_get PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_rich_set PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_create_blank PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_remove PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_find PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_parse PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_files PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_save PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_extensions PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_mimetypes PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_translate PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_markup PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_nonascii PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_plurals PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_key_stripping PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_key_stripping_array_syntax PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_key_stripping_numeric_keys PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_roundtrip_short_array PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_roundtrip_array_syntax PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_setid_preserves_structure PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_setid_with_array_syntax PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_addunit_with_setid PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_unit_to_short_array_file PASSED [ 64%] 291s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_unit_to_array_function_file PASSED [ 65%] 291s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_multiple_units_to_short_array PASSED [ 65%] 291s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_multiple_units_to_array_function PASSED [ 65%] 291s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_numeric_keys_no_quotes PASSED [ 65%] 291s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_empty_string_key PASSED [ 65%] 291s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_setid_with_non_string_value PASSED [ 65%] 291s tests/translate/storage/test_po.py::test_roundtrip_quoting PASSED [ 65%] 291s tests/translate/storage/test_po.py::TestPOUnit::test_isfuzzy PASSED [ 65%] 291s tests/translate/storage/test_po.py::TestPOUnit::test_create PASSED [ 65%] 291s tests/translate/storage/test_po.py::TestPOUnit::test_eq PASSED [ 65%] 291s tests/translate/storage/test_po.py::TestPOUnit::test_target PASSED [ 65%] 291s tests/translate/storage/test_po.py::TestPOUnit::test_escapes PASSED [ 65%] 291s tests/translate/storage/test_po.py::TestPOUnit::test_difficult_escapes PASSED [ 65%] 291s tests/translate/storage/test_po.py::TestPOUnit::test_note_sanity PASSED [ 65%] 291s tests/translate/storage/test_po.py::TestPOUnit::test_line_number_default PASSED [ 65%] 291s tests/translate/storage/test_po.py::TestPOUnit::test_rich_get PASSED [ 65%] 291s tests/translate/storage/test_po.py::TestPOUnit::test_rich_set PASSED [ 65%] 291s tests/translate/storage/test_po.py::TestPOUnit::test_istranslatable PASSED [ 65%] 291s tests/translate/storage/test_po.py::TestPOUnit::test_locations PASSED [ 65%] 291s tests/translate/storage/test_po.py::TestPOUnit::test_nongettext_location PASSED [ 65%] 291s tests/translate/storage/test_po.py::TestPOUnit::test_adding_empty_note PASSED [ 65%] 291s tests/translate/storage/test_po.py::TestPOUnit::test_markreview PASSED [ 65%] 291s tests/translate/storage/test_po.py::TestPOUnit::test_errors PASSED [ 65%] 291s tests/translate/storage/test_po.py::TestPOUnit::test_no_plural_settarget PASSED [ 65%] 291s tests/translate/storage/test_po.py::TestPOUnit::test_wrapping_bug PASSED [ 65%] 291s tests/translate/storage/test_po.py::TestPOUnit::test_extract_msgidcomments_from_text PASSED [ 65%] 291s tests/translate/storage/test_po.py::TestPOUnit::test_isheader PASSED [ 65%] 291s tests/translate/storage/test_po.py::TestPOUnit::test_buildfromunit PASSED [ 65%] 291s tests/translate/storage/test_po.py::TestPOFile::test_create_blank PASSED [ 65%] 291s tests/translate/storage/test_po.py::TestPOFile::test_add PASSED [ 65%] 291s tests/translate/storage/test_po.py::TestPOFile::test_remove PASSED [ 65%] 291s tests/translate/storage/test_po.py::TestPOFile::test_find PASSED [ 65%] 291s tests/translate/storage/test_po.py::TestPOFile::test_translate PASSED [ 65%] 291s tests/translate/storage/test_po.py::TestPOFile::test_parse PASSED [ 65%] 291s tests/translate/storage/test_po.py::TestPOFile::test_files PASSED [ 65%] 291s tests/translate/storage/test_po.py::TestPOFile::test_save PASSED [ 65%] 291s tests/translate/storage/test_po.py::TestPOFile::test_markup PASSED [ 65%] 291s tests/translate/storage/test_po.py::TestPOFile::test_nonascii PASSED [ 65%] 291s tests/translate/storage/test_po.py::TestPOFile::test_extensions PASSED [ 65%] 291s tests/translate/storage/test_po.py::TestPOFile::test_mimetypes PASSED [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_context_only PASSED [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_simpleentry PASSED [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_copy PASSED [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_parse_source_string PASSED [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_parse_file PASSED [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_unicode PASSED [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_plurals PASSED [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_plural_unicode PASSED [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_nongettext_location PASSED [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_percent_location PASSED [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_kde_plurals XFAIL [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_empty_lines_notes PASSED [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_fuzzy PASSED [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_untranslated XFAIL [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_merging_automaticcomments PASSED [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_malformed_units PASSED [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_invalid_keyword PASSED [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_malformed_obsolete_units PASSED [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_uniforum_po PASSED [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_obsolete PASSED [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_obsolete_with_prev_msgid PASSED [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_header_escapes PASSED [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete PASSED [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_plural PASSED [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_msgctxt PASSED [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_msgidcomments PASSED [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_multiline_obsolete PASSED [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_merge_duplicates PASSED [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_merge_mixed_sources PASSED [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_parse_context PASSED [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_parse_advanced_context PASSED [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_kde_context PASSED [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_broken_kde_context PASSED [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_id PASSED [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_non_ascii_header_comments PASSED [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_non_ascii_header_comments_2 PASSED [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_final_slash PASSED [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_unfinished_lines PASSED [ 66%] 291s tests/translate/storage/test_po.py::TestPOFile::test_encoding_change PASSED [ 67%] 291s tests/translate/storage/test_po.py::TestPOFile::test_istranslated PASSED [ 67%] 291s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_spaces PASSED [ 67%] 291s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long PASSED [ 67%] 291s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_fit PASSED [ 67%] 291s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_overflow PASSED [ 67%] 291s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_multiline PASSED [ 67%] 291s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_escapes PASSED [ 67%] 291s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_cjk PASSED [ 67%] 291s tests/translate/storage/test_po.py::TestPOFile::test_wrap_emoji PASSED [ 67%] 291s tests/translate/storage/test_po.py::TestPOFile::test_wrap_parenthesis PASSED [ 67%] 291s tests/translate/storage/test_po.py::TestPOFile::test_wrap_escape_line PASSED [ 67%] 291s tests/translate/storage/test_po.py::TestPOFile::test_wrap_parenthesis_long PASSED [ 67%] 291s tests/translate/storage/test_po.py::TestPOFile::test_wrap_gettext PASSED [ 67%] 291s tests/translate/storage/test_po.py::TestPOFile::test_wrap_wide_stop PASSED [ 67%] 291s tests/translate/storage/test_po.py::TestPOFile::test_wrap_escape PASSED [ 67%] 291s tests/translate/storage/test_po.py::TestPOFile::test_msgidcomments PASSED [ 67%] 291s tests/translate/storage/test_po.py::TestPOFile::test_unicode_ids PASSED [ 67%] 291s tests/translate/storage/test_po.py::TestPOFile::test_syntax_error PASSED [ 67%] 291s tests/translate/storage/test_po.py::TestPOFile::test_invalid PASSED [ 67%] 291s tests/translate/storage/test_po.py::TestPOFile::test_c_style_comment_error_reporting PASSED [ 67%] 291s tests/translate/storage/test_po.py::TestPOFile::test_wrapped_msgid PASSED [ 67%] 291s tests/translate/storage/test_po.py::TestPOFile::test_missing_plural PASSED [ 67%] 291s tests/translate/storage/test_po.py::TestPOFile::test_unusual_line_endings PASSED [ 67%] 291s tests/translate/storage/test_po.py::TestPOFile::test_charset_with_space PASSED [ 67%] 291s tests/translate/storage/test_po.py::TestPOFile::test_duplicate_msgid_error PASSED [ 67%] 291s tests/translate/storage/test_pocommon.py::test_roundtrip_quote_plus PASSED [ 67%] 291s tests/translate/storage/test_poheader.py::test_parseheaderstring PASSED [ 67%] 291s tests/translate/storage/test_poheader.py::test_update PASSED [ 67%] 291s tests/translate/storage/test_poheader.py::test_po_dates PASSED [ 67%] 291s tests/translate/storage/test_poheader.py::test_timezones PASSED [ 67%] 291s tests/translate/storage/test_poheader.py::test_header_blank PASSED [ 67%] 291s tests/translate/storage/test_poheader.py::test_plural_equation PASSED [ 67%] 291s tests/translate/storage/test_poheader.py::test_plural_equation_across_lines PASSED [ 67%] 291s tests/translate/storage/test_poheader.py::test_updatecontributor PASSED [ 67%] 291s tests/translate/storage/test_poheader.py::test_updatecontributor_header PASSED [ 67%] 291s tests/translate/storage/test_poheader.py::test_language PASSED [ 67%] 291s tests/translate/storage/test_poheader.py::test_project PASSED [ 67%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_isfuzzy PASSED [ 67%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_create PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_eq PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_target PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_escapes PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_difficult_escapes PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_note_sanity PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_line_number_default PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_rich_get PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_rich_set PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_markreview PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_errors PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_accepted_control_chars PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_unaccepted_control_chars PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_plurals PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_ids PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_create_blank PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_remove PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_find PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_translate PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_files PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_save PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_markup PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_nonascii PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_extensions PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_mimetypes PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_basic PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_namespace PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_rich_source PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_rich_target PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_source PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_target PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_sourcelanguage PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_targetlanguage PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_targetlanguage_multi PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_alttrans PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_fuzzy PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_xml_space PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parsing PASSED [ 68%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_marktranslatable PASSED [ 69%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_entities PASSED [ 69%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_multiple_filenodes PASSED [ 69%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_groups_when_adding_units PASSED [ 69%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_multiple_files_and_groups PASSED [ 69%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_unit_to_existing_group PASSED [ 69%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_unit_to_different_file PASSED [ 69%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_mixed_groups_and_body PASSED [ 69%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_addunit_with_new_false PASSED [ 69%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_namespace_preservation_across_versions PASSED [ 69%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_units_between_different_files PASSED [ 69%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_group_preservation_across_different_namespaces PASSED [ 69%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_cross_namespace_group_and_file_preservation PASSED [ 69%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_indent PASSED [ 69%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_target PASSED [ 69%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve PASSED [ 69%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_closing_tags PASSED [ 69%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_context_groups PASSED [ 69%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_getlocations PASSED [ 69%] 291s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_addlocation PASSED [ 69%] 292s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_huge PASSED [ 69%] 292s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_add PASSED [ 69%] 292s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parse PASSED [ 69%] 292s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parse_plural_alpha_id PASSED [ 69%] 292s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_notes PASSED [ 69%] 292s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_plural PASSED [ 69%] 292s tests/translate/storage/test_properties.py::test_find_delimiter_pos_simple PASSED [ 69%] 292s tests/translate/storage/test_properties.py::test_find_delimiter_pos_multiple PASSED [ 69%] 292s tests/translate/storage/test_properties.py::test_find_delimiter_pos_none PASSED [ 69%] 292s tests/translate/storage/test_properties.py::test_find_delimiter_pos_whitespace PASSED [ 69%] 292s tests/translate/storage/test_properties.py::test_find_delimiter_pos_escapes PASSED [ 69%] 292s tests/translate/storage/test_properties.py::test_find_delimiter_pos_empty_and_whitespace PASSED [ 69%] 292s tests/translate/storage/test_properties.py::test_find_delimiter_pos_tabs PASSED [ 69%] 292s tests/translate/storage/test_properties.py::test_is_line_continuation PASSED [ 69%] 292s tests/translate/storage/test_properties.py::test_key_strip PASSED [ 69%] 292s tests/translate/storage/test_properties.py::test_get_comment_one_line PASSED [ 69%] 292s tests/translate/storage/test_properties.py::test_get_comment_start PASSED [ 69%] 292s tests/translate/storage/test_properties.py::test_get_comment_end PASSED [ 69%] 292s tests/translate/storage/test_properties.py::TestPropUnit::test_isfuzzy PASSED [ 69%] 292s tests/translate/storage/test_properties.py::TestPropUnit::test_create PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestPropUnit::test_eq PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestPropUnit::test_escapes PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestPropUnit::test_difficult_escapes PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestPropUnit::test_note_sanity PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestPropUnit::test_line_number_default PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestPropUnit::test_target PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestPropUnit::test_rich_get PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestPropUnit::test_rich_set PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestGwtProp::test_create_blank PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestGwtProp::test_add PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestGwtProp::test_remove PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestGwtProp::test_find PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestGwtProp::test_parse PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestGwtProp::test_files PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestGwtProp::test_save PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestGwtProp::test_extensions PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestGwtProp::test_mimetypes PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestGwtProp::test_translate PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestGwtProp::test_markup PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestGwtProp::test_nonascii PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestGwtProp::test_quotes PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestGwtProp::test_simpledefinition PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestGwtProp::test_doubledefinition PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestGwtProp::test_doubledefinition_source PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestGwtProp::test_reduce PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestGwtProp::test_increase PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestGwtProp::test_extra_plurals PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestGwtProp::test_non_plurals PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestGwtProp::test_encoding PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestGwtProp::test_other_plurals PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestProp::test_create_blank PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestProp::test_add PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestProp::test_remove PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestProp::test_find PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestProp::test_parse PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestProp::test_files PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestProp::test_save PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestProp::test_extensions PASSED [ 70%] 292s tests/translate/storage/test_properties.py::TestProp::test_mimetypes PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_translate PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_markup PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_nonascii PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_simpledefinition PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_simpledefinition_source PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_controlutf8_source PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_control_source PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_unicode_escaping PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_newlines_startend PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_space PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_whitespace_handling PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_key_value_delimiters_simple PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_tab_delimiter_parsing PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_comments PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_latin1 PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_fullspec_delimiters PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_fullspec_escaped_key PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_fullspec_line_continuation PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_fullspec_key_without_value PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_mac_strings PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_utf_16_save PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_mac_multiline_strings PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_unicode PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_utf8 PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_newlines PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comments PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_multilines_comments PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comments_dropping PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_inline_comments PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_inline_comments_nested PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_inline_comment_with_spaces PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_before_entry PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_between_key_and_equals PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_between_equals_and_value PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_after_value_before_semicolon PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_multiple_inline_comments PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_nested_comment PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_inside_value PASSED [ 71%] 292s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_trailing_whitespace_after_semicolon PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_quotes PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_equals PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_serialization PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_double_backslashes PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestProp::test_override_encoding PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestProp::test_trailing_comments PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestProp::test_utf16_byte_order_mark PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestProp::test_raise_ioerror_if_cannot_detect_encoding PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestProp::test_utf8_byte_order_mark PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestProp::test_utf16_bom_no_warning PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestProp::test_joomla_set_target PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestProp::test_joomla PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestProp::test_joomla_escape PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestProp::test_serialize_missing_delimiter PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestProp::test_serialize_missing_value PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestProp::test_multi_comments PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestProp::test_serialize_note PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestProp::test_serialize_long_note PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestProp::test_trailing_newlines PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestXWiki::test_create_blank PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestXWiki::test_add PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestXWiki::test_remove PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestXWiki::test_find PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestXWiki::test_parse PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestXWiki::test_files PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestXWiki::test_save PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestXWiki::test_extensions PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestXWiki::test_mimetypes PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestXWiki::test_translate PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestXWiki::test_markup PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestXWiki::test_nonascii PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestXWiki::test_simpledefinition PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestXWiki::test_missing_definition PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestXWiki::test_missing_definition_source PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestXWiki::test_definition_with_simple_quote PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestXWiki::test_definition_with_simple_quote_and_argument PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestXWiki::test_header_preserved PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestXWiki::test_blank_line_before_comment_preserved PASSED [ 72%] 292s tests/translate/storage/test_properties.py::TestXWiki::test_deprecated_comments_preserved PASSED [ 73%] 292s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_create_blank PASSED [ 73%] 292s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_add PASSED [ 73%] 292s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_remove PASSED [ 73%] 292s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_find PASSED [ 73%] 292s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_parse PASSED [ 73%] 292s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_files PASSED [ 73%] 292s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_save PASSED [ 73%] 292s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_extensions PASSED [ 73%] 292s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_mimetypes PASSED [ 73%] 292s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_translate PASSED [ 73%] 292s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_markup PASSED [ 73%] 292s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_nonascii PASSED [ 73%] 292s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_simpledefinition PASSED [ 73%] 292s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_missing_definition PASSED [ 73%] 292s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_missing_definition_source PASSED [ 73%] 292s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_simple_quote PASSED [ 73%] 292s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_simple_quote_and_argument PASSED [ 73%] 292s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_encoded_html PASSED [ 73%] 292s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_cleaning_attributes PASSED [ 73%] 292s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_translate_source PASSED [ 73%] 292s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_create_blank PASSED [ 73%] 292s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_add PASSED [ 73%] 292s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_find PASSED [ 73%] 292s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_extensions PASSED [ 73%] 292s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_mimetypes PASSED [ 73%] 292s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_translate PASSED [ 73%] 292s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_markup PASSED [ 73%] 292s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_nonascii PASSED [ 73%] 292s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_simpledefinition PASSED [ 73%] 292s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_parse PASSED [ 73%] 292s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_files PASSED [ 73%] 292s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_save PASSED [ 73%] 292s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_cleaning_attributes PASSED [ 73%] 292s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_remove XFAIL [ 73%] 292s tests/translate/storage/test_pypo.py::TestHelpers::test_unescape PASSED [ 73%] 292s tests/translate/storage/test_pypo.py::TestHelpers::test_quoteforpo PASSED [ 73%] 292s tests/translate/storage/test_pypo.py::TestHelpers::test_quoteforpo_escaped_quotes PASSED [ 73%] 292s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_isfuzzy PASSED [ 73%] 292s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_create PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_eq PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_target PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_escapes PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_difficult_escapes PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_note_sanity PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_line_number_default PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_rich_get PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_rich_set PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_istranslatable PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_locations PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_nongettext_location PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_adding_empty_note PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_markreview PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_errors PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_no_plural_settarget PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrapping_bug PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_extract_msgidcomments_from_text PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_isheader PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_buildfromunit PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_plurals PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_plural_reduction PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes_withcomments PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes_with_blank_lines PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_firstlines PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_newlines PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_max_line_length PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_slash PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_spacing_max_line PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_create_blank PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_add PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_remove PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_find PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_translate PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_files PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_save PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_markup PASSED [ 74%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_nonascii PASSED [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_extensions PASSED [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mimetypes PASSED [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_context_only PASSED [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_simpleentry PASSED [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_copy PASSED [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_source_string PASSED [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_file PASSED [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode PASSED [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_plurals PASSED [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_plural_unicode PASSED [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_nongettext_location PASSED [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_percent_location PASSED [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_plurals XFAIL [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_empty_lines_notes PASSED [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_fuzzy PASSED [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_untranslated XFAIL [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merging_automaticcomments PASSED [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_malformed_units PASSED [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_invalid_keyword PASSED [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_malformed_obsolete_units PASSED [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_uniforum_po PASSED [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_obsolete PASSED [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_obsolete_with_prev_msgid PASSED [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_header_escapes PASSED [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete PASSED [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_plural PASSED [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_msgctxt PASSED [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_msgidcomments PASSED [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_multiline_obsolete PASSED [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_duplicates PASSED [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_mixed_sources PASSED [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_context PASSED [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_advanced_context PASSED [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_context PASSED [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_broken_kde_context PASSED [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_id PASSED [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_non_ascii_header_comments PASSED [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_non_ascii_header_comments_2 PASSED [ 75%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_final_slash PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unfinished_lines PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_encoding_change PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_istranslated PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_spaces PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_fit PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_overflow PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_multiline PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_escapes PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_cjk PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_emoji PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_parenthesis PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_escape_line PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_parenthesis_long PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_gettext PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_wide_stop PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_escape PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_msgidcomments PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode_ids PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_syntax_error PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_c_style_comment_error_reporting PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapped_msgid PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_missing_plural PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unusual_line_endings PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_charset_with_space PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_duplicate_msgid_error PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_combine_msgidcomments PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_duplicates_msgctxt PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_blanks PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_output_str_unicode PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_posections PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_typecomments PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_future_flags PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unassociated_comments PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode_header PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_prevmsgid_parse PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_newlines PASSED [ 76%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unix_newlines PASSED [ 77%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines PASSED [ 77%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mac_newlines PASSED [ 77%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines PASSED [ 77%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_header PASSED [ 77%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_comment PASSED [ 77%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_bom PASSED [ 77%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_long_msgidcomments PASSED [ 77%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_incomplete PASSED [ 77%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_invalid PASSED [ 77%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines_write PASSED [ 77%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_typecomment XFAIL [ 77%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines_typecomment PASSED [ 77%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_custom PASSED [ 77%] 292s tests/translate/storage/test_pypo.py::TestPYPOFile::test_line_number PASSED [ 77%] 292s tests/translate/storage/test_qm.py::TestQtUnit::test_isfuzzy PASSED [ 77%] 292s tests/translate/storage/test_qm.py::TestQtUnit::test_create PASSED [ 77%] 292s tests/translate/storage/test_qm.py::TestQtUnit::test_eq PASSED [ 77%] 292s tests/translate/storage/test_qm.py::TestQtUnit::test_target PASSED [ 77%] 292s tests/translate/storage/test_qm.py::TestQtUnit::test_escapes PASSED [ 77%] 292s tests/translate/storage/test_qm.py::TestQtUnit::test_difficult_escapes PASSED [ 77%] 292s tests/translate/storage/test_qm.py::TestQtUnit::test_note_sanity PASSED [ 77%] 292s tests/translate/storage/test_qm.py::TestQtUnit::test_line_number_default PASSED [ 77%] 292s tests/translate/storage/test_qm.py::TestQtUnit::test_rich_get PASSED [ 77%] 292s tests/translate/storage/test_qm.py::TestQtUnit::test_rich_set PASSED [ 77%] 292s tests/translate/storage/test_qm.py::TestQtFile::test_create_blank PASSED [ 77%] 292s tests/translate/storage/test_qm.py::TestQtFile::test_find PASSED [ 77%] 292s tests/translate/storage/test_qm.py::TestQtFile::test_translate PASSED [ 77%] 292s tests/translate/storage/test_qm.py::TestQtFile::test_markup PASSED [ 77%] 292s tests/translate/storage/test_qm.py::TestQtFile::test_extensions PASSED [ 77%] 292s tests/translate/storage/test_qm.py::TestQtFile::test_mimetypes PASSED [ 77%] 292s tests/translate/storage/test_qm.py::TestQtFile::test_parse PASSED [ 77%] 292s tests/translate/storage/test_qm.py::TestQtFile::test_save PASSED [ 77%] 292s tests/translate/storage/test_qm.py::TestQtFile::test_files PASSED [ 77%] 292s tests/translate/storage/test_qm.py::TestQtFile::test_nonascii PASSED [ 77%] 292s tests/translate/storage/test_qm.py::TestQtFile::test_add PASSED [ 77%] 292s tests/translate/storage/test_qm.py::TestQtFile::test_remove PASSED [ 77%] 292s tests/translate/storage/test_qph.py::TestQphUnit::test_isfuzzy PASSED [ 77%] 292s tests/translate/storage/test_qph.py::TestQphUnit::test_create PASSED [ 77%] 292s tests/translate/storage/test_qph.py::TestQphUnit::test_eq PASSED [ 78%] 292s tests/translate/storage/test_qph.py::TestQphUnit::test_target PASSED [ 78%] 292s tests/translate/storage/test_qph.py::TestQphUnit::test_escapes PASSED [ 78%] 292s tests/translate/storage/test_qph.py::TestQphUnit::test_difficult_escapes PASSED [ 78%] 292s tests/translate/storage/test_qph.py::TestQphUnit::test_note_sanity PASSED [ 78%] 292s tests/translate/storage/test_qph.py::TestQphUnit::test_line_number_default PASSED [ 78%] 292s tests/translate/storage/test_qph.py::TestQphUnit::test_rich_get PASSED [ 78%] 292s tests/translate/storage/test_qph.py::TestQphUnit::test_rich_set PASSED [ 78%] 292s tests/translate/storage/test_qph.py::TestQphFile::test_create_blank PASSED [ 78%] 292s tests/translate/storage/test_qph.py::TestQphFile::test_add PASSED [ 78%] 292s tests/translate/storage/test_qph.py::TestQphFile::test_remove PASSED [ 78%] 292s tests/translate/storage/test_qph.py::TestQphFile::test_find PASSED [ 78%] 292s tests/translate/storage/test_qph.py::TestQphFile::test_translate PASSED [ 78%] 292s tests/translate/storage/test_qph.py::TestQphFile::test_parse PASSED [ 78%] 292s tests/translate/storage/test_qph.py::TestQphFile::test_files PASSED [ 78%] 292s tests/translate/storage/test_qph.py::TestQphFile::test_save PASSED [ 78%] 292s tests/translate/storage/test_qph.py::TestQphFile::test_markup PASSED [ 78%] 292s tests/translate/storage/test_qph.py::TestQphFile::test_nonascii PASSED [ 78%] 292s tests/translate/storage/test_qph.py::TestQphFile::test_extensions PASSED [ 78%] 292s tests/translate/storage/test_qph.py::TestQphFile::test_mimetypes PASSED [ 78%] 292s tests/translate/storage/test_qph.py::TestQphFile::test_basic PASSED [ 78%] 292s tests/translate/storage/test_qph.py::TestQphFile::test_source PASSED [ 78%] 292s tests/translate/storage/test_qph.py::TestQphFile::test_target PASSED [ 78%] 292s tests/translate/storage/test_qph.py::TestQphFile::test_language PASSED [ 78%] 292s tests/translate/storage/test_rc.py::test_escaping PASSED [ 78%] 292s tests/translate/storage/test_rc.py::TestRcFile::test_parse_only_comments PASSED [ 78%] 292s tests/translate/storage/test_rc.py::TestRcFile::test_parse_only_textinclude PASSED [ 78%] 292s tests/translate/storage/test_rc.py::TestRcFile::test_parse_dialog PASSED [ 78%] 292s tests/translate/storage/test_rc.py::TestRcFile::test_parse_stringtable PASSED [ 78%] 292s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_lf PASSED [ 78%] 292s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_crlf PASSED [ 78%] 292s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_cr PASSED [ 78%] 292s tests/translate/storage/test_rc.py::TestRcFile::test_parse_no_language PASSED [ 78%] 292s tests/translate/storage/test_rc.py::TestRcFile::test_textinclude PASSED [ 78%] 292s tests/translate/storage/test_rc.py::TestRcFile::test_multiline PASSED [ 78%] 292s tests/translate/storage/test_rc.py::TestRcFile::test_str PASSED [ 78%] 292s tests/translate/storage/test_rc.py::TestRcFile::test_empty PASSED [ 78%] 292s tests/translate/storage/test_rc.py::TestRcFile::test_utf_8 PASSED [ 78%] 292s tests/translate/storage/test_rc.py::TestRcFile::test_utf_16 PASSED [ 78%] 292s tests/translate/storage/test_rc.py::TestRcFile::test_comment PASSED [ 79%] 292s tests/translate/storage/test_rc.py::TestRcFile::test_stringtables PASSED [ 79%] 292s tests/translate/storage/test_rc.py::TestRcFile::test_textinclude_appstudio PASSED [ 79%] 292s tests/translate/storage/test_rc.py::TestRcFile::test_id_whitespace PASSED [ 79%] 292s tests/translate/storage/test_rc.py::TestRcFile::test_menu_comment PASSED [ 79%] 292s tests/translate/storage/test_rc.py::TestRcFile::test_decompiled PASSED [ 79%] 292s tests/translate/storage/test_rc.py::TestRcFile::test_quotes PASSED [ 79%] 292s tests/translate/storage/test_rc.py::TestRcFile::test_utf16_pragma_code_page PASSED [ 79%] 292s tests/translate/storage/test_rc.py::TestRcFile::test_utf8_pragma_code_page PASSED [ 79%] 292s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_isfuzzy PASSED [ 79%] 292s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_create PASSED [ 79%] 292s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_eq PASSED [ 79%] 292s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_escapes PASSED [ 79%] 292s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_difficult_escapes PASSED [ 79%] 292s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_note_sanity PASSED [ 79%] 292s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_line_number_default PASSED [ 79%] 292s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_target PASSED [ 79%] 292s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_rich_get PASSED [ 79%] 292s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_rich_set PASSED [ 79%] 292s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_create_blank PASSED [ 79%] 292s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_add PASSED [ 79%] 292s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_remove PASSED [ 79%] 292s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_find PASSED [ 79%] 292s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_parse PASSED [ 79%] 292s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_files PASSED [ 79%] 292s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_save PASSED [ 79%] 292s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_extensions PASSED [ 79%] 292s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_mimetypes PASSED [ 79%] 292s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_translate PASSED [ 79%] 292s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_markup PASSED [ 79%] 292s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_nonascii PASSED [ 79%] 292s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_roundtrip PASSED [ 79%] 292s tests/translate/storage/test_resx.py::TestRESXUnit::test_isfuzzy PASSED [ 79%] 292s tests/translate/storage/test_resx.py::TestRESXUnit::test_create PASSED [ 79%] 292s tests/translate/storage/test_resx.py::TestRESXUnit::test_eq PASSED [ 79%] 292s tests/translate/storage/test_resx.py::TestRESXUnit::test_escapes PASSED [ 79%] 292s tests/translate/storage/test_resx.py::TestRESXUnit::test_difficult_escapes PASSED [ 79%] 292s tests/translate/storage/test_resx.py::TestRESXUnit::test_note_sanity PASSED [ 79%] 292s tests/translate/storage/test_resx.py::TestRESXUnit::test_line_number_default PASSED [ 79%] 292s tests/translate/storage/test_resx.py::TestRESXUnit::test_target PASSED [ 80%] 292s tests/translate/storage/test_resx.py::TestRESXUnit::test_rich_get PASSED [ 80%] 292s tests/translate/storage/test_resx.py::TestRESXUnit::test_rich_set PASSED [ 80%] 292s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_isfuzzy PASSED [ 80%] 292s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_create PASSED [ 80%] 292s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_eq PASSED [ 80%] 292s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_escapes PASSED [ 80%] 292s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_difficult_escapes PASSED [ 80%] 292s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_note_sanity PASSED [ 80%] 292s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_line_number_default PASSED [ 80%] 292s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_target PASSED [ 80%] 292s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_rich_get PASSED [ 80%] 292s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_rich_set PASSED [ 80%] 292s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_newunit PASSED [ 80%] 292s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_newunit_comment PASSED [ 80%] 292s tests/translate/storage/test_resx.py::TestRESXfile::test_create_blank PASSED [ 80%] 292s tests/translate/storage/test_resx.py::TestRESXfile::test_add PASSED [ 80%] 292s tests/translate/storage/test_resx.py::TestRESXfile::test_remove PASSED [ 80%] 292s tests/translate/storage/test_resx.py::TestRESXfile::test_find PASSED [ 80%] 292s tests/translate/storage/test_resx.py::TestRESXfile::test_parse PASSED [ 80%] 292s tests/translate/storage/test_resx.py::TestRESXfile::test_files PASSED [ 80%] 292s tests/translate/storage/test_resx.py::TestRESXfile::test_save PASSED [ 80%] 292s tests/translate/storage/test_resx.py::TestRESXfile::test_extensions PASSED [ 80%] 292s tests/translate/storage/test_resx.py::TestRESXfile::test_mimetypes PASSED [ 80%] 292s tests/translate/storage/test_resx.py::TestRESXfile::test_translate PASSED [ 80%] 292s tests/translate/storage/test_resx.py::TestRESXfile::test_markup PASSED [ 80%] 292s tests/translate/storage/test_resx.py::TestRESXfile::test_nonascii PASSED [ 80%] 292s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_isfuzzy PASSED [ 80%] 292s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_create PASSED [ 80%] 292s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_eq PASSED [ 80%] 292s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_escapes PASSED [ 80%] 292s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_difficult_escapes PASSED [ 80%] 292s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_note_sanity PASSED [ 80%] 292s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_line_number_default PASSED [ 80%] 292s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_target PASSED [ 80%] 292s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_rich_get PASSED [ 80%] 292s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_rich_set PASSED [ 80%] 292s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_source PASSED [ 80%] 292s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_eq_formatvaluetype PASSED [ 80%] 292s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_innerkey PASSED [ 81%] 292s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_create_blank PASSED [ 81%] 292s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_add PASSED [ 81%] 292s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_remove PASSED [ 81%] 292s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_find PASSED [ 81%] 292s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_parse PASSED [ 81%] 292s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_files PASSED [ 81%] 292s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_save PASSED [ 81%] 292s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_extensions PASSED [ 81%] 292s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_mimetypes PASSED [ 81%] 292s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_translate PASSED [ 81%] 292s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_markup PASSED [ 81%] 292s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_nonascii PASSED [ 81%] 292s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_serialize PASSED [ 81%] 292s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_default_handlings PASSED [ 81%] 292s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_filename PASSED [ 81%] 292s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_base_filename PASSED [ 81%] 292s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_filename_default_language PASSED [ 81%] 292s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_plural_zero_always_set PASSED [ 81%] 292s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_add_unit PASSED [ 81%] 292s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_create_blank PASSED [ 81%] 292s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_add PASSED [ 81%] 292s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_remove PASSED [ 81%] 292s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_find PASSED [ 81%] 292s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_parse PASSED [ 81%] 292s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_files PASSED [ 81%] 292s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_save PASSED [ 81%] 292s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_extensions PASSED [ 81%] 292s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_mimetypes PASSED [ 81%] 292s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_translate PASSED [ 81%] 292s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_markup PASSED [ 81%] 292s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_nonascii PASSED [ 81%] 292s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_ordering PASSED [ 81%] 292s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_create_blank PASSED [ 81%] 292s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_add PASSED [ 81%] 292s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_remove PASSED [ 81%] 292s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_find PASSED [ 81%] 292s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_parse PASSED [ 81%] 292s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_files PASSED [ 81%] 292s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_save PASSED [ 82%] 292s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_extensions PASSED [ 82%] 292s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_mimetypes PASSED [ 82%] 292s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_translate PASSED [ 82%] 292s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_markup PASSED [ 82%] 292s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_nonascii PASSED [ 82%] 292s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_ordering PASSED [ 82%] 292s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_note_sanity XFAIL [ 82%] 292s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_create_blank PASSED [ 82%] 292s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_add PASSED [ 82%] 292s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_remove PASSED [ 82%] 292s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_find PASSED [ 82%] 293s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_parse PASSED [ 82%] 293s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_files PASSED [ 82%] 293s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_save PASSED [ 82%] 293s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_extensions PASSED [ 82%] 293s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_mimetypes PASSED [ 82%] 293s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_translate PASSED [ 82%] 293s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_markup PASSED [ 82%] 293s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_nonascii PASSED [ 82%] 293s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_ordering PASSED [ 82%] 293s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_create_blank PASSED [ 82%] 293s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_add PASSED [ 82%] 293s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_remove PASSED [ 82%] 293s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_find PASSED [ 82%] 293s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_parse PASSED [ 82%] 293s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_files PASSED [ 82%] 293s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_save PASSED [ 82%] 293s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_extensions PASSED [ 82%] 293s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_mimetypes PASSED [ 82%] 293s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_translate PASSED [ 82%] 293s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_markup PASSED [ 82%] 293s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_nonascii PASSED [ 82%] 293s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_ordering PASSED [ 82%] 293s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_style_preservation PASSED [ 82%] 293s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_create_blank PASSED [ 82%] 293s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_add PASSED [ 82%] 293s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_remove PASSED [ 82%] 293s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_find PASSED [ 82%] 293s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_parse PASSED [ 83%] 293s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_files PASSED [ 83%] 293s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_save PASSED [ 83%] 293s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_extensions PASSED [ 83%] 293s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_mimetypes PASSED [ 83%] 293s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_translate PASSED [ 83%] 293s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_markup PASSED [ 83%] 293s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_nonascii PASSED [ 83%] 293s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_ordering PASSED [ 83%] 293s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_style_preservation PASSED [ 83%] 293s tests/translate/storage/test_tbx.py::TestTBXUnit::test_isfuzzy PASSED [ 83%] 293s tests/translate/storage/test_tbx.py::TestTBXUnit::test_create PASSED [ 83%] 293s tests/translate/storage/test_tbx.py::TestTBXUnit::test_eq PASSED [ 83%] 293s tests/translate/storage/test_tbx.py::TestTBXUnit::test_target PASSED [ 83%] 293s tests/translate/storage/test_tbx.py::TestTBXUnit::test_escapes PASSED [ 83%] 293s tests/translate/storage/test_tbx.py::TestTBXUnit::test_difficult_escapes PASSED [ 83%] 293s tests/translate/storage/test_tbx.py::TestTBXUnit::test_note_sanity PASSED [ 83%] 293s tests/translate/storage/test_tbx.py::TestTBXUnit::test_line_number_default PASSED [ 83%] 293s tests/translate/storage/test_tbx.py::TestTBXUnit::test_rich_get PASSED [ 83%] 293s tests/translate/storage/test_tbx.py::TestTBXUnit::test_rich_set PASSED [ 83%] 293s tests/translate/storage/test_tbx.py::TestTBXfile::test_create_blank PASSED [ 83%] 293s tests/translate/storage/test_tbx.py::TestTBXfile::test_add PASSED [ 83%] 293s tests/translate/storage/test_tbx.py::TestTBXfile::test_remove PASSED [ 83%] 293s tests/translate/storage/test_tbx.py::TestTBXfile::test_find PASSED [ 83%] 293s tests/translate/storage/test_tbx.py::TestTBXfile::test_translate PASSED [ 83%] 293s tests/translate/storage/test_tbx.py::TestTBXfile::test_parse PASSED [ 83%] 293s tests/translate/storage/test_tbx.py::TestTBXfile::test_files PASSED [ 83%] 293s tests/translate/storage/test_tbx.py::TestTBXfile::test_save PASSED [ 83%] 293s tests/translate/storage/test_tbx.py::TestTBXfile::test_markup PASSED [ 83%] 293s tests/translate/storage/test_tbx.py::TestTBXfile::test_nonascii PASSED [ 83%] 293s tests/translate/storage/test_tbx.py::TestTBXfile::test_extensions PASSED [ 83%] 293s tests/translate/storage/test_tbx.py::TestTBXfile::test_mimetypes PASSED [ 83%] 293s tests/translate/storage/test_tbx.py::TestTBXfile::test_basic PASSED [ 83%] 293s tests/translate/storage/test_tbx.py::TestTBXfile::test_source PASSED [ 83%] 293s tests/translate/storage/test_tbx.py::TestTBXfile::test_target PASSED [ 83%] 293s tests/translate/storage/test_tbx.py::TestTBXfile::test_setid PASSED [ 83%] 293s tests/translate/storage/test_tbx.py::TestTBXfile::test_indent PASSED [ 83%] 293s tests/translate/storage/test_tbx.py::TestTBXfile::test_descrip PASSED [ 83%] 293s tests/translate/storage/test_tbx.py::TestTBXfile::test_note_from PASSED [ 83%] 293s tests/translate/storage/test_tbx.py::TestTBXfile::test_administrative_status_and_translation_needed PASSED [ 84%] 293s tests/translate/storage/test_tiki.py::TestTikiUnit::test_locations PASSED [ 84%] 293s tests/translate/storage/test_tiki.py::TestTikiUnit::test_to_unicode PASSED [ 84%] 293s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_simple PASSED [ 84%] 293s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_encode PASSED [ 84%] 293s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_locations PASSED [ 84%] 293s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_ignore_extras PASSED [ 84%] 293s tests/translate/storage/test_tmx.py::TestTMXUnit::test_isfuzzy PASSED [ 84%] 293s tests/translate/storage/test_tmx.py::TestTMXUnit::test_create PASSED [ 84%] 293s tests/translate/storage/test_tmx.py::TestTMXUnit::test_eq PASSED [ 84%] 293s tests/translate/storage/test_tmx.py::TestTMXUnit::test_target PASSED [ 84%] 293s tests/translate/storage/test_tmx.py::TestTMXUnit::test_escapes PASSED [ 84%] 293s tests/translate/storage/test_tmx.py::TestTMXUnit::test_difficult_escapes PASSED [ 84%] 293s tests/translate/storage/test_tmx.py::TestTMXUnit::test_note_sanity PASSED [ 84%] 293s tests/translate/storage/test_tmx.py::TestTMXUnit::test_line_number_default PASSED [ 84%] 293s tests/translate/storage/test_tmx.py::TestTMXUnit::test_rich_get PASSED [ 84%] 293s tests/translate/storage/test_tmx.py::TestTMXUnit::test_rich_set PASSED [ 84%] 293s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_isfuzzy PASSED [ 84%] 293s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_create PASSED [ 84%] 293s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_eq PASSED [ 84%] 293s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_target PASSED [ 84%] 293s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_escapes PASSED [ 84%] 293s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_difficult_escapes PASSED [ 84%] 293s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_note_sanity PASSED [ 84%] 293s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_line_number_default PASSED [ 84%] 293s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_rich_get PASSED [ 84%] 293s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_rich_set PASSED [ 84%] 293s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_context PASSED [ 84%] 293s tests/translate/storage/test_tmx.py::TestTMXfile::test_create_blank PASSED [ 84%] 293s tests/translate/storage/test_tmx.py::TestTMXfile::test_add PASSED [ 84%] 293s tests/translate/storage/test_tmx.py::TestTMXfile::test_remove PASSED [ 84%] 293s tests/translate/storage/test_tmx.py::TestTMXfile::test_find PASSED [ 84%] 293s tests/translate/storage/test_tmx.py::TestTMXfile::test_parse PASSED [ 84%] 293s tests/translate/storage/test_tmx.py::TestTMXfile::test_files PASSED [ 84%] 293s tests/translate/storage/test_tmx.py::TestTMXfile::test_save PASSED [ 84%] 293s tests/translate/storage/test_tmx.py::TestTMXfile::test_markup PASSED [ 84%] 293s tests/translate/storage/test_tmx.py::TestTMXfile::test_nonascii PASSED [ 84%] 293s tests/translate/storage/test_tmx.py::TestTMXfile::test_extensions PASSED [ 84%] 293s tests/translate/storage/test_tmx.py::TestTMXfile::test_mimetypes PASSED [ 84%] 293s tests/translate/storage/test_tmx.py::TestTMXfile::test_translate PASSED [ 85%] 293s tests/translate/storage/test_tmx.py::TestTMXfile::test_addtranslation PASSED [ 85%] 293s tests/translate/storage/test_tmx.py::TestTMXfile::test_withcomment PASSED [ 85%] 293s tests/translate/storage/test_tmx.py::TestTMXfile::test_withnewlines PASSED [ 85%] 293s tests/translate/storage/test_tmx.py::TestTMXfile::test_xmlentities PASSED [ 85%] 293s tests/translate/storage/test_tmx.py::TestTMXfile::test_controls_cleaning PASSED [ 85%] 293s tests/translate/storage/test_tmx.py::TestTMXfile::test_context PASSED [ 85%] 293s tests/translate/storage/test_tmx.py::TestTMXfile::test_note_order PASSED [ 85%] 293s tests/translate/storage/test_tmx.py::TestTMXfile::test_prop_and_note_order PASSED [ 85%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_isfuzzy PASSED [ 85%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_create PASSED [ 85%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_eq PASSED [ 85%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_escapes PASSED [ 85%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_difficult_escapes PASSED [ 85%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_note_sanity PASSED [ 85%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_line_number_default PASSED [ 85%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_target PASSED [ 85%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_rich_get PASSED [ 85%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_rich_set PASSED [ 85%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_getlocations PASSED [ 85%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_create_blank PASSED [ 85%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_add PASSED [ 85%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_find PASSED [ 85%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_parse PASSED [ 85%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_files PASSED [ 85%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_save PASSED [ 85%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_extensions PASSED [ 85%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_mimetypes PASSED [ 85%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_translate PASSED [ 85%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_markup PASSED [ 85%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_nonascii PASSED [ 85%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_serialize PASSED [ 85%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_empty PASSED [ 85%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_edit PASSED [ 85%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_edit_unicode PASSED [ 85%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_parse_unicode_list PASSED [ 85%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_ordering PASSED [ 85%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_nested PASSED [ 85%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_multiline PASSED [ 85%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_boolean PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_integer PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_no_quote_strings PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_double_quote_strings PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_single_quote_strings PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_escaped_double_quotes PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_newlines PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_list PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_inline_table PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_key_nesting PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_add_to_empty PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_dict_in_list PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_remove PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_special PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_extraction_simple PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_extraction_multiline PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_no_comment_backwards_compat PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_simple PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_multiline PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_nested PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_with_modification PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_literal_string PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_multiline_basic_string PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_multiline_literal_string PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_create_blank PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_add PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_remove PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_find PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_parse PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_files PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_save PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_extensions PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_mimetypes PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_translate PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_markup PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_nonascii PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_simple_plural PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_plural_with_other_keys PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_full_plural_forms PASSED [ 86%] 293s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_roundtrip_plural PASSED [ 87%] 293s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_mixed_content PASSED [ 87%] 293s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_letsencrypt_style PASSED [ 87%] 293s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_comment_preservation_goi18n PASSED [ 87%] 293s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_comment_preservation_goi18n_plural PASSED [ 87%] 293s tests/translate/storage/test_trados.py::test_unescape PASSED [ 87%] 293s tests/translate/storage/test_trados.py::test_escape PASSED [ 87%] 293s tests/translate/storage/test_ts.py::TestTS::test_construct PASSED [ 87%] 293s tests/translate/storage/test_ts2.py::TestTSUnit::test_isfuzzy PASSED [ 87%] 293s tests/translate/storage/test_ts2.py::TestTSUnit::test_create PASSED [ 87%] 293s tests/translate/storage/test_ts2.py::TestTSUnit::test_eq PASSED [ 87%] 293s tests/translate/storage/test_ts2.py::TestTSUnit::test_target PASSED [ 87%] 293s tests/translate/storage/test_ts2.py::TestTSUnit::test_escapes PASSED [ 87%] 293s tests/translate/storage/test_ts2.py::TestTSUnit::test_difficult_escapes PASSED [ 87%] 293s tests/translate/storage/test_ts2.py::TestTSUnit::test_note_sanity PASSED [ 87%] 293s tests/translate/storage/test_ts2.py::TestTSUnit::test_line_number_default PASSED [ 87%] 293s tests/translate/storage/test_ts2.py::TestTSUnit::test_rich_get PASSED [ 87%] 293s tests/translate/storage/test_ts2.py::TestTSUnit::test_rich_set PASSED [ 87%] 293s tests/translate/storage/test_ts2.py::TestTSfile::test_create_blank PASSED [ 87%] 293s tests/translate/storage/test_ts2.py::TestTSfile::test_add PASSED [ 87%] 293s tests/translate/storage/test_ts2.py::TestTSfile::test_remove PASSED [ 87%] 293s tests/translate/storage/test_ts2.py::TestTSfile::test_find PASSED [ 87%] 293s tests/translate/storage/test_ts2.py::TestTSfile::test_translate PASSED [ 87%] 293s tests/translate/storage/test_ts2.py::TestTSfile::test_parse PASSED [ 87%] 293s tests/translate/storage/test_ts2.py::TestTSfile::test_files PASSED [ 87%] 293s tests/translate/storage/test_ts2.py::TestTSfile::test_save PASSED [ 87%] 293s tests/translate/storage/test_ts2.py::TestTSfile::test_markup PASSED [ 87%] 293s tests/translate/storage/test_ts2.py::TestTSfile::test_nonascii PASSED [ 87%] 293s tests/translate/storage/test_ts2.py::TestTSfile::test_extensions PASSED [ 87%] 293s tests/translate/storage/test_ts2.py::TestTSfile::test_mimetypes PASSED [ 87%] 293s tests/translate/storage/test_ts2.py::TestTSfile::test_basic PASSED [ 87%] 293s tests/translate/storage/test_ts2.py::TestTSfile::test_source PASSED [ 87%] 293s tests/translate/storage/test_ts2.py::TestTSfile::test_target PASSED [ 87%] 293s tests/translate/storage/test_ts2.py::TestTSfile::test_plurals PASSED [ 87%] 293s tests/translate/storage/test_ts2.py::TestTSfile::test_nplural PASSED [ 87%] 293s tests/translate/storage/test_ts2.py::TestTSfile::test_language PASSED [ 87%] 293s tests/translate/storage/test_ts2.py::TestTSfile::test_edit PASSED [ 87%] 293s tests/translate/storage/test_ts2.py::TestTSfile::test_obsolete PASSED [ 87%] 293s tests/translate/storage/test_ts2.py::TestTSfile::test_locations PASSED [ 87%] 293s tests/translate/storage/test_ts2.py::TestTSfile::test_merge_with_fuzzies PASSED [ 88%] 293s tests/translate/storage/test_ts2.py::TestTSfile::test_getid PASSED [ 88%] 293s tests/translate/storage/test_ts2.py::TestTSfile::test_backnforth PASSED [ 88%] 293s tests/translate/storage/test_ts2.py::TestTSfile::test_context PASSED [ 88%] 293s tests/translate/storage/test_ts2.py::TestTSfile::test_roundtrip_context PASSED [ 88%] 293s tests/translate/storage/test_ts2.py::TestTSfile::test_edit_missing_translation PASSED [ 88%] 293s tests/translate/storage/test_ts2.py::TestTSfile::test_missing_source PASSED [ 88%] 293s tests/translate/storage/test_txt.py::TestTxtUnit::test_isfuzzy PASSED [ 88%] 293s tests/translate/storage/test_txt.py::TestTxtUnit::test_create PASSED [ 88%] 293s tests/translate/storage/test_txt.py::TestTxtUnit::test_eq PASSED [ 88%] 293s tests/translate/storage/test_txt.py::TestTxtUnit::test_escapes PASSED [ 88%] 293s tests/translate/storage/test_txt.py::TestTxtUnit::test_difficult_escapes PASSED [ 88%] 293s tests/translate/storage/test_txt.py::TestTxtUnit::test_note_sanity PASSED [ 88%] 293s tests/translate/storage/test_txt.py::TestTxtUnit::test_line_number_default PASSED [ 88%] 293s tests/translate/storage/test_txt.py::TestTxtUnit::test_target PASSED [ 88%] 293s tests/translate/storage/test_txt.py::TestTxtUnit::test_rich_get PASSED [ 88%] 293s tests/translate/storage/test_txt.py::TestTxtUnit::test_rich_set PASSED [ 88%] 293s tests/translate/storage/test_txt.py::TestTxtFile::test_create_blank PASSED [ 88%] 293s tests/translate/storage/test_txt.py::TestTxtFile::test_add PASSED [ 88%] 293s tests/translate/storage/test_txt.py::TestTxtFile::test_remove PASSED [ 88%] 293s tests/translate/storage/test_txt.py::TestTxtFile::test_find PASSED [ 88%] 293s tests/translate/storage/test_txt.py::TestTxtFile::test_parse PASSED [ 88%] 293s tests/translate/storage/test_txt.py::TestTxtFile::test_files PASSED [ 88%] 293s tests/translate/storage/test_txt.py::TestTxtFile::test_save PASSED [ 88%] 293s tests/translate/storage/test_txt.py::TestTxtFile::test_extensions PASSED [ 88%] 293s tests/translate/storage/test_txt.py::TestTxtFile::test_mimetypes PASSED [ 88%] 293s tests/translate/storage/test_txt.py::TestTxtFile::test_translate PASSED [ 88%] 293s tests/translate/storage/test_txt.py::TestTxtFile::test_markup PASSED [ 88%] 293s tests/translate/storage/test_txt.py::TestTxtFile::test_nonascii PASSED [ 88%] 293s tests/translate/storage/test_txt.py::TestTxtFile::test_simpleblock PASSED [ 88%] 293s tests/translate/storage/test_txt.py::TestTxtFile::test_multipleblocks PASSED [ 88%] 293s tests/translate/storage/test_txt.py::TestTxtFile::test_no_segmentation PASSED [ 88%] 293s tests/translate/storage/test_utx.py::TestUtxUnit::test_isfuzzy PASSED [ 88%] 293s tests/translate/storage/test_utx.py::TestUtxUnit::test_create PASSED [ 88%] 293s tests/translate/storage/test_utx.py::TestUtxUnit::test_eq PASSED [ 88%] 293s tests/translate/storage/test_utx.py::TestUtxUnit::test_target PASSED [ 88%] 293s tests/translate/storage/test_utx.py::TestUtxUnit::test_escapes PASSED [ 88%] 293s tests/translate/storage/test_utx.py::TestUtxUnit::test_difficult_escapes PASSED [ 88%] 293s tests/translate/storage/test_utx.py::TestUtxUnit::test_note_sanity PASSED [ 88%] 293s tests/translate/storage/test_utx.py::TestUtxUnit::test_line_number_default PASSED [ 89%] 293s tests/translate/storage/test_utx.py::TestUtxUnit::test_rich_get PASSED [ 89%] 293s tests/translate/storage/test_utx.py::TestUtxUnit::test_rich_set PASSED [ 89%] 293s tests/translate/storage/test_utx.py::TestUtxFile::test_create_blank PASSED [ 89%] 293s tests/translate/storage/test_utx.py::TestUtxFile::test_add PASSED [ 89%] 293s tests/translate/storage/test_utx.py::TestUtxFile::test_remove PASSED [ 89%] 293s tests/translate/storage/test_utx.py::TestUtxFile::test_find PASSED [ 89%] 293s tests/translate/storage/test_utx.py::TestUtxFile::test_translate PASSED [ 89%] 293s tests/translate/storage/test_utx.py::TestUtxFile::test_parse PASSED [ 89%] 293s tests/translate/storage/test_utx.py::TestUtxFile::test_files PASSED [ 89%] 293s tests/translate/storage/test_utx.py::TestUtxFile::test_save PASSED [ 89%] 293s tests/translate/storage/test_utx.py::TestUtxFile::test_markup PASSED [ 89%] 293s tests/translate/storage/test_utx.py::TestUtxFile::test_nonascii PASSED [ 89%] 293s tests/translate/storage/test_utx.py::TestUtxFile::test_extensions PASSED [ 89%] 293s tests/translate/storage/test_utx.py::TestUtxFile::test_mimetypes PASSED [ 89%] 293s tests/translate/storage/test_wordfast.py::TestWFTime::test_timestring PASSED [ 89%] 293s tests/translate/storage/test_wordfast.py::TestWFTime::test_time PASSED [ 89%] 293s tests/translate/storage/test_wordfast.py::TestWFUnit::test_isfuzzy PASSED [ 89%] 293s tests/translate/storage/test_wordfast.py::TestWFUnit::test_create PASSED [ 89%] 293s tests/translate/storage/test_wordfast.py::TestWFUnit::test_eq PASSED [ 89%] 293s tests/translate/storage/test_wordfast.py::TestWFUnit::test_target PASSED [ 89%] 293s tests/translate/storage/test_wordfast.py::TestWFUnit::test_escapes PASSED [ 89%] 293s tests/translate/storage/test_wordfast.py::TestWFUnit::test_note_sanity PASSED [ 89%] 293s tests/translate/storage/test_wordfast.py::TestWFUnit::test_line_number_default PASSED [ 89%] 293s tests/translate/storage/test_wordfast.py::TestWFUnit::test_rich_get PASSED [ 89%] 293s tests/translate/storage/test_wordfast.py::TestWFUnit::test_rich_set PASSED [ 89%] 293s tests/translate/storage/test_wordfast.py::TestWFUnit::test_difficult_escapes PASSED [ 89%] 293s tests/translate/storage/test_wordfast.py::TestWFUnit::test_wordfast_escaping PASSED [ 89%] 293s tests/translate/storage/test_wordfast.py::TestWFUnit::test_newlines PASSED [ 89%] 293s tests/translate/storage/test_wordfast.py::TestWFUnit::test_language_setting PASSED [ 89%] 293s tests/translate/storage/test_wordfast.py::TestWFUnit::test_istranslated PASSED [ 89%] 293s tests/translate/storage/test_wordfast.py::TestWFFile::test_create_blank PASSED [ 89%] 293s tests/translate/storage/test_wordfast.py::TestWFFile::test_add PASSED [ 89%] 293s tests/translate/storage/test_wordfast.py::TestWFFile::test_remove PASSED [ 89%] 293s tests/translate/storage/test_wordfast.py::TestWFFile::test_find PASSED [ 89%] 293s tests/translate/storage/test_wordfast.py::TestWFFile::test_translate PASSED [ 89%] 293s tests/translate/storage/test_wordfast.py::TestWFFile::test_parse PASSED [ 89%] 293s tests/translate/storage/test_wordfast.py::TestWFFile::test_files PASSED [ 89%] 293s tests/translate/storage/test_wordfast.py::TestWFFile::test_save PASSED [ 89%] 293s tests/translate/storage/test_wordfast.py::TestWFFile::test_markup PASSED [ 90%] 293s tests/translate/storage/test_wordfast.py::TestWFFile::test_nonascii PASSED [ 90%] 293s tests/translate/storage/test_wordfast.py::TestWFFile::test_extensions PASSED [ 90%] 293s tests/translate/storage/test_wordfast.py::TestWFFile::test_mimetypes PASSED [ 90%] 293s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_isfuzzy PASSED [ 90%] 293s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_create PASSED [ 90%] 293s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_eq PASSED [ 90%] 293s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_target PASSED [ 90%] 293s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_escapes PASSED [ 90%] 293s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_difficult_escapes PASSED [ 90%] 293s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_note_sanity PASSED [ 90%] 293s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_line_number_default PASSED [ 90%] 293s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_rich_get PASSED [ 90%] 293s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_rich_set PASSED [ 90%] 293s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_markreview PASSED [ 90%] 293s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_errors PASSED [ 90%] 293s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_accepted_control_chars PASSED [ 90%] 293s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_unaccepted_control_chars PASSED [ 90%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_create_blank PASSED [ 90%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add PASSED [ 90%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_remove PASSED [ 90%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_find PASSED [ 90%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_translate PASSED [ 90%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_parse PASSED [ 90%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_files PASSED [ 90%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_save PASSED [ 90%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_markup PASSED [ 90%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_nonascii PASSED [ 90%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_extensions PASSED [ 90%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_mimetypes PASSED [ 90%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_basic PASSED [ 90%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_namespace PASSED [ 90%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_rich_source PASSED [ 90%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_rich_target PASSED [ 90%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_source PASSED [ 90%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_target PASSED [ 90%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_sourcelanguage PASSED [ 90%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_targetlanguage PASSED [ 90%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_targetlanguage_multi PASSED [ 90%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_notes PASSED [ 91%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_alttrans PASSED [ 91%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_fuzzy PASSED [ 91%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_xml_space PASSED [ 91%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_parsing PASSED [ 91%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_marktranslatable PASSED [ 91%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_entities PASSED [ 91%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_multiple_filenodes PASSED [ 91%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_groups_when_adding_units PASSED [ 91%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_multiple_files_and_groups PASSED [ 91%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_unit_to_existing_group PASSED [ 91%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_unit_to_different_file PASSED [ 91%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_mixed_groups_and_body PASSED [ 91%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_addunit_with_new_false PASSED [ 91%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_namespace_preservation_across_versions PASSED [ 91%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_units_between_different_files PASSED [ 91%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_group_preservation_across_different_namespaces PASSED [ 91%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_cross_namespace_group_and_file_preservation PASSED [ 91%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_indent PASSED [ 91%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_target PASSED [ 91%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve PASSED [ 91%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_closing_tags PASSED [ 91%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_context_groups PASSED [ 91%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_getlocations PASSED [ 91%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_addlocation PASSED [ 91%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_huge PASSED [ 91%] 293s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_add PASSED [ 91%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_isfuzzy PASSED [ 91%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_create PASSED [ 91%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_eq PASSED [ 91%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_target PASSED [ 91%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_escapes PASSED [ 91%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_difficult_escapes PASSED [ 91%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_note_sanity PASSED [ 91%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_line_number_default PASSED [ 91%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_rich_get PASSED [ 91%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_rich_set PASSED [ 91%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_notes PASSED [ 91%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_id_management PASSED [ 91%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_marktranslatable PASSED [ 92%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_create_blank PASSED [ 92%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_add PASSED [ 92%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_remove PASSED [ 92%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_find PASSED [ 92%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_translate PASSED [ 92%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_parse PASSED [ 92%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_files PASSED [ 92%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_save PASSED [ 92%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_markup PASSED [ 92%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_nonascii PASSED [ 92%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_extensions PASSED [ 92%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_mimetypes PASSED [ 92%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_basic PASSED [ 92%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_source_target PASSED [ 92%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_language_attributes PASSED [ 92%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_namespace PASSED [ 92%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_unit_structure PASSED [ 92%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_multiple_units PASSED [ 92%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_parse_xliff2 PASSED [ 92%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_parse_translate_attribute PASSED [ 92%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_multiple_segments_per_unit PASSED [ 92%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_mixed_single_and_multiple_segments PASSED [ 92%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_segments_without_ids PASSED [ 92%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_escaped_inline_tags PASSED [ 92%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_simple_source_target_pairs PASSED [ 92%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_malformed_xml_declaration PASSED [ 92%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_variable_placeholders PASSED [ 92%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_add_unit PASSED [ 92%] 293s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_states PASSED [ 92%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_isfuzzy PASSED [ 92%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_create PASSED [ 92%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_eq PASSED [ 92%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_escapes PASSED [ 92%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_difficult_escapes PASSED [ 92%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_note_sanity PASSED [ 92%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_line_number_default PASSED [ 92%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_target PASSED [ 92%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_rich_get PASSED [ 92%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_rich_set PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_getlocations PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_create_blank PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_add PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_find PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_parse PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_files PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_save PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_extensions PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_mimetypes PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_translate PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_markup PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_nonascii PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_serialize PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_empty PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_edit PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_edit_unicode PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_parse_unicode_list PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_ordering PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_initial_comments PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_string_key PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_nested PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_multiline PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_boolean PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_integer PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_no_quote_strings PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_double_quote_strings PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_single_quote_strings PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_avoid_escaping_double_quote_strings PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_avoid_escaping_single_quote_strings PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_escaped_double_quotes PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_newlines PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_abbreviated_list PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_abbreviated_dictionary PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_key_nesting PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_add_to_mepty PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_empty_key PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_dict_in_list PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_dump_args PASSED [ 93%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_anchors PASSED [ 94%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_tagged_scalar PASSED [ 94%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_numeric PASSED [ 94%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_remove PASSED [ 94%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_special PASSED [ 94%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_quotes_roundtrip PASSED [ 94%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_simple PASSED [ 94%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_multiline PASSED [ 94%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_nested PASSED [ 94%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_mixed PASSED [ 94%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_no_comment_backwards_compat PASSED [ 94%] 293s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_multiline_literal_format PASSED [ 94%] 293s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_create_blank PASSED [ 94%] 293s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_remove PASSED [ 94%] 293s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_find PASSED [ 94%] 293s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_parse PASSED [ 94%] 293s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_files PASSED [ 94%] 293s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_save PASSED [ 94%] 293s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_extensions PASSED [ 94%] 293s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_mimetypes PASSED [ 94%] 293s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_translate PASSED [ 94%] 293s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_markup PASSED [ 94%] 293s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_nonascii PASSED [ 94%] 293s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_list PASSED [ 94%] 293s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby PASSED [ 94%] 293s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_wrong PASSED [ 94%] 293s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_invalid_value PASSED [ 94%] 293s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural PASSED [ 94%] 293s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_empty PASSED [ 94%] 293s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_anchors PASSED [ 94%] 293s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_type_change PASSED [ 94%] 293s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_add PASSED [ 94%] 293s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_blank PASSED [ 94%] 293s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_partial PASSED [ 94%] 293s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_pt_br PASSED [ 94%] 293s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_bug_ruby_remove_zero_few_and_mix_others PASSED [ 94%] 293s tests/translate/storage/xml_extract/test_misc.py::test_reduce_tree PASSED [ 94%] 293s tests/translate/storage/xml_extract/test_misc.py::test_compose_mappings PASSED [ 94%] 293s tests/translate/storage/xml_extract/test_misc.py::test_parse_tag PASSED [ 94%] 293s tests/translate/storage/xml_extract/test_unit_tree.py::test__split_xpath_component PASSED [ 95%] 293s tests/translate/storage/xml_extract/test_unit_tree.py::test__split_xpath PASSED [ 95%] 293s tests/translate/storage/xml_extract/test_unit_tree.py::test__add_unit_to_tree PASSED [ 95%] 293s tests/translate/storage/xml_extract/test_xpath_breadcrumb.py::test_breadcrumb PASSED [ 95%] 293s tests/translate/tools/test_help.py::test_help[build_tmdb] SKIPPED (S...) [ 95%] 293s tests/translate/tools/test_help.py::test_help[phppo2pypo] SKIPPED (S...) [ 95%] 293s tests/translate/tools/test_help.py::test_help[poclean] SKIPPED (Skip...) [ 95%] 293s tests/translate/tools/test_help.py::test_help[pocompile] SKIPPED (Sk...) [ 95%] 293s tests/translate/tools/test_help.py::test_help[poconflicts] SKIPPED (...) [ 95%] 293s tests/translate/tools/test_help.py::test_help[pocount] SKIPPED (Skip...) [ 95%] 293s tests/translate/tools/test_help.py::test_help[podebug] SKIPPED (Skip...) [ 95%] 293s tests/translate/tools/test_help.py::test_help[pogrep] SKIPPED (Skip ...) [ 95%] 293s tests/translate/tools/test_help.py::test_help[pomerge] SKIPPED (Skip...) [ 95%] 293s tests/translate/tools/test_help.py::test_help[porestructure] SKIPPED [ 95%] 293s tests/translate/tools/test_help.py::test_help[posegment] SKIPPED (Sk...) [ 95%] 293s tests/translate/tools/test_help.py::test_help[poswap] SKIPPED (Skip ...) [ 95%] 293s tests/translate/tools/test_help.py::test_help[poterminology] SKIPPED [ 95%] 293s tests/translate/tools/test_help.py::test_help[pretranslate] SKIPPED [ 95%] 293s tests/translate/tools/test_help.py::test_help[pydiff] SKIPPED (Skip ...) [ 95%] 293s tests/translate/tools/test_help.py::test_help[pypo2phppo] SKIPPED (S...) [ 95%] 293s tests/translate/tools/test_junitmsgfmt.py::test_output[failure] PASSED [ 95%] 293s tests/translate/tools/test_junitmsgfmt.py::test_output[untranslated] PASSED [ 95%] 293s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPo::test_single_po PASSED [ 95%] 293s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPo::test_plural_po PASSED [ 95%] 293s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_single_po PASSED [ 95%] 293s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_plural_po PASSED [ 95%] 293s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_help PASSED [ 95%] 293s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_zero PASSED [ 95%] 293s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_one PASSED [ 95%] 293s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_two PASSED [ 95%] 293s tests/translate/tools/test_pocount.py::TestCount::test_punctuation_divides_words PASSED [ 95%] 293s tests/translate/tools/test_pocount.py::TestCount::test_xml_tags PASSED [ 95%] 293s tests/translate/tools/test_pocount.py::TestCount::test_newlines PASSED [ 95%] 293s tests/translate/tools/test_pocount.py::TestCount::test_variables_are_words PASSED [ 95%] 293s tests/translate/tools/test_pocount.py::TestCount::test_plurals PASSED [ 95%] 293s tests/translate/tools/test_pocount.py::TestCount::test_plurals_kde XFAIL [ 95%] 293s tests/translate/tools/test_pocount.py::TestCount::test_msgid_blank PASSED [ 95%] 293s tests/translate/tools/test_pocount.py::TestPOCount::test_translated PASSED [ 95%] 293s tests/translate/tools/test_pocount.py::TestPOCount::test_fuzzy PASSED [ 95%] 293s tests/translate/tools/test_pocount.py::TestPOCount::test_untranslated PASSED [ 96%] 293s tests/translate/tools/test_pocount.py::TestPOCount::test_total PASSED [ 96%] 293s tests/translate/tools/test_pocount.py::TestPOCount::test_translatedsourcewords PASSED [ 96%] 293s tests/translate/tools/test_pocount.py::TestPOCount::test_fuzzysourcewords PASSED [ 96%] 293s tests/translate/tools/test_pocount.py::TestPOCount::test_untranslatedsourcewords PASSED [ 96%] 293s tests/translate/tools/test_pocount.py::TestPOCount::test_totalsourcewords PASSED [ 96%] 293s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-csv] PASSED [ 96%] 293s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-full] PASSED [ 96%] 293s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-short-strings] PASSED [ 96%] 293s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-short-words] PASSED [ 96%] 293s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-csv] PASSED [ 96%] 293s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-full] PASSED [ 96%] 293s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-short-strings] PASSED [ 96%] 293s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-short-words] PASSED [ 96%] 293s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-csv] PASSED [ 96%] 293s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-full] PASSED [ 96%] 293s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-short-strings] PASSED [ 96%] 293s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-short-words] PASSED [ 96%] 293s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-csv] PASSED [ 96%] 293s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-full] PASSED [ 96%] 293s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-short-strings] PASSED [ 96%] 293s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-short-words] PASSED [ 96%] 293s tests/translate/tools/test_pocount.py::test_cases[po-file] PASSED [ 96%] 293s tests/translate/tools/test_pocount.py::test_cases[po-file-fuzzy] PASSED [ 96%] 293s tests/translate/tools/test_pocount.py::test_cases[po-file-csv] PASSED [ 96%] 293s tests/translate/tools/test_pocount.py::test_cases[xliff-states-yes] PASSED [ 96%] 294s tests/translate/tools/test_pocount.py::test_cases[xliff-states-no] PASSED [ 96%] 294s tests/translate/tools/test_pocount.py::test_error_cases[mutually-exclusive] PASSED [ 96%] 294s tests/translate/tools/test_pocount.py::test_error_cases[missing-file] PASSED [ 96%] 294s tests/translate/tools/test_pocount.py::test_error_cases[no-args] PASSED [ 96%] 294s tests/translate/tools/test_pocount.py::test_csv_line_terminator PASSED [ 96%] 294s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_fuzzy_with_target PASSED [ 96%] 294s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_fuzzy_without_target PASSED [ 96%] 294s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_translated_not_fuzzy PASSED [ 96%] 294s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_untranslated_empty_target PASSED [ 96%] 294s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_categorization_mutually_exclusive PASSED [ 96%] 294s tests/translate/tools/test_pocount.py::TestPOCountLineEndings::test_unusual_line_endings PASSED [ 96%] 294s tests/translate/tools/test_podebug.py::TestPODebug::test_ignore_gtk PASSED [ 96%] 294s tests/translate/tools/test_podebug.py::TestPODebug::test_keep_target PASSED [ 96%] 294s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank PASSED [ 97%] 294s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank_clears_fuzzy PASSED [ 97%] 294s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank_with_plurals PASSED [ 97%] 294s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_en PASSED [ 97%] 294s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_xxx PASSED [ 97%] 294s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_bracket PASSED [ 97%] 294s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode PASSED [ 97%] 294s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_at_placeholders PASSED [ 97%] 294s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_single_brace_placeholders PASSED [ 97%] 294s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_double_brace_placeholders PASSED [ 97%] 294s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_html PASSED [ 97%] 294s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_multiple_styles_of_placeholder PASSED [ 97%] 294s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped PASSED [ 97%] 294s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_at_placeholders PASSED [ 97%] 294s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_single_brace_placeholders PASSED [ 97%] 294s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_double_brace_placeholders PASSED [ 97%] 294s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_html PASSED [ 97%] 294s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_multiple_styles_of_placeholder PASSED [ 97%] 294s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified PASSED [ 97%] 294s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_at_placeholders PASSED [ 97%] 294s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_single_brace_placeholders PASSED [ 97%] 294s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_double_brace_placeholders PASSED [ 97%] 294s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_html PASSED [ 97%] 294s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_multiple_styles_of_placeholder PASSED [ 97%] 294s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_chef PASSED [ 97%] 294s tests/translate/tools/test_podebug.py::TestPODebug::test_po_variables PASSED [ 97%] 294s tests/translate/tools/test_podebug.py::TestPODebug::test_xliff_rewrite PASSED [ 97%] 294s tests/translate/tools/test_podebug.py::TestPODebug::test_hash PASSED [ 97%] 294s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_msgid PASSED [ 97%] 294s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_msgstr PASSED [ 97%] 294s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_locations PASSED [ 97%] 294s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_comments PASSED [ 97%] 294s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_locations_with_comment_enabled PASSED [ 97%] 294s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_message_searchstring PASSED [ 97%] 294s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_message_regex_searchstring PASSED [ 97%] 294s tests/translate/tools/test_pogrep.py::TestPOGrep::test_keep_translations PASSED [ 97%] 294s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_normalise PASSED [ 97%] 294s tests/translate/tools/test_pogrep.py::TestXLiffGrep::test_simplegrep PASSED [ 97%] 294s tests/translate/tools/test_pomerge.py::test_str2bool PASSED [ 97%] 294s tests/translate/tools/test_pomerge.py::TestPOMerge::test_mergesore_bad_data PASSED [ 98%] 294s tests/translate/tools/test_pomerge.py::TestPOMerge::test_simplemerge PASSED [ 98%] 294s tests/translate/tools/test_pomerge.py::TestPOMerge::test_simplemerge_no_locations PASSED [ 98%] 294s tests/translate/tools/test_pomerge.py::TestPOMerge::test_replacemerge PASSED [ 98%] 294s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_blanks PASSED [ 98%] 294s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_fuzzies PASSED [ 98%] 294s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_locations PASSED [ 98%] 294s tests/translate/tools/test_pomerge.py::TestPOMerge::test_unit_missing_in_template_with_locations PASSED [ 98%] 294s tests/translate/tools/test_pomerge.py::TestPOMerge::test_unit_missing_in_template_no_locations PASSED [ 98%] 294s tests/translate/tools/test_pomerge.py::TestPOMerge::test_reflowed_source_comments PASSED [ 98%] 294s tests/translate/tools/test_pomerge.py::TestPOMerge::test_comments_with_blank_lines PASSED [ 98%] 294s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merge_dont_delete_unassociated_comments PASSED [ 98%] 294s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_trailing_newlines PASSED [ 98%] 294s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_minor_start_and_end_of_sentence_changes PASSED [ 98%] 294s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_last_entry_in_a_file PASSED [ 98%] 294s tests/translate/tools/test_pomerge.py::TestPOMerge::test_escape_tabs XFAIL [ 98%] 294s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_comments_layout PASSED [ 98%] 294s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merge_dos2unix PASSED [ 98%] 294s tests/translate/tools/test_pomerge.py::TestPOMerge::test_xliff_into_xliff PASSED [ 98%] 294s tests/translate/tools/test_pomerge.py::TestPOMerge::test_po_into_xliff PASSED [ 98%] 294s tests/translate/tools/test_pomerge.py::TestPOMerge::test_xliff_into_po PASSED [ 98%] 294s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_dont_merge_kde_comments_found_in_translation PASSED [ 98%] 294s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_untranslated_with_kde_disambiguation PASSED [ 98%] 294s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_header_entries PASSED [ 98%] 294s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_different_locations PASSED [ 98%] 294s tests/translate/tools/test_posegment.py::TestPOSegment::test_en_ja_simple PASSED [ 98%] 294s tests/translate/tools/test_posegment.py::TestPOSegment::test_en_ja_punctuation PASSED [ 98%] 294s tests/translate/tools/test_posegment.py::TestPOSegment::test_transifex_po PASSED [ 98%] 294s tests/translate/tools/test_posegment.py::TestXLIFFSegment::test_xliff_en_simple PASSED [ 98%] 294s tests/translate/tools/test_posegment.py::TestXLIFFSegment::test_xliff_untranslated PASSED [ 98%] 294s tests/translate/tools/test_posegment.py::TestTMXSegment::test_tmx_en_simple PASSED [ 98%] 294s tests/translate/tools/test_poterminology.py::TestPOTerminology::test_term_extraction PASSED [ 98%] 294s tests/translate/tools/test_poterminology.py::TestPOTerminology::test_unitinfo_stores_minimal_data PASSED [ 98%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_pretranslatepo_blank PASSED [ 98%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_simple PASSED [ 98%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_messages_marked_fuzzy PASSED [ 98%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_plurals_with_fuzzy_matching PASSED [ 98%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgid_change XFAIL [ 98%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_location_change PASSED [ 98%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_location_and_whitespace_change PASSED [ 99%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_accelerator_changes XFAIL [ 99%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_lines_cut_differently XFAIL [ 99%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_automatic_comments_dont_duplicate PASSED [ 99%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_automatic_comments_new_overrides_old PASSED [ 99%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_comments_with_blank_comment_lines PASSED [ 99%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_empty_commentlines PASSED [ 99%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgidcomments PASSED [ 99%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_plurals PASSED [ 99%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_resurrect_obsolete_messages PASSED [ 99%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_comments PASSED [ 99%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_typecomments PASSED [ 99%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_xliff_states PASSED [ 99%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_pretranslatepo_blank PASSED [ 99%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_simple PASSED [ 99%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_messages_marked_fuzzy PASSED [ 99%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_plurals_with_fuzzy_matching PASSED [ 99%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgid_change XFAIL [ 99%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_location_change PASSED [ 99%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_location_and_whitespace_change PASSED [ 99%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_accelerator_changes XFAIL [ 99%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_lines_cut_differently XFAIL [ 99%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_automatic_comments_dont_duplicate PASSED [ 99%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_automatic_comments_new_overrides_old PASSED [ 99%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_comments_with_blank_comment_lines PASSED [ 99%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_empty_commentlines PASSED [ 99%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgidcomments PASSED [ 99%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_plurals PASSED [ 99%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_resurrect_obsolete_messages PASSED [ 99%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_comments PASSED [ 99%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_typecomments PASSED [ 99%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_xliff_states PASSED [ 99%] 294s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_help PASSED [ 99%] 294s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPo::test_single_po PASSED [ 99%] 294s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPo::test_plural_po PASSED [ 99%] 294s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_single_po PASSED [ 99%] 294s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_plural_po PASSED [ 99%] 294s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_help PASSED [ 99%] 294s tests/xliff_conformance/test_xliff_conformance.py::test_open_office_to_xliff SKIPPED [ 99%] 294s tests/xliff_conformance/test_xliff_conformance.py::test_po_to_xliff SKIPPED [100%] 294s 294s =============================== warnings summary =============================== 294s tests/odf_xliff/test_odf_xliff.py::test_roundtrip 294s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.ZrT223/autopkgtest_tmp/tests/odf_xliff/test_2.odt'> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_convertandroid 294s Warning: unclosed file <_io.TextIOWrapper name='TestAndroid2POCommand_test_convertandroid/en.po' mode='r' encoding='UTF-8'> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder 294s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder 294s Warning: unclosed file <_io.TextIOWrapper name='TestCSV2POCommand_test_columnorder/test.po' mode='r' encoding='UTF-8'> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_pot 294s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_pot/simple.pot'> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_po 294s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_po 294s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_po/simple.po'> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_remove_duplicates 294s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_remove_duplicates/simple.po'> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_xlf 294s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_xlf/simple.xlf'> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder 294s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder 294s Warning: unclosed file <_io.TextIOWrapper name='TestPO2CSVCommand_test_columnorder/test.csv' mode='r' encoding='UTF-8'> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_context 294s Warning: unclosed file <_io.TextIOWrapper name='TestPO2CSVCommand_test_context/test.csv' mode='r' encoding='UTF-8'> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing 294s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey 294s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey 294s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing 294s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey 294s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_amp_no_accesskey 294s Warning: Could not find accesskey for key.accesskey 294s 294s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified 294s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file 294s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file_and_templates_overwritten 294s Warning: unclosed file <_io.BufferedReader name='translation/file1.po'> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified 294s Warning: unclosed file <_io.BufferedWriter name='translated/file1.html'> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_convert 294s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.ZrT223/autopkgtest_tmp/tests/translate/convert/test.idml'> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_with_single_po 294s Warning: unclosed file <_io.BufferedReader name='translation.po'> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert 294s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert_with_multiple_units 294s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert 294s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.ZrT223/autopkgtest_tmp/tests/translate/convert/test.odt'> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_simple 294s Warning: unclosed file <_io.FileIO name='input.oo' mode='rb' closefd=True> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_simple 294s Warning: unclosed file <_io.FileIO name='output.oo' mode='wb' closefd=True> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey 294s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys_missing_accesskey 294s Warning: Could not find accesskey for prop.accesskey 294s 294s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_context 294s Warning: unclosed file <_io.BufferedReader name='test.po'> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_context 294s Warning: unclosed file <_io.TextIOWrapper name='TestPO2TMXCommand_test_context/test.tmx' mode='r' encoding='UTF-8'> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert 294s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert/simple.po'> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf16 294s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_utf16/simple.po'> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 294s Warning: unclosed file <_io.BufferedWriter name='simple.po'> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 294s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 294s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_wrong/simple.po'> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf8 294s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_utf8/simple.po'> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_menuex 294s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_menuex/simple.po'> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_pot 294s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_simple_pot/simple.pot'> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_po 294s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_simple_po/simple.po'> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_remove_duplicates 294s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_remove_duplicates/simple.po'> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_preserve_filename 294s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_preserve_filename/snippet.xlf'> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_pot 294s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_simple_pot/simple.pot'> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_po 294s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_simple_po/simple.po'> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_remove_duplicates 294s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_remove_duplicates/simple.po'> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers 294s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers 294s tests/translate/filters/test_checks.py::test_noaccelerators_only_in_mozilla_checker 294s tests/translate/filters/test_checks.py::test_ensure_accelerators_not_in_target_if_not_in_source 294s Warning: The 'u' type code is deprecated and will be removed in Python 3.16 294s 294s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_save_bundle 294s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_save_bundle 294s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpwomwy4wb_test.txt'> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_cross_device_save 294s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_cross_device_save 294s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpvix4qaq2_crossdevice.txt'> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_replace_project_zip 294s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_replace_project_zip 294s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpow_u4bl__initial.txt'> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 294s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 294s Warning: unclosed file <_io.BufferedReader name='/tmp/tmp4qcxvtro_load_test.txt'> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 294s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 294s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpdwszedfq_load_test.txt'> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 294s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 294s Warning: unclosed file <_io.BufferedReader name='/tmp/tmp7p15h9jy_file0.txt'> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 294s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 294s Warning: unclosed file <_io.BufferedReader name='/tmp/tmp6xr2kqvp_file1.txt'> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 294s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 294s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpmtusolyp_file2.txt'> 294s Enable tracemalloc to get traceback where the object was allocated. 294s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 294s 294s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting 294s Warning: DTD parse error: :1:35:FATAL:PARSER:ERR_ENTITY_NOT_FINISHED: xmlParseEntityDecl: entity test.me not terminated 294s :1:35:FATAL:PARSER:ERR_EXT_SUBSET_NOT_FINISHED: Content error in the external subset 294s 294s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting 294s Warning: DTD file '' does not validate 294s 294s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 294s --------------------------- snapshot report summary ---------------------------- 294s 23 snapshots passed. 294s =========================== short test summary info ============================ 294s SKIPPED [1] tests/translate/storage/test_cpo.py:15: could not import 'translate.storage.cpo': gettext PO library not found 294s SKIPPED [1] tests/translate/storage/test_fluent.py:29: could not import 'translate.storage.fluent': No module named 'fluent' 294s SKIPPED [1] tests/translate/filters/test_checks.py:1429: Spell checking for af is not available 294s SKIPPED [1] tests/translate/storage/test_mo.py:512: Skip testing command line tools 294s SKIPPED [16] tests/translate/tools/test_help.py:16: Skip testing command line tools 294s SKIPPED [1] tests/xliff_conformance/test_xliff_conformance.py:47: Skip testing command line tools 294s SKIPPED [1] tests/xliff_conformance/test_xliff_conformance.py:57: Skip testing command line tools 294s XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accelerator_keys_not_in_sentence - Not Implemented 294s XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accelerator_keys_not_in_sentence - Not Implemented 294s XFAIL tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_table - https://github.com/miyuchina/mistletoe/issues/244 294s XFAIL tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_propertyless_template - Need to review if we want this behaviour 294s XFAIL tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_propertyless_template - Need to review if we want this behaviour 294s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_change - Not implemented - review if this is even correct 294s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_accelerator_changes - Not Implemented - needs review 294s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_lines_cut_differently - Not Implemented - review if this is even correct 294s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_change - Not implemented - review if this is even correct 294s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_accelerator_changes - Not Implemented - needs review 294s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_lines_cut_differently - Not Implemented - review if this is even correct 294s XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_no_duplicates - This is invalid YAML document 294s XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_no_duplicates - This is invalid YAML document 294s XFAIL tests/translate/filters/test_checks.py::test_acceleratedvariables - Accelerated variables needs a better implementation 294s XFAIL tests/translate/filters/test_checks.py::test_musttranslatewords - FIXME: All fails() tests are not working 294s XFAIL tests/translate/filters/test_checks.py::test_persian_single_and_double_quote_fail_at_the_same_time - Bug #3408 294s XFAIL tests/translate/filters/test_checks.py::test_bengali_mozilla_inverted_xmltags - Bug #3506 294s XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_general_placeables - Test needs fixing, disabled for now 294s XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_xliff_placeables - Test needs fixing, disabled for now 294s XFAIL tests/translate/storage/test_dtd.py::test_quotefordtd_unimplemented_cases - Not Implemented 294s XFAIL tests/translate/storage/test_dtd.py::test_unquotefromdtd_unimplemented_cases - Not Implemented 294s XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_comment_following - Not Implemented 294s XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting - Not Implemented 294s XFAIL tests/translate/storage/test_omegat.py::TestOmegaTFile::test_extensions - This doesn't work, due to two store classes handling different extensions, but factory listing it as one supported file type 294s XFAIL tests/translate/storage/test_po.py::TestPOFile::test_kde_plurals - Not Implemented 294s XFAIL tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo 294s XFAIL tests/translate/storage/test_properties.py::TestXWikiFullPage::test_remove - removal not working in full page 294s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_plurals - Not Implemented 294s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo 294s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_typecomment - Not sure if this can not be parsed gracefully 294s XFAIL tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_note_sanity - Not Implemented 294s XFAIL tests/translate/tools/test_pocount.py::TestCount::test_plurals_kde - Support commented out pending removal 294s XFAIL tests/translate/tools/test_pomerge.py::TestPOMerge::test_escape_tabs - Not Implemented 294s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgid_change - Not Implemented 294s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_accelerator_changes - Not Implemented 294s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_lines_cut_differently - Not Implemented 294s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgid_change - Not Implemented 294s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_accelerator_changes - Not Implemented 294s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_lines_cut_differently - Not Implemented 294s ========== 3843 passed, 22 skipped, 39 xfailed, 69 warnings in 10.09s ========== 295s autopkgtest [23:54:10]: test python3-translate: -----------------------] 296s python3-translate PASS 296s autopkgtest [23:54:11]: test python3-translate: - - - - - - - - - - results - - - - - - - - - - 296s autopkgtest [23:54:11]: test python3-translate-commands: preparing testbed 315s Creating nova instance adt-resolute-amd64-translate-toolkit-20260130-234915-juju-7f2275-prod-proposed-migration-environment-20-06025705-37e3-4006-967b-e925797c3124 from image adt/ubuntu-resolute-amd64-server-20260130.img (UUID afba56f8-6ab4-44eb-9e07-036bcbd7054f)... 385s autopkgtest [23:55:40]: testbed dpkg architecture: amd64 385s autopkgtest [23:55:40]: testbed apt version: 3.1.14 385s autopkgtest [23:55:40]: @@@@@@@@@@@@@@@@@@@@ test bed setup 386s autopkgtest [23:55:41]: testbed release detected to be: resolute 386s autopkgtest [23:55:41]: updating testbed package index (apt update) 386s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 386s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 386s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 386s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 386s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [105 kB] 386s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [4676 B] 387s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [1187 kB] 387s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [26.6 kB] 387s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main i386 Packages [101 kB] 387s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 Packages [118 kB] 387s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 c-n-f Metadata [4196 B] 387s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/restricted amd64 Packages [20.9 kB] 387s Get:13 http://ftpmaster.internal/ubuntu resolute-proposed/restricted i386 Packages [6164 B] 387s Get:14 http://ftpmaster.internal/ubuntu resolute-proposed/restricted amd64 c-n-f Metadata [388 B] 387s Get:15 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 Packages [963 kB] 387s Get:16 http://ftpmaster.internal/ubuntu resolute-proposed/universe i386 Packages [382 kB] 387s Get:17 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 c-n-f Metadata [26.2 kB] 387s Get:18 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse amd64 Packages [24.0 kB] 387s Get:19 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse i386 Packages [3336 B] 387s Get:20 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse amd64 c-n-f Metadata [1304 B] 388s Fetched 3099 kB in 1s (2755 kB/s) 388s Reading package lists... 389s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 389s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 389s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 389s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 390s Reading package lists... 390s Reading package lists... 390s Building dependency tree... 390s Reading state information... 390s Calculating upgrade... 390s The following packages will be upgraded: 390s 3cpio bzip2 inetutils-telnet libbz2-1.0 libsqlite3-0 rng-tools-debian telnet 390s 7 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 390s Need to get 1234 kB of archives. 390s After this operation, 18.4 kB disk space will be freed. 390s Get:1 http://ftpmaster.internal/ubuntu resolute/universe amd64 rng-tools-debian amd64 2.6build1 [46.1 kB] 390s Get:2 http://ftpmaster.internal/ubuntu resolute/main amd64 bzip2 amd64 1.0.8-6build2 [34.3 kB] 390s Get:3 http://ftpmaster.internal/ubuntu resolute/main amd64 libbz2-1.0 amd64 1.0.8-6build2 [37.0 kB] 390s Get:4 http://ftpmaster.internal/ubuntu resolute/main amd64 libsqlite3-0 amd64 3.46.1-9 [722 kB] 390s Get:5 http://ftpmaster.internal/ubuntu resolute/main amd64 inetutils-telnet amd64 2:2.7-2ubuntu1 [107 kB] 390s Get:6 http://ftpmaster.internal/ubuntu resolute/main amd64 telnet all 0.17+2.7-2ubuntu1 [3636 B] 390s Get:7 http://ftpmaster.internal/ubuntu resolute/main amd64 3cpio amd64 0.13.1-1ubuntu1 [284 kB] 390s dpkg-preconfigure: unable to re-open stdin: No such file or directory 390s Fetched 1234 kB in 0s (4394 kB/s) 391s (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 ... 124211 files and directories currently installed.) 391s Preparing to unpack .../rng-tools-debian_2.6build1_amd64.deb ... 391s Unpacking rng-tools-debian (2.6build1) over (2.6) ... 391s Preparing to unpack .../bzip2_1.0.8-6build2_amd64.deb ... 391s Unpacking bzip2 (1.0.8-6build2) over (1.0.8-6build1) ... 391s Preparing to unpack .../libbz2-1.0_1.0.8-6build2_amd64.deb ... 391s Unpacking libbz2-1.0:amd64 (1.0.8-6build2) over (1.0.8-6build1) ... 391s Setting up libbz2-1.0:amd64 (1.0.8-6build2) ... 391s (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 ... 124211 files and directories currently installed.) 391s Preparing to unpack .../libsqlite3-0_3.46.1-9_amd64.deb ... 391s Unpacking libsqlite3-0:amd64 (3.46.1-9) over (3.46.1-8) ... 391s Preparing to unpack .../inetutils-telnet_2%3a2.7-2ubuntu1_amd64.deb ... 391s Unpacking inetutils-telnet (2:2.7-2ubuntu1) over (2:2.6-4ubuntu1) ... 391s Preparing to unpack .../telnet_0.17+2.7-2ubuntu1_all.deb ... 391s Unpacking telnet (0.17+2.7-2ubuntu1) over (0.17+2.6-4ubuntu1) ... 391s Preparing to unpack .../3cpio_0.13.1-1ubuntu1_amd64.deb ... 391s Unpacking 3cpio (0.13.1-1ubuntu1) over (0.12.0-1ubuntu1) ... 391s Setting up 3cpio (0.13.1-1ubuntu1) ... 391s Setting up libsqlite3-0:amd64 (3.46.1-9) ... 391s Setting up inetutils-telnet (2:2.7-2ubuntu1) ... 391s Setting up bzip2 (1.0.8-6build2) ... 391s Setting up rng-tools-debian (2.6build1) ... 391s Setting up telnet (0.17+2.7-2ubuntu1) ... 391s Processing triggers for man-db (2.13.1-1) ... 392s Processing triggers for libc-bin (2.42-2ubuntu4) ... 392s autopkgtest [23:55:47]: upgrading testbed (apt dist-upgrade and autopurge) 392s Reading package lists... 392s Building dependency tree... 392s Reading state information... 392s Calculating upgrade... 393s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 393s Reading package lists... 393s Building dependency tree... 393s Reading state information... 393s Solving dependencies... 393s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 393s autopkgtest [23:55:48]: rebooting testbed after setup commands that affected boot 423s Reading package lists... 424s Building dependency tree... 424s Reading state information... 424s Solving dependencies... 424s The following NEW packages will be installed: 424s dictionaries-common emacsen-common gettext hunspell-en-us libapr1t64 424s libaprutil1t64 libaspell15 libenchant-2-2 libexttextcat-data libgomp1 424s libhunspell-1.7-0 libpython3.14-minimal libpython3.14-stdlib libserf-1-1 424s libsvn1 libutf8proc3 libxapian30 libxslt1.1 python3-aeidon python3-all 424s python3-bs4 python3-charset-normalizer python3-cheroot 424s python3-diff-match-patch python3-enchant python3-iniconfig python3-iniparse 424s python3-levenshtein python3-lxml python3-mistletoe python3-phply 424s python3-pluggy python3-ply python3-pycountry python3-pytest python3-pytz 424s python3-rapidfuzz python3-ruamel.yaml python3-ruamel.yaml.clib 424s python3-soupsieve python3-syrupy python3-tomlkit python3-translate 424s python3-unicode-segmentation-rs python3-vobject python3-xapian python3.14 424s python3.14-minimal subversion translate-toolkit 424s 0 upgraded, 50 newly installed, 0 to remove and 0 not upgraded. 424s Need to get 21.2 MB of archives. 424s After this operation, 102 MB of additional disk space will be used. 424s Get:1 http://ftpmaster.internal/ubuntu resolute/main amd64 libpython3.14-minimal amd64 3.14.2-1 [920 kB] 424s Get:2 http://ftpmaster.internal/ubuntu resolute/main amd64 python3.14-minimal amd64 3.14.2-1 [2563 kB] 424s Get:3 http://ftpmaster.internal/ubuntu resolute/main amd64 emacsen-common all 3.0.8 [13.9 kB] 424s Get:4 http://ftpmaster.internal/ubuntu resolute/main amd64 dictionaries-common all 1.31.3 [179 kB] 424s Get:5 http://ftpmaster.internal/ubuntu resolute/main amd64 libgomp1 amd64 15.2.0-12ubuntu1 [151 kB] 424s Get:6 http://ftpmaster.internal/ubuntu resolute/main amd64 gettext amd64 0.23.2-1 [1019 kB] 424s Get:7 http://ftpmaster.internal/ubuntu resolute/main amd64 hunspell-en-us all 1:2020.12.07-4build1 [585 kB] 424s Get:8 http://ftpmaster.internal/ubuntu resolute/main amd64 libapr1t64 amd64 1.7.6-3 [109 kB] 424s Get:9 http://ftpmaster.internal/ubuntu resolute/main amd64 libaprutil1t64 amd64 1.6.3-3ubuntu3 [93.8 kB] 424s Get:10 http://ftpmaster.internal/ubuntu resolute/main amd64 libaspell15 amd64 0.60.8.2-1 [333 kB] 424s Get:11 http://ftpmaster.internal/ubuntu resolute/main amd64 libhunspell-1.7-0 amd64 1.7.2+really1.7.2-11 [316 kB] 424s Get:12 http://ftpmaster.internal/ubuntu resolute/main amd64 libenchant-2-2 amd64 2.8.2+dfsg1-3build1 [59.2 kB] 424s Get:13 http://ftpmaster.internal/ubuntu resolute/main amd64 libexttextcat-data all 3.4.7-1ubuntu2 [193 kB] 424s Get:14 http://ftpmaster.internal/ubuntu resolute/main amd64 libpython3.14-stdlib amd64 3.14.2-1 [2398 kB] 424s Get:15 http://ftpmaster.internal/ubuntu resolute/universe amd64 libserf-1-1 amd64 1.3.10-3ubuntu1 [48.2 kB] 424s Get:16 http://ftpmaster.internal/ubuntu resolute/universe amd64 libutf8proc3 amd64 2.10.0-2 [71.6 kB] 424s Get:17 http://ftpmaster.internal/ubuntu resolute/universe amd64 libsvn1 amd64 1.14.5-5 [1360 kB] 424s Get:18 http://ftpmaster.internal/ubuntu resolute/universe amd64 libxapian30 amd64 1.4.29-3 [740 kB] 424s Get:19 http://ftpmaster.internal/ubuntu resolute/main amd64 libxslt1.1 amd64 1.1.43-0.3 [172 kB] 424s Get:20 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-aeidon all 1.15-2build1 [225 kB] 424s Get:21 http://ftpmaster.internal/ubuntu resolute/main amd64 python3.14 amd64 3.14.2-1 [816 kB] 424s Get:22 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-all amd64 3.13.9-3 [890 B] 424s Get:23 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-soupsieve all 2.8.3-1 [34.0 kB] 424s Get:24 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-bs4 all 4.14.3-2build1 [84.8 kB] 424s Get:25 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-charset-normalizer amd64 3.4.4-2 [173 kB] 424s Get:26 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-cheroot all 11.1.2+ds1-1 [81.5 kB] 424s Get:27 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-diff-match-patch all 20241021-1 [33.6 kB] 424s Get:28 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-enchant all 3.3.0-1 [35.0 kB] 424s Get:29 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-iniconfig all 2.1.0-2 [6962 B] 424s Get:30 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-rapidfuzz amd64 3.12.2+ds-1build1 [2746 kB] 425s Get:31 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-levenshtein amd64 0.27.1-2build1 [145 kB] 425s Get:32 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-lxml amd64 6.0.2-1 [2333 kB] 425s Get:33 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-mistletoe all 1.5.1-1 [41.7 kB] 425s Get:34 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-ply all 3.11-10 [45.9 kB] 425s Get:35 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-phply all 1.2.6-1build1 [50.6 kB] 425s Get:36 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pluggy all 1.6.0-2 [21.1 kB] 425s Get:37 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pytest all 9.0.2-2 [277 kB] 425s Get:38 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pytz all 2025.2-5 [32.4 kB] 425s Get:39 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-ruamel.yaml.clib amd64 0.2.15+ds-1 [200 kB] 425s Get:40 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 python3-ruamel.yaml all 0.18.10+ds-1build1 [127 kB] 425s Get:41 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-syrupy all 5.0.0-1 [47.9 kB] 425s Get:42 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-tomlkit all 0.13.3-2 [39.1 kB] 425s Get:43 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-translate all 3.18.1-1 [339 kB] 425s Get:44 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-unicode-segmentation-rs amd64 0.2.1-1 [225 kB] 425s Get:45 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-vobject all 0.9.9+dfsg-1 [41.5 kB] 425s Get:46 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-xapian amd64 1.4.29-1build1 [588 kB] 425s Get:47 http://ftpmaster.internal/ubuntu resolute/universe amd64 subversion amd64 1.14.5-5 [900 kB] 425s Get:48 http://ftpmaster.internal/ubuntu resolute/universe amd64 translate-toolkit all 3.18.1-1 [83.7 kB] 425s Get:49 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-iniparse all 0.5.1-2 [21.4 kB] 425s Get:50 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pycountry all 24.6.1+ds1-1 [30.0 kB] 425s Preconfiguring packages ... 425s Fetched 21.2 MB in 1s (18.8 MB/s) 425s Selecting previously unselected package libpython3.14-minimal:amd64. 425s (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 ... 124211 files and directories currently installed.) 425s Preparing to unpack .../00-libpython3.14-minimal_3.14.2-1_amd64.deb ... 425s Unpacking libpython3.14-minimal:amd64 (3.14.2-1) ... 425s Selecting previously unselected package python3.14-minimal. 425s Preparing to unpack .../01-python3.14-minimal_3.14.2-1_amd64.deb ... 425s Unpacking python3.14-minimal (3.14.2-1) ... 425s Selecting previously unselected package emacsen-common. 425s Preparing to unpack .../02-emacsen-common_3.0.8_all.deb ... 425s Unpacking emacsen-common (3.0.8) ... 425s Selecting previously unselected package dictionaries-common. 425s Preparing to unpack .../03-dictionaries-common_1.31.3_all.deb ... 425s Adding 'diversion of /usr/share/dict/words to /usr/share/dict/words.pre-dictionaries-common by dictionaries-common' 425s Unpacking dictionaries-common (1.31.3) ... 425s Selecting previously unselected package libgomp1:amd64. 425s Preparing to unpack .../04-libgomp1_15.2.0-12ubuntu1_amd64.deb ... 425s Unpacking libgomp1:amd64 (15.2.0-12ubuntu1) ... 425s Selecting previously unselected package gettext. 425s Preparing to unpack .../05-gettext_0.23.2-1_amd64.deb ... 425s Unpacking gettext (0.23.2-1) ... 425s Selecting previously unselected package hunspell-en-us. 425s Preparing to unpack .../06-hunspell-en-us_1%3a2020.12.07-4build1_all.deb ... 425s Unpacking hunspell-en-us (1:2020.12.07-4build1) ... 425s Selecting previously unselected package libapr1t64:amd64. 425s Preparing to unpack .../07-libapr1t64_1.7.6-3_amd64.deb ... 425s Unpacking libapr1t64:amd64 (1.7.6-3) ... 425s Selecting previously unselected package libaprutil1t64:amd64. 425s Preparing to unpack .../08-libaprutil1t64_1.6.3-3ubuntu3_amd64.deb ... 425s Unpacking libaprutil1t64:amd64 (1.6.3-3ubuntu3) ... 425s Selecting previously unselected package libaspell15:amd64. 425s Preparing to unpack .../09-libaspell15_0.60.8.2-1_amd64.deb ... 425s Unpacking libaspell15:amd64 (0.60.8.2-1) ... 425s Selecting previously unselected package libhunspell-1.7-0:amd64. 425s Preparing to unpack .../10-libhunspell-1.7-0_1.7.2+really1.7.2-11_amd64.deb ... 425s Unpacking libhunspell-1.7-0:amd64 (1.7.2+really1.7.2-11) ... 426s Selecting previously unselected package libenchant-2-2:amd64. 426s Preparing to unpack .../11-libenchant-2-2_2.8.2+dfsg1-3build1_amd64.deb ... 426s Unpacking libenchant-2-2:amd64 (2.8.2+dfsg1-3build1) ... 426s Selecting previously unselected package libexttextcat-data. 426s Preparing to unpack .../12-libexttextcat-data_3.4.7-1ubuntu2_all.deb ... 426s Unpacking libexttextcat-data (3.4.7-1ubuntu2) ... 426s Selecting previously unselected package libpython3.14-stdlib:amd64. 426s Preparing to unpack .../13-libpython3.14-stdlib_3.14.2-1_amd64.deb ... 426s Unpacking libpython3.14-stdlib:amd64 (3.14.2-1) ... 426s Selecting previously unselected package libserf-1-1:amd64. 426s Preparing to unpack .../14-libserf-1-1_1.3.10-3ubuntu1_amd64.deb ... 426s Unpacking libserf-1-1:amd64 (1.3.10-3ubuntu1) ... 426s Selecting previously unselected package libutf8proc3:amd64. 426s Preparing to unpack .../15-libutf8proc3_2.10.0-2_amd64.deb ... 426s Unpacking libutf8proc3:amd64 (2.10.0-2) ... 426s Selecting previously unselected package libsvn1:amd64. 426s Preparing to unpack .../16-libsvn1_1.14.5-5_amd64.deb ... 426s Unpacking libsvn1:amd64 (1.14.5-5) ... 426s Selecting previously unselected package libxapian30:amd64. 426s Preparing to unpack .../17-libxapian30_1.4.29-3_amd64.deb ... 426s Unpacking libxapian30:amd64 (1.4.29-3) ... 426s Selecting previously unselected package libxslt1.1:amd64. 426s Preparing to unpack .../18-libxslt1.1_1.1.43-0.3_amd64.deb ... 426s Unpacking libxslt1.1:amd64 (1.1.43-0.3) ... 426s Selecting previously unselected package python3-aeidon. 426s Preparing to unpack .../19-python3-aeidon_1.15-2build1_all.deb ... 426s Unpacking python3-aeidon (1.15-2build1) ... 426s Selecting previously unselected package python3.14. 426s Preparing to unpack .../20-python3.14_3.14.2-1_amd64.deb ... 426s Unpacking python3.14 (3.14.2-1) ... 426s Selecting previously unselected package python3-all. 426s Preparing to unpack .../21-python3-all_3.13.9-3_amd64.deb ... 426s Unpacking python3-all (3.13.9-3) ... 426s Selecting previously unselected package python3-soupsieve. 426s Preparing to unpack .../22-python3-soupsieve_2.8.3-1_all.deb ... 426s Unpacking python3-soupsieve (2.8.3-1) ... 426s Selecting previously unselected package python3-bs4. 426s Preparing to unpack .../23-python3-bs4_4.14.3-2build1_all.deb ... 426s Unpacking python3-bs4 (4.14.3-2build1) ... 426s Selecting previously unselected package python3-charset-normalizer. 426s Preparing to unpack .../24-python3-charset-normalizer_3.4.4-2_amd64.deb ... 426s Unpacking python3-charset-normalizer (3.4.4-2) ... 426s Selecting previously unselected package python3-cheroot. 426s Preparing to unpack .../25-python3-cheroot_11.1.2+ds1-1_all.deb ... 426s Unpacking python3-cheroot (11.1.2+ds1-1) ... 426s Selecting previously unselected package python3-diff-match-patch. 426s Preparing to unpack .../26-python3-diff-match-patch_20241021-1_all.deb ... 426s Unpacking python3-diff-match-patch (20241021-1) ... 426s Selecting previously unselected package python3-enchant. 426s Preparing to unpack .../27-python3-enchant_3.3.0-1_all.deb ... 426s Unpacking python3-enchant (3.3.0-1) ... 426s Selecting previously unselected package python3-iniconfig. 426s Preparing to unpack .../28-python3-iniconfig_2.1.0-2_all.deb ... 426s Unpacking python3-iniconfig (2.1.0-2) ... 426s Selecting previously unselected package python3-rapidfuzz. 426s Preparing to unpack .../29-python3-rapidfuzz_3.12.2+ds-1build1_amd64.deb ... 426s Unpacking python3-rapidfuzz (3.12.2+ds-1build1) ... 426s Selecting previously unselected package python3-levenshtein. 426s Preparing to unpack .../30-python3-levenshtein_0.27.1-2build1_amd64.deb ... 426s Unpacking python3-levenshtein (0.27.1-2build1) ... 426s Selecting previously unselected package python3-lxml:amd64. 426s Preparing to unpack .../31-python3-lxml_6.0.2-1_amd64.deb ... 426s Unpacking python3-lxml:amd64 (6.0.2-1) ... 426s Selecting previously unselected package python3-mistletoe. 426s Preparing to unpack .../32-python3-mistletoe_1.5.1-1_all.deb ... 426s Unpacking python3-mistletoe (1.5.1-1) ... 426s Selecting previously unselected package python3-ply. 426s Preparing to unpack .../33-python3-ply_3.11-10_all.deb ... 426s Unpacking python3-ply (3.11-10) ... 426s Selecting previously unselected package python3-phply. 426s Preparing to unpack .../34-python3-phply_1.2.6-1build1_all.deb ... 426s Unpacking python3-phply (1.2.6-1build1) ... 426s Selecting previously unselected package python3-pluggy. 426s Preparing to unpack .../35-python3-pluggy_1.6.0-2_all.deb ... 426s Unpacking python3-pluggy (1.6.0-2) ... 426s Selecting previously unselected package python3-pytest. 426s Preparing to unpack .../36-python3-pytest_9.0.2-2_all.deb ... 426s Unpacking python3-pytest (9.0.2-2) ... 426s Selecting previously unselected package python3-pytz. 426s Preparing to unpack .../37-python3-pytz_2025.2-5_all.deb ... 426s Unpacking python3-pytz (2025.2-5) ... 426s Selecting previously unselected package python3-ruamel.yaml.clib. 426s Preparing to unpack .../38-python3-ruamel.yaml.clib_0.2.15+ds-1_amd64.deb ... 426s Unpacking python3-ruamel.yaml.clib (0.2.15+ds-1) ... 426s Selecting previously unselected package python3-ruamel.yaml. 426s Preparing to unpack .../39-python3-ruamel.yaml_0.18.10+ds-1build1_all.deb ... 426s Unpacking python3-ruamel.yaml (0.18.10+ds-1build1) ... 426s Selecting previously unselected package python3-syrupy. 426s Preparing to unpack .../40-python3-syrupy_5.0.0-1_all.deb ... 426s Unpacking python3-syrupy (5.0.0-1) ... 426s Selecting previously unselected package python3-tomlkit. 426s Preparing to unpack .../41-python3-tomlkit_0.13.3-2_all.deb ... 426s Unpacking python3-tomlkit (0.13.3-2) ... 426s Selecting previously unselected package python3-translate. 426s Preparing to unpack .../42-python3-translate_3.18.1-1_all.deb ... 426s Unpacking python3-translate (3.18.1-1) ... 426s Selecting previously unselected package python3-unicode-segmentation-rs. 426s Preparing to unpack .../43-python3-unicode-segmentation-rs_0.2.1-1_amd64.deb ... 426s Unpacking python3-unicode-segmentation-rs (0.2.1-1) ... 426s Selecting previously unselected package python3-vobject. 426s Preparing to unpack .../44-python3-vobject_0.9.9+dfsg-1_all.deb ... 426s Unpacking python3-vobject (0.9.9+dfsg-1) ... 426s Selecting previously unselected package python3-xapian. 426s Preparing to unpack .../45-python3-xapian_1.4.29-1build1_amd64.deb ... 426s Unpacking python3-xapian (1.4.29-1build1) ... 426s Selecting previously unselected package subversion. 426s Preparing to unpack .../46-subversion_1.14.5-5_amd64.deb ... 426s Unpacking subversion (1.14.5-5) ... 426s Selecting previously unselected package translate-toolkit. 426s Preparing to unpack .../47-translate-toolkit_3.18.1-1_all.deb ... 426s Unpacking translate-toolkit (3.18.1-1) ... 426s Selecting previously unselected package python3-iniparse. 426s Preparing to unpack .../48-python3-iniparse_0.5.1-2_all.deb ... 426s Unpacking python3-iniparse (0.5.1-2) ... 426s Selecting previously unselected package python3-pycountry. 426s Preparing to unpack .../49-python3-pycountry_24.6.1+ds1-1_all.deb ... 426s Unpacking python3-pycountry (24.6.1+ds1-1) ... 426s Setting up python3-iniconfig (2.1.0-2) ... 426s Setting up libxapian30:amd64 (1.4.29-3) ... 426s Setting up python3-rapidfuzz (3.12.2+ds-1build1) ... 427s Setting up python3-diff-match-patch (20241021-1) ... 427s Setting up python3-aeidon (1.15-2build1) ... 427s Setting up libutf8proc3:amd64 (2.10.0-2) ... 427s Setting up libaspell15:amd64 (0.60.8.2-1) ... 427s Setting up python3-charset-normalizer (3.4.4-2) ... 427s Setting up python3-ply (3.11-10) ... 427s Setting up libpython3.14-minimal:amd64 (3.14.2-1) ... 427s Setting up python3-ruamel.yaml.clib (0.2.15+ds-1) ... 427s Setting up python3-pytz (2025.2-5) ... 427s Setting up python3-unicode-segmentation-rs (0.2.1-1) ... 427s Setting up libgomp1:amd64 (15.2.0-12ubuntu1) ... 427s Setting up emacsen-common (3.0.8) ... 427s Setting up python3-cheroot (11.1.2+ds1-1) ... 428s Setting up python3-pycountry (24.6.1+ds1-1) ... 428s Setting up python3-xapian (1.4.29-1build1) ... 428s Setting up python3-pluggy (1.6.0-2) ... 428s Setting up python3-ruamel.yaml (0.18.10+ds-1build1) ... 428s Setting up python3-mistletoe (1.5.1-1) ... 428s Setting up libexttextcat-data (3.4.7-1ubuntu2) ... 428s Setting up libapr1t64:amd64 (1.7.6-3) ... 428s Setting up libxslt1.1:amd64 (1.1.43-0.3) ... 428s Setting up python3-levenshtein (0.27.1-2build1) ... 428s Setting up libhunspell-1.7-0:amd64 (1.7.2+really1.7.2-11) ... 428s Setting up python3-tomlkit (0.13.3-2) ... 429s Setting up python3-soupsieve (2.8.3-1) ... 429s Setting up python3.14-minimal (3.14.2-1) ... 429s Setting up python3-iniparse (0.5.1-2) ... 429s Setting up libaprutil1t64:amd64 (1.6.3-3ubuntu3) ... 429s Setting up python3-vobject (0.9.9+dfsg-1) ... 429s Setting up gettext (0.23.2-1) ... 429s Setting up python3-phply (1.2.6-1build1) ... 430s Setting up dictionaries-common (1.31.3) ... 430s Setting up libpython3.14-stdlib:amd64 (3.14.2-1) ... 430s Setting up python3-pytest (9.0.2-2) ... 430s Setting up python3-syrupy (5.0.0-1) ... 430s Setting up libserf-1-1:amd64 (1.3.10-3ubuntu1) ... 430s Setting up python3-bs4 (4.14.3-2build1) ... 431s Setting up python3-lxml:amd64 (6.0.2-1) ... 431s Setting up hunspell-en-us (1:2020.12.07-4build1) ... 431s Setting up python3.14 (3.14.2-1) ... 431s Setting up libsvn1:amd64 (1.14.5-5) ... 431s Setting up libenchant-2-2:amd64 (2.8.2+dfsg1-3build1) ... 431s Setting up subversion (1.14.5-5) ... 431s Setting up python3-all (3.13.9-3) ... 431s Setting up python3-enchant (3.3.0-1) ... 431s Setting up python3-translate (3.18.1-1) ... 432s Setting up translate-toolkit (3.18.1-1) ... 432s Processing triggers for libc-bin (2.42-2ubuntu4) ... 432s Processing triggers for systemd (259-1ubuntu2) ... 432s Processing triggers for man-db (2.13.1-1) ... 433s Processing triggers for install-info (7.2-5) ... 433s Processing triggers for dictionaries-common (1.31.3) ... 435s autopkgtest [23:56:30]: test python3-translate-commands: [----------------------- 435s ============================= test session starts ============================== 435s platform linux -- Python 3.14.2, pytest-9.0.2, pluggy-1.6.0 -- /usr/bin/python3.14 435s cachedir: .pytest_cache 435s rootdir: /tmp/autopkgtest.ZrT223/autopkgtest_tmp 435s plugins: typeguard-4.4.4, syrupy-5.0.0 438s collecting ... collected 3902 items / 2 skipped 438s 438s tests/odf_xliff/test_odf_xliff.py::test_odf2xliff PASSED [ 0%] 438s tests/odf_xliff/test_odf_xliff.py::test_roundtrip PASSED [ 0%] 438s tests/odf_xliff/test_odf_xliff.py::test_odf2xliff2_inline PASSED [ 0%] 438s tests/translate/convert/test_accesskey.py::test_get_label_and_accesskey PASSED [ 0%] 438s tests/translate/convert/test_accesskey.py::test_extract_bad_accesskeys PASSED [ 0%] 438s tests/translate/convert/test_accesskey.py::test_ignore_entities PASSED [ 0%] 438s tests/translate/convert/test_accesskey.py::test_alternate_accesskey_marker PASSED [ 0%] 438s tests/translate/convert/test_accesskey.py::test_unicode PASSED [ 0%] 438s tests/translate/convert/test_accesskey.py::test_numeric PASSED [ 0%] 438s tests/translate/convert/test_accesskey.py::test_empty_string PASSED [ 0%] 438s tests/translate/convert/test_accesskey.py::test_end_of_string PASSED [ 0%] 438s tests/translate/convert/test_accesskey.py::test_combine_label_accesskey PASSED [ 0%] 438s tests/translate/convert/test_accesskey.py::test_combine_label_accesskey_different_capitals PASSED [ 0%] 438s tests/translate/convert/test_accesskey.py::test_uncombinable PASSED [ 0%] 438s tests/translate/convert/test_accesskey.py::test_accesskey_already_in_text PASSED [ 0%] 438s tests/translate/convert/test_android2po.py::TestAndroid2PO::test_no_template_units PASSED [ 0%] 438s tests/translate/convert/test_android2po.py::TestAndroid2PO::test_template_units PASSED [ 0%] 438s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_no_template_units PASSED [ 0%] 438s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_template_units PASSED [ 0%] 438s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_help PASSED [ 0%] 438s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_convertandroid PASSED [ 0%] 438s tests/translate/convert/test_convert.py::TestConvertCommand::test_help PASSED [ 0%] 438s tests/translate/convert/test_csv2po.py::test_replacestrings PASSED [ 0%] 438s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_simpleentity PASSED [ 0%] 438s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_simpleentity_with_template PASSED [ 0%] 438s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_newlines PASSED [ 0%] 438s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_tabs PASSED [ 0%] 438s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_quotes PASSED [ 0%] 438s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_empties PASSED [ 0%] 438s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_kdecomment PASSED [ 0%] 438s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_escaped_newlines PASSED [ 0%] 438s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_line_numbers_in_errors PASSED [ 0%] 438s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_simpleentity PASSED [ 0%] 438s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_simpleentity_with_template PASSED [ 0%] 438s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_newlines PASSED [ 0%] 438s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_tabs PASSED [ 0%] 438s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_quotes PASSED [ 0%] 438s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_empties PASSED [ 0%] 438s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_kdecomment PASSED [ 0%] 438s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_escaped_newlines PASSED [ 1%] 438s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_line_numbers_in_errors PASSED [ 1%] 438s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_help PASSED [ 1%] 438s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder PASSED [ 1%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_simpleentity PASSED [ 1%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_convertdtd PASSED [ 1%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_apos PASSED [ 1%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_quotes PASSED [ 1%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_emptyentity PASSED [ 1%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_two_empty_entities PASSED [ 1%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_emptyentity_translated PASSED [ 1%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_localisaton_note_simple PASSED [ 1%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_localisation_note_merge PASSED [ 1%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_simple PASSED [ 1%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_label PASSED [ 1%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_onlyentity PASSED [ 1%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_commentedout PASSED [ 1%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_spaces_at_start_of_dtd_lines PASSED [ 1%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accesskeys_folding PASSED [ 1%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accesskeys_mismatch PASSED [ 1%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_carriage_return_in_multiline_dtd PASSED [ 1%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_multiline_with_blankline PASSED [ 1%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_multiline_closing_quotes PASSED [ 1%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_preserving_spaces PASSED [ 1%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_escaping_newline_tabs PASSED [ 1%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_abandoned_accelerator PASSED [ 1%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_unassociable_accelerator PASSED [ 1%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_changed_labels_and_accelerators PASSED [ 1%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accelerator_keys_not_in_sentence XFAIL [ 1%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_exclude_entity_includes PASSED [ 1%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_linewraps PASSED [ 1%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_merging_with_new_untranslated PASSED [ 1%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_merge_without_template PASSED [ 1%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_simpleentity PASSED [ 1%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_convertdtd PASSED [ 1%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_apos PASSED [ 1%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_quotes PASSED [ 1%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_emptyentity PASSED [ 1%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_two_empty_entities PASSED [ 1%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_emptyentity_translated PASSED [ 2%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_localisaton_note_simple PASSED [ 2%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_localisation_note_merge PASSED [ 2%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_simple PASSED [ 2%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_label PASSED [ 2%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_onlyentity PASSED [ 2%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_commentedout PASSED [ 2%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_spaces_at_start_of_dtd_lines PASSED [ 2%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accesskeys_folding PASSED [ 2%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accesskeys_mismatch PASSED [ 2%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_carriage_return_in_multiline_dtd PASSED [ 2%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_multiline_with_blankline PASSED [ 2%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_multiline_closing_quotes PASSED [ 2%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_preserving_spaces PASSED [ 2%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_escaping_newline_tabs PASSED [ 2%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_abandoned_accelerator PASSED [ 2%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_unassociable_accelerator PASSED [ 2%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_changed_labels_and_accelerators PASSED [ 2%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accelerator_keys_not_in_sentence XFAIL [ 2%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_exclude_entity_includes PASSED [ 2%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_linewraps PASSED [ 2%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_merging_with_new_untranslated PASSED [ 2%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_merge_without_template PASSED [ 2%] 438s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_help PASSED [ 2%] 438s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_defaults PASSED [ 2%] 438s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_root_name PASSED [ 2%] 438s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_value_name PASSED [ 2%] 438s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_key PASSED [ 2%] 438s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_default_namespace PASSED [ 2%] 438s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_namespace_prefix PASSED [ 2%] 438s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_all_parameters PASSED [ 2%] 438s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_empty_file_is_empty_store PASSED [ 2%] 438s tests/translate/convert/test_flatxml2po.py::TestFlatXML2POCommand::test_help PASSED [ 2%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_extract_lang_attribute_from_html_tag PASSED [ 2%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_do_not_extract_lang_attribute_from_tags_other_than_html PASSED [ 2%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_title PASSED [ 2%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_title_with_linebreak PASSED [ 2%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta PASSED [ 2%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p PASSED [ 2%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_br PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_linebreak PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_linebreak_and_embedded_br PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_uppercase_html PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_div PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_div_with_linebreaks PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_a PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_a_with_linebreak PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_sequence_of_anchor_elements PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_img PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_img_empty PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_img_inside_a PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_table_summary PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_simple PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_complex PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_empty PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_address PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_headings PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_headings_with_linebreaks PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_dt PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_dd PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_span PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_ul PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_nested_lists PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_duplicates PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_multiline_reflow PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_nested_tags PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_carriage_return PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_encoding_latin1 PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_strip_html PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_entityrefs_in_text PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_entityrefs_in_attributes PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_charrefs PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_multiple_php PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php_multiline PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php_with_embedded_html PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_comments PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_attribute_without_value PASSED [ 3%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_data_translate_ignore_attribute PASSED [ 4%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_translate_comment_directives PASSED [ 4%] 438s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta_social_media_tags PASSED [ 4%] 439s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta_non_translatable_tags_not_extracted PASSED [ 4%] 439s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta_mixed_translatable_and_non_translatable PASSED [ 4%] 439s tests/translate/convert/test_html2po.py::TestHTML2PO::test_data_translate_comment_attribute PASSED [ 4%] 439s tests/translate/convert/test_html2po.py::TestHTML2PO::test_data_translate_comment_without_keepcomments PASSED [ 4%] 439s tests/translate/convert/test_html2po.py::TestHTML2PO::test_text_after_empty_tags PASSED [ 4%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_extract_lang_attribute_from_html_tag PASSED [ 4%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_do_not_extract_lang_attribute_from_tags_other_than_html PASSED [ 4%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_title PASSED [ 4%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_title_with_linebreak PASSED [ 4%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta PASSED [ 4%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p PASSED [ 4%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_br PASSED [ 4%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_linebreak PASSED [ 4%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_linebreak_and_embedded_br PASSED [ 4%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_uppercase_html PASSED [ 4%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_div PASSED [ 4%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_div_with_linebreaks PASSED [ 4%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_a PASSED [ 4%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_a_with_linebreak PASSED [ 4%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_sequence_of_anchor_elements PASSED [ 4%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_img PASSED [ 4%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_img_empty PASSED [ 4%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_img_inside_a PASSED [ 4%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_table_summary PASSED [ 4%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_simple PASSED [ 4%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_complex PASSED [ 4%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_empty PASSED [ 4%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_address PASSED [ 4%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_headings PASSED [ 4%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_headings_with_linebreaks PASSED [ 4%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_dt PASSED [ 4%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_dd PASSED [ 4%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_span PASSED [ 4%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_ul PASSED [ 4%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_nested_lists PASSED [ 4%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_duplicates PASSED [ 4%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multiline_reflow PASSED [ 5%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_nested_tags PASSED [ 5%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_carriage_return PASSED [ 5%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_encoding_latin1 PASSED [ 5%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_strip_html PASSED [ 5%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_entityrefs_in_text PASSED [ 5%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_entityrefs_in_attributes PASSED [ 5%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_charrefs PASSED [ 5%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php PASSED [ 5%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multiple_php PASSED [ 5%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php_multiline PASSED [ 5%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php_with_embedded_html PASSED [ 5%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_comments PASSED [ 5%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_attribute_without_value PASSED [ 5%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_data_translate_ignore_attribute PASSED [ 5%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_translate_comment_directives PASSED [ 5%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta_social_media_tags PASSED [ 5%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta_non_translatable_tags_not_extracted PASSED [ 5%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta_mixed_translatable_and_non_translatable PASSED [ 5%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_data_translate_comment_attribute PASSED [ 5%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_data_translate_comment_without_keepcomments PASSED [ 5%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_text_after_empty_tags PASSED [ 5%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_help PASSED [ 5%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_single PASSED [ 5%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_onefile PASSED [ 5%] 439s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_onefile_to_stdout PASSED [ 5%] 439s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_convert_empty_file PASSED [ 5%] 439s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_no_translations PASSED [ 5%] 439s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_summary PASSED [ 5%] 439s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_description PASSED [ 5%] 439s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_location PASSED [ 5%] 439s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_comment PASSED [ 5%] 439s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_no_template_duplicate_style PASSED [ 5%] 439s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge PASSED [ 5%] 439s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_misaligned_files PASSED [ 5%] 439s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_blank_msgstr PASSED [ 5%] 439s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_duplicate_style PASSED [ 5%] 439s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_convert_empty_file PASSED [ 5%] 439s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_no_translations PASSED [ 5%] 439s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_summary PASSED [ 6%] 439s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_description PASSED [ 6%] 439s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_location PASSED [ 6%] 439s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_comment PASSED [ 6%] 439s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_no_template_duplicate_style PASSED [ 6%] 439s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge PASSED [ 6%] 439s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_misaligned_files PASSED [ 6%] 439s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_blank_msgstr PASSED [ 6%] 439s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_duplicate_style PASSED [ 6%] 439s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_help PASSED [ 6%] 439s tests/translate/convert/test_idml2po.py::TestIDML2POCommand::test_help PASSED [ 6%] 439s tests/translate/convert/test_idml2po.py::TestIDML2POCommand::test_convert PASSED [ 6%] 439s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_empty_file PASSED [ 6%] 439s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_no_translation PASSED [ 6%] 439s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_simple PASSED [ 6%] 439s tests/translate/convert/test_ini2po.py::TestIni2PO::test_no_duplicates PASSED [ 6%] 439s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_simple PASSED [ 6%] 439s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_misaligned_files PASSED [ 6%] 439s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_blank_msgstr PASSED [ 6%] 439s tests/translate/convert/test_ini2po.py::TestIni2PO::test_dialects_inno PASSED [ 6%] 439s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_empty_file PASSED [ 6%] 439s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_no_translation PASSED [ 6%] 439s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_simple PASSED [ 6%] 439s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_no_duplicates PASSED [ 6%] 439s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_simple PASSED [ 6%] 439s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_misaligned_files PASSED [ 6%] 439s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_blank_msgstr PASSED [ 6%] 439s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_dialects_inno PASSED [ 6%] 439s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_help PASSED [ 6%] 439s tests/translate/convert/test_json2po.py::TestJson2PO::test_simple PASSED [ 6%] 439s tests/translate/convert/test_json2po.py::TestJson2PO::test_three_same_keys PASSED [ 6%] 439s tests/translate/convert/test_json2po.py::TestJson2PO::test_filter PASSED [ 6%] 439s tests/translate/convert/test_json2po.py::TestJson2PO::test_multiple_units PASSED [ 6%] 439s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_simple PASSED [ 6%] 439s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_three_same_keys PASSED [ 6%] 439s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_filter PASSED [ 6%] 439s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_multiple_units PASSED [ 6%] 439s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_help PASSED [ 6%] 439s tests/translate/convert/test_md2po.py::TestMD2PO::test_help PASSED [ 6%] 439s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_file_with_multifile_single PASSED [ 7%] 439s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_file_with_multifile_onefile PASSED [ 7%] 439s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_directory_with_multifile_single PASSED [ 7%] 439s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_directory_with_multifile_onefile PASSED [ 7%] 439s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_frontmatter PASSED [ 7%] 439s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_translation_ignore_sections PASSED [ 7%] 439s tests/translate/convert/test_moz2po.py::TestMoz2PO::test_duplicate_locations PASSED [ 7%] 439s tests/translate/convert/test_moz2po.py::TestMoz2POCommand::test_duplicate_locations PASSED [ 7%] 439s tests/translate/convert/test_moz2po.py::TestMoz2POCommand::test_help PASSED [ 7%] 439s tests/translate/convert/test_mozfunny2prop.py::TestInc2PO::test_simpleentry PASSED [ 7%] 439s tests/translate/convert/test_mozfunny2prop.py::TestInc2PO::test_uncomment_contributors PASSED [ 7%] 439s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_convert_empty PASSED [ 7%] 439s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_string PASSED [ 7%] 439s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_merge PASSED [ 7%] 439s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_entry PASSED [ 7%] 439s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_comment PASSED [ 7%] 439s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_meta_tags PASSED [ 7%] 439s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_keep_duplicates PASSED [ 7%] 439s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_drop_duplicates PASSED [ 7%] 439s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_convert_empty PASSED [ 7%] 439s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_string PASSED [ 7%] 439s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_merge PASSED [ 7%] 439s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_entry PASSED [ 7%] 439s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_comment PASSED [ 7%] 439s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_meta_tags PASSED [ 7%] 439s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_keep_duplicates PASSED [ 7%] 439s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_drop_duplicates PASSED [ 7%] 439s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_help PASSED [ 7%] 439s tests/translate/convert/test_ods2xliff.py::TestODF2XLIFFCommand::test_help PASSED [ 7%] 439s tests/translate/convert/test_ods2xliff.py::TestODF2XLIFFCommand::test_convert PASSED [ 7%] 439s tests/translate/convert/test_oo2po.py::TestOO2PO::test_simpleentity PASSED [ 7%] 439s tests/translate/convert/test_oo2po.py::TestOO2PO::test_escapes PASSED [ 7%] 439s tests/translate/convert/test_oo2po.py::TestOO2PO::test_roundtrip_escape PASSED [ 7%] 439s tests/translate/convert/test_oo2po.py::TestOO2PO::test_roundtrip_whitespaceonly PASSED [ 7%] 439s tests/translate/convert/test_oo2po.py::TestOO2PO::test_double_escapes PASSED [ 7%] 439s tests/translate/convert/test_oo2po.py::TestOO2PO::test_escapes_helpcontent2 PASSED [ 7%] 439s tests/translate/convert/test_oo2po.py::TestOO2PO::test_msgid_bug_error_address PASSED [ 7%] 439s tests/translate/convert/test_oo2po.py::TestOO2PO::test_x_comment_inclusion PASSED [ 7%] 439s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simpleentity PASSED [ 7%] 439s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_escapes PASSED [ 8%] 439s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_roundtrip_escape PASSED [ 8%] 439s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_roundtrip_whitespaceonly PASSED [ 8%] 439s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_double_escapes PASSED [ 8%] 439s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_escapes_helpcontent2 PASSED [ 8%] 439s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_msgid_bug_error_address PASSED [ 8%] 439s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_x_comment_inclusion PASSED [ 8%] 439s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_help PASSED [ 8%] 439s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_preserve_filename PASSED [ 8%] 439s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_pot PASSED [ 8%] 439s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_po PASSED [ 8%] 439s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_onefile_nonrecursive PASSED [ 8%] 439s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_remove_duplicates PASSED [ 8%] 439s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_simpleentity PASSED [ 8%] 439s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_escapes PASSED [ 8%] 439s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_roundtrip_escape PASSED [ 8%] 439s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_roundtrip_whitespaceonly PASSED [ 8%] 439s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_double_escapes PASSED [ 8%] 439s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_escapes_helpcontent2 PASSED [ 8%] 439s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_x_comment_inclusion PASSED [ 8%] 439s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_msgid_bug_error_address PASSED [ 8%] 439s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simpleentity PASSED [ 8%] 439s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_escapes PASSED [ 8%] 439s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_roundtrip_escape PASSED [ 8%] 439s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_roundtrip_whitespaceonly PASSED [ 8%] 439s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_double_escapes PASSED [ 8%] 439s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_escapes_helpcontent2 PASSED [ 8%] 439s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_x_comment_inclusion PASSED [ 8%] 439s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_msgid_bug_error_address PASSED [ 8%] 439s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_help PASSED [ 8%] 439s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_preserve_filename PASSED [ 8%] 439s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_xlf PASSED [ 8%] 439s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_po PASSED [ 8%] 439s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_onefile_nonrecursive PASSED [ 8%] 439s tests/translate/convert/test_php2po.py::TestPhp2PO::test_simpleentry PASSED [ 8%] 439s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphp PASSED [ 8%] 439s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphptemplate PASSED [ 8%] 439s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphpmissing PASSED [ 8%] 439s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphpempty PASSED [ 8%] 439s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unicode PASSED [ 9%] 439s tests/translate/convert/test_php2po.py::TestPhp2PO::test_multiline PASSED [ 9%] 439s tests/translate/convert/test_php2po.py::TestPhp2PO::test_comments_before PASSED [ 9%] 439s tests/translate/convert/test_php2po.py::TestPhp2PO::test_emptyentry PASSED [ 9%] 439s tests/translate/convert/test_php2po.py::TestPhp2PO::test_hash_comment_with_equals PASSED [ 9%] 439s tests/translate/convert/test_php2po.py::TestPhp2PO::test_emptyentry_translated PASSED [ 9%] 439s tests/translate/convert/test_php2po.py::TestPhp2PO::test_newlines_in_value PASSED [ 9%] 439s tests/translate/convert/test_php2po.py::TestPhp2PO::test_spaces_in_name PASSED [ 9%] 439s tests/translate/convert/test_php2po.py::TestPhp2PO::test_named_array PASSED [ 9%] 439s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unnamed_array PASSED [ 9%] 439s tests/translate/convert/test_php2po.py::TestPhp2PO::test_named_nested_arrays PASSED [ 9%] 439s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unnamed_nested_arrays PASSED [ 9%] 439s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_simpleentry PASSED [ 9%] 439s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphp PASSED [ 9%] 439s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphptemplate PASSED [ 9%] 439s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphpmissing PASSED [ 9%] 439s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphpempty PASSED [ 9%] 439s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unicode PASSED [ 9%] 439s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_multiline PASSED [ 9%] 439s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_comments_before PASSED [ 9%] 439s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_emptyentry PASSED [ 9%] 439s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_hash_comment_with_equals PASSED [ 9%] 439s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_emptyentry_translated PASSED [ 9%] 439s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_newlines_in_value PASSED [ 9%] 439s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_spaces_in_name PASSED [ 9%] 439s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_named_array PASSED [ 9%] 439s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unnamed_array PASSED [ 9%] 439s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_named_nested_arrays PASSED [ 9%] 439s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unnamed_nested_arrays PASSED [ 9%] 439s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_help PASSED [ 9%] 439s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_simpleentity PASSED [ 9%] 439s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_multiline PASSED [ 9%] 439s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapednewlines PASSED [ 9%] 439s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedtabs PASSED [ 9%] 439s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedquotes PASSED [ 9%] 439s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedescape PASSED [ 9%] 439s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_singlequotes PASSED [ 9%] 439s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_empties PASSED [ 9%] 439s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_kdecomments PASSED [ 9%] 439s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_simpleentity PASSED [ 10%] 439s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_multiline PASSED [ 10%] 439s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapednewlines PASSED [ 10%] 439s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedtabs PASSED [ 10%] 439s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedquotes PASSED [ 10%] 439s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedescape PASSED [ 10%] 439s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_singlequotes PASSED [ 10%] 439s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_empties PASSED [ 10%] 439s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_kdecomments PASSED [ 10%] 439s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_help PASSED [ 10%] 439s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder PASSED [ 10%] 439s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_context PASSED [ 10%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_joinlines PASSED [ 10%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_escapedstr PASSED [ 10%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_missingaccesskey PASSED [ 10%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskeycase PASSED [ 10%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_types PASSED [ 10%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing PASSED [ 10%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey PASSED [ 10%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_source_no_amp_in_target PASSED [ 10%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_both_amp_and_accesskey PASSED [ 10%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey PASSED [ 10%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_entities_two PASSED [ 10%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_entities PASSED [ 10%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_comments_translator PASSED [ 10%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_retains_hashprefix PASSED [ 10%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_convertdtd PASSED [ 10%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_untranslated_with_template PASSED [ 10%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_untranslated_without_template PASSED [ 10%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_blank_source PASSED [ 10%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_newlines_escapes PASSED [ 10%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_simple PASSED [ 10%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_escape PASSED [ 10%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_quotes PASSED [ 10%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_amp PASSED [ 10%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_merging_entries_with_spaces_removed PASSED [ 10%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_preserving_spaces PASSED [ 10%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_preserving_spaces_after_value PASSED [ 10%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_comments PASSED [ 10%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_duplicates PASSED [ 11%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_joinlines PASSED [ 11%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_escapedstr PASSED [ 11%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_missingaccesskey PASSED [ 11%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskeycase PASSED [ 11%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_types PASSED [ 11%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing PASSED [ 11%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey PASSED [ 11%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_source_no_amp_in_target PASSED [ 11%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_both_amp_and_accesskey PASSED [ 11%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_amp_no_accesskey PASSED [ 11%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_entities_two PASSED [ 11%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_entities PASSED [ 11%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_comments_translator PASSED [ 11%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_retains_hashprefix PASSED [ 11%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_convertdtd PASSED [ 11%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_untranslated_with_template PASSED [ 11%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_untranslated_without_template PASSED [ 11%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_blank_source PASSED [ 11%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_newlines_escapes PASSED [ 11%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_simple PASSED [ 11%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_escape PASSED [ 11%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_quotes PASSED [ 11%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_amp PASSED [ 11%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_merging_entries_with_spaces_removed PASSED [ 11%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_preserving_spaces PASSED [ 11%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_preserving_spaces_after_value PASSED [ 11%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_comments PASSED [ 11%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_duplicates PASSED [ 11%] 439s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_help PASSED [ 11%] 439s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_defaults PASSED [ 11%] 439s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_root_name PASSED [ 11%] 439s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_value_name PASSED [ 11%] 439s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_key PASSED [ 11%] 439s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_default_namespace PASSED [ 11%] 439s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_namespace_prefix PASSED [ 11%] 439s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_indent_eight PASSED [ 11%] 439s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_noindent PASSED [ 11%] 439s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXMLCommand::test_help PASSED [ 11%] 439s tests/translate/convert/test_po2html.py::TestPO2Html::test_simple PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2Html::test_linebreaks PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2Html::test_replace_substrings PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_outside_translatable_content PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_within_translatable_content_not_embedded PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_embedded_within_translatable_content PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_without_value PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2Html::test_entities PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2Html::test_entities_template_vs_po_mismatch PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2Html::test_utf8_non_ascii_characters PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2Html::test_custom_entities_preserved PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2Html::test_escapes PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_auto_rtl PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_auto_ltr PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_added_when_missing PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_not_changed_without_lang_translation PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_translated PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_untranslated PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_fuzzy PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2Html::test_untranslated_attributes PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2Html::test_button_translation PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2Html::test_lang_attribute_only_on_html_tag PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2Html::test_data_translate_ignore_preserved PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2Html::test_translate_comment_directives_preserved PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2Html::test_data_translate_ignore_with_translation_in_po PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2Html::test_translate_comment_with_translation_in_po PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2Html::test_meta_social_media_tags_translation PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2Html::test_meta_non_translatable_tags_preserved PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_simple PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_linebreaks PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_replace_substrings PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_outside_translatable_content PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_within_translatable_content_not_embedded PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_embedded_within_translatable_content PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_without_value PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_entities PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_entities_template_vs_po_mismatch PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_utf8_non_ascii_characters PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_custom_entities_preserved PASSED [ 12%] 439s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_escapes PASSED [ 13%] 439s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_auto_rtl PASSED [ 13%] 439s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_auto_ltr PASSED [ 13%] 439s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_added_when_missing PASSED [ 13%] 439s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_not_changed_without_lang_translation PASSED [ 13%] 439s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_translated PASSED [ 13%] 439s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_untranslated PASSED [ 13%] 439s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_fuzzy PASSED [ 13%] 439s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_untranslated_attributes PASSED [ 13%] 439s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_button_translation PASSED [ 13%] 439s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_lang_attribute_only_on_html_tag PASSED [ 13%] 439s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_data_translate_ignore_preserved PASSED [ 13%] 439s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_translate_comment_directives_preserved PASSED [ 13%] 439s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_data_translate_ignore_with_translation_in_po PASSED [ 13%] 439s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_translate_comment_with_translation_in_po PASSED [ 13%] 439s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_meta_social_media_tags_translation PASSED [ 13%] 439s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_meta_non_translatable_tags_preserved PASSED [ 13%] 439s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_help PASSED [ 13%] 439s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_individual_files PASSED [ 13%] 439s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_fully_recursive PASSED [ 13%] 439s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_input_specified PASSED [ 13%] 439s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified PASSED [ 13%] 439s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_output_specified PASSED [ 13%] 439s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file PASSED [ 13%] 439s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file_and_templates_overwritten PASSED [ 13%] 439s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_empty_file PASSED [ 13%] 439s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_summary PASSED [ 13%] 439s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_description PASSED [ 13%] 439s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_location PASSED [ 13%] 439s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_comment PASSED [ 13%] 439s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_complex_icalendar PASSED [ 13%] 439s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_skip_fuzzy PASSED [ 13%] 439s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_include_fuzzy PASSED [ 13%] 439s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_no_template PASSED [ 13%] 439s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_template_location_not_in_source_file PASSED [ 13%] 439s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_completion_below_threshold PASSED [ 13%] 439s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_completion_above_threshold PASSED [ 13%] 439s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_empty_file PASSED [ 13%] 439s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_summary PASSED [ 13%] 439s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_description PASSED [ 14%] 439s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_location PASSED [ 14%] 439s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_comment PASSED [ 14%] 439s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_complex_icalendar PASSED [ 14%] 439s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_skip_fuzzy PASSED [ 14%] 439s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_include_fuzzy PASSED [ 14%] 439s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_no_template PASSED [ 14%] 439s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_template_location_not_in_source_file PASSED [ 14%] 439s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_completion_below_threshold PASSED [ 14%] 439s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_completion_above_threshold PASSED [ 14%] 439s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_help PASSED [ 14%] 439s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_help PASSED [ 14%] 439s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_convert PASSED [ 14%] 439s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_no_templates PASSED [ 14%] 439s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_simple PASSED [ 14%] 439s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_space_preservation PASSED [ 14%] 439s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_blank_entries PASSED [ 14%] 439s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_fuzzy PASSED [ 14%] 439s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_propertyless_template PASSED [ 14%] 439s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_empty_value PASSED [ 14%] 439s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_dialects_inno PASSED [ 14%] 439s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_misaligned_files PASSED [ 14%] 439s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_completion_below_threshold PASSED [ 14%] 439s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_completion_above_threshold PASSED [ 14%] 439s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_no_fuzzy PASSED [ 14%] 439s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_allow_fuzzy PASSED [ 14%] 439s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_missing_source PASSED [ 14%] 439s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_repeated_locations PASSED [ 14%] 439s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_no_templates PASSED [ 14%] 439s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_simple PASSED [ 14%] 439s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_space_preservation PASSED [ 14%] 439s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_blank_entries PASSED [ 14%] 439s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_fuzzy PASSED [ 14%] 439s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_propertyless_template PASSED [ 14%] 439s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_empty_value PASSED [ 14%] 439s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_dialects_inno PASSED [ 14%] 439s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_misaligned_files PASSED [ 14%] 439s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_completion_below_threshold PASSED [ 14%] 439s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_completion_above_threshold PASSED [ 14%] 439s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_no_fuzzy PASSED [ 15%] 439s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_allow_fuzzy PASSED [ 15%] 439s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_missing_source PASSED [ 15%] 439s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_repeated_locations PASSED [ 15%] 439s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_help PASSED [ 15%] 439s tests/translate/convert/test_po2json.py::TestPO2JSON::test_basic PASSED [ 15%] 439s tests/translate/convert/test_po2json.py::TestPO2JSON::test_ordering_serialize PASSED [ 15%] 439s tests/translate/convert/test_po2json.py::TestPO2JSON::test_dont_use_empty_translation PASSED [ 15%] 439s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_false_remove_untranslated_false PASSED [ 15%] 439s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_false_remove_untranslated_true PASSED [ 15%] 439s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_true_remove_untranslated_false PASSED [ 15%] 439s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_true_remove_untranslated_true PASSED [ 15%] 439s tests/translate/convert/test_po2md.py::TestPO2MD::test_help PASSED [ 15%] 439s tests/translate/convert/test_po2md.py::TestPO2MD::test_single_markdown_file_with_single_po PASSED [ 15%] 439s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_with_single_po PASSED [ 15%] 439s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_and_directory_of_po_files PASSED [ 15%] 439s tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_table XFAIL [ 15%] 439s tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_frontmatter PASSED [ 15%] 439s tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_translation_ignore_sections PASSED [ 15%] 439s tests/translate/convert/test_po2moz.py::TestPO2MozCommand::test_help PASSED [ 15%] 439s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_empty PASSED [ 15%] 439s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_simple PASSED [ 15%] 439s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_comment PASSED [ 15%] 439s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_ok_marker PASSED [ 15%] 439s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_completion_below_threshold PASSED [ 15%] 439s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_completion_above_threshold PASSED [ 15%] 439s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_skip_non_translatable_input PASSED [ 15%] 439s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_no_fuzzy PASSED [ 15%] 439s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_allow_fuzzy PASSED [ 15%] 439s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_mark_active PASSED [ 15%] 439s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_empty PASSED [ 15%] 439s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_simple PASSED [ 15%] 439s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_comment PASSED [ 15%] 439s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_ok_marker PASSED [ 15%] 439s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_completion_below_threshold PASSED [ 15%] 439s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_completion_above_threshold PASSED [ 15%] 439s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_skip_non_translatable_input PASSED [ 15%] 439s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_no_fuzzy PASSED [ 15%] 439s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_allow_fuzzy PASSED [ 15%] 439s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_mark_active PASSED [ 16%] 439s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_help PASSED [ 16%] 439s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_help PASSED [ 16%] 439s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert PASSED [ 16%] 439s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert_with_multiple_units PASSED [ 16%] 439s tests/translate/convert/test_po2oo.py::TestPO2OO::test_convertoo PASSED [ 16%] 439s tests/translate/convert/test_po2oo.py::TestPO2OO::test_pofilter PASSED [ 16%] 439s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_simple PASSED [ 16%] 439s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_escape PASSED [ 16%] 439s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_quotes PASSED [ 16%] 439s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_spaces PASSED [ 16%] 439s tests/translate/convert/test_po2oo.py::TestPO2OO::test_default_timestamp PASSED [ 16%] 439s tests/translate/convert/test_po2oo.py::TestPO2OO::test_escape_conversion PASSED [ 16%] 439s tests/translate/convert/test_po2oo.py::TestPO2OO::test_helpcontent_escapes PASSED [ 16%] 439s tests/translate/convert/test_po2oo.py::TestPO2OO::test_helpcontent_escapes2 PASSED [ 16%] 439s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_convertoo PASSED [ 16%] 439s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_pofilter PASSED [ 16%] 439s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_simple PASSED [ 16%] 439s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_escape PASSED [ 16%] 439s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_quotes PASSED [ 16%] 439s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_spaces PASSED [ 16%] 439s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_default_timestamp PASSED [ 16%] 439s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_escape_conversion PASSED [ 16%] 439s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_helpcontent_escapes PASSED [ 16%] 439s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_helpcontent_escapes2 PASSED [ 16%] 439s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_help PASSED [ 16%] 439s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp PASSED [ 16%] 439s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp_notemplate PASSED [ 16%] 439s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp_empty_template PASSED [ 16%] 439s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_simple PASSED [ 16%] 439s tests/translate/convert/test_po2php.py::TestPO2Php::test_space_preservation PASSED [ 16%] 439s tests/translate/convert/test_po2php.py::TestPO2Php::test_preserve_unused_statement PASSED [ 16%] 439s tests/translate/convert/test_po2php.py::TestPO2Php::test_not_translated_multiline PASSED [ 16%] 439s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_blank_entries PASSED [ 16%] 439s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_fuzzy PASSED [ 16%] 439s tests/translate/convert/test_po2php.py::TestPO2Php::test_locations_with_spaces PASSED [ 16%] 439s tests/translate/convert/test_po2php.py::TestPO2Php::test_inline_comments PASSED [ 16%] 439s tests/translate/convert/test_po2php.py::TestPO2Php::test_block_comments PASSED [ 16%] 439s tests/translate/convert/test_po2php.py::TestPO2Php::test_named_variables PASSED [ 16%] 439s tests/translate/convert/test_po2php.py::TestPO2Php::test_multiline PASSED [ 17%] 439s tests/translate/convert/test_po2php.py::TestPO2Php::test_hash_comment PASSED [ 17%] 439s tests/translate/convert/test_po2php.py::TestPO2Php::test_arrays PASSED [ 17%] 439s tests/translate/convert/test_po2php.py::TestPO2Php::test_named_nested_array PASSED [ 17%] 439s tests/translate/convert/test_po2php.py::TestPO2Php::test_unnamed_nested_arrays PASSED [ 17%] 439s tests/translate/convert/test_po2php.py::TestPO2Php::test_return_array_with_comments PASSED [ 17%] 439s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_propertyless_template XFAIL [ 17%] 439s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp PASSED [ 17%] 439s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp_notemplate PASSED [ 17%] 439s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp_empty_template PASSED [ 17%] 439s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_simple PASSED [ 17%] 439s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_space_preservation PASSED [ 17%] 439s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_preserve_unused_statement PASSED [ 17%] 439s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_not_translated_multiline PASSED [ 17%] 439s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_blank_entries PASSED [ 17%] 439s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_fuzzy PASSED [ 17%] 439s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_locations_with_spaces PASSED [ 17%] 439s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_inline_comments PASSED [ 17%] 439s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_block_comments PASSED [ 17%] 439s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_named_variables PASSED [ 17%] 439s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_multiline PASSED [ 17%] 439s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_hash_comment PASSED [ 17%] 439s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_arrays PASSED [ 17%] 439s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_named_nested_array PASSED [ 17%] 439s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_unnamed_nested_arrays PASSED [ 17%] 439s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_return_array_with_comments PASSED [ 17%] 439s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_propertyless_template XFAIL [ 17%] 439s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_help PASSED [ 17%] 439s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_simple PASSED [ 17%] 439s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated PASSED [ 17%] 439s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_hard_newlines_preserved PASSED [ 17%] 439s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_space_preservation PASSED [ 17%] 439s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_no_value PASSED [ 17%] 439s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_no_separator PASSED [ 17%] 439s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_value_no_key PASSED [ 17%] 439s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_blank_entries PASSED [ 17%] 439s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_fuzzy PASSED [ 17%] 439s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys PASSED [ 17%] 439s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey PASSED [ 17%] 439s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_margin_whitespace PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_all_whitespace PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_propertyless_template PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_delimiters PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_empty_value PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_personalities PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_simple PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_multiline PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_multiline2 PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_comments PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_unchanged PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_blank PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_gaia_plurals PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_duplicates PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_gwt_plurals PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_utf16_with_empty_lines PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_simple PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_hard_newlines_preserved PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_space_preservation PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_no_value PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_no_separator PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_value_no_key PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_blank_entries PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_fuzzy PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys_missing_accesskey PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_margin_whitespace PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_all_whitespace PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_propertyless_template PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_delimiters PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_empty_value PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_personalities PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_simple PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_multiline PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_multiline2 PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_comments PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_unchanged PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_blank PASSED [ 18%] 439s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_gaia_plurals PASSED [ 19%] 439s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_duplicates PASSED [ 19%] 439s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_gwt_plurals PASSED [ 19%] 439s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_utf16_with_empty_lines PASSED [ 19%] 439s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_help PASSED [ 19%] 439s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_help PASSED [ 19%] 439s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert PASSED [ 19%] 440s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_quotes PASSED [ 19%] 440s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment PASSED [ 19%] 440s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment_dos_eol PASSED [ 19%] 440s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_double_string PASSED [ 19%] 440s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_popup PASSED [ 19%] 440s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_discardable PASSED [ 19%] 440s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_menuex PASSED [ 19%] 440s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_newlines PASSED [ 19%] 440s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment_after PASSED [ 19%] 440s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_block_language PASSED [ 19%] 440s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_output_encoding PASSED [ 19%] 440s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_quotes_strintable PASSED [ 19%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_simpleunit PASSED [ 19%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_basic PASSED [ 19%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_multiline PASSED [ 19%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapednewlines PASSED [ 19%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapedtabs PASSED [ 19%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapedquotes PASSED [ 19%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_exclusions PASSED [ 19%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments PASSED [ 19%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingcomment PASSED [ 19%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingduplicatecomment PASSED [ 19%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingduplicatecommentwithwhitespace PASSED [ 19%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments PASSED [ 19%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments_existingcomment PASSED [ 19%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments_existingduplicatecomment PASSED [ 19%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments PASSED [ 19%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments_existingduplicatecomment PASSED [ 19%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments_existingcomment PASSED [ 19%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_existingcomments PASSED [ 19%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_plus_in_resourcekey PASSED [ 19%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_special_chars_in_resourcekey PASSED [ 19%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_simpleunit PASSED [ 20%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_basic PASSED [ 20%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_multiline PASSED [ 20%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapednewlines PASSED [ 20%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapedtabs PASSED [ 20%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapedquotes PASSED [ 20%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_exclusions PASSED [ 20%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments PASSED [ 20%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingcomment PASSED [ 20%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingduplicatecomment PASSED [ 20%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingduplicatecommentwithwhitespace PASSED [ 20%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments PASSED [ 20%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments_existingcomment PASSED [ 20%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments_existingduplicatecomment PASSED [ 20%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments PASSED [ 20%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments_existingduplicatecomment PASSED [ 20%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments_existingcomment PASSED [ 20%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_existingcomments PASSED [ 20%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_plus_in_resourcekey PASSED [ 20%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_special_chars_in_resourcekey PASSED [ 20%] 440s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_help PASSED [ 20%] 440s tests/translate/convert/test_po2sub.py::TestPO2Sub::test_subrip PASSED [ 20%] 440s tests/translate/convert/test_po2sub.py::TestPO2SubCommand::test_subrip PASSED [ 20%] 440s tests/translate/convert/test_po2sub.py::TestPO2SubCommand::test_help PASSED [ 20%] 440s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert_empty PASSED [ 20%] 440s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert PASSED [ 20%] 440s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert_marked_untranslated PASSED [ 20%] 440s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert_empty PASSED [ 20%] 440s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert PASSED [ 20%] 440s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert_marked_untranslated PASSED [ 20%] 440s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_help PASSED [ 20%] 440s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_basic PASSED [ 20%] 440s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_sourcelanguage PASSED [ 20%] 440s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_targetlanguage PASSED [ 20%] 440s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_multiline PASSED [ 20%] 440s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapednewlines PASSED [ 20%] 440s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapedtabs PASSED [ 20%] 440s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapedquotes PASSED [ 20%] 440s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_exclusions PASSED [ 20%] 440s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_nonascii PASSED [ 21%] 440s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_nonecomments PASSED [ 21%] 440s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_otherscomments PASSED [ 21%] 440s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_sourcecomments PASSED [ 21%] 440s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_typecomments PASSED [ 21%] 440s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_basic PASSED [ 21%] 440s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_sourcelanguage PASSED [ 21%] 440s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_targetlanguage PASSED [ 21%] 440s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_multiline PASSED [ 21%] 440s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapednewlines PASSED [ 21%] 440s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapedtabs PASSED [ 21%] 440s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapedquotes PASSED [ 21%] 440s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_exclusions PASSED [ 21%] 440s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_nonascii PASSED [ 21%] 440s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_nonecomments PASSED [ 21%] 440s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_otherscomments PASSED [ 21%] 440s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_sourcecomments PASSED [ 21%] 440s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_typecomments PASSED [ 21%] 440s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_help PASSED [ 21%] 440s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_context PASSED [ 21%] 440s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_simple_convert PASSED [ 21%] 440s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_nested_convert PASSED [ 21%] 440s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_template_required PASSED [ 21%] 440s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_untranslated_uses_source PASSED [ 21%] 440s tests/translate/convert/test_po2ts.py::TestPO2TS::test_simpleunit PASSED [ 21%] 440s tests/translate/convert/test_po2ts.py::TestPO2TS::test_simple_unicode_unit PASSED [ 21%] 440s tests/translate/convert/test_po2ts.py::TestPO2TS::test_fullunit PASSED [ 21%] 440s tests/translate/convert/test_po2ts.py::TestPO2TS::test_fuzzyunit PASSED [ 21%] 440s tests/translate/convert/test_po2ts.py::TestPO2TS::test_obsolete PASSED [ 21%] 440s tests/translate/convert/test_po2ts.py::TestPO2TS::test_duplicates PASSED [ 21%] 440s tests/translate/convert/test_po2ts.py::TestPO2TS::test_linebreak PASSED [ 21%] 440s tests/translate/convert/test_po2ts.py::TestPO2TS::test_linebreak_consecutive PASSED [ 21%] 440s tests/translate/convert/test_po2ts.py::TestPO2TS::test_plural PASSED [ 21%] 440s tests/translate/convert/test_po2ts.py::TestPO2TS::test_plural_fuzzy PASSED [ 21%] 440s tests/translate/convert/test_po2ts.py::TestPO2TS::test_unit_without_location PASSED [ 21%] 440s tests/translate/convert/test_po2ts.py::TestPO2TS::test_mixed_units_with_and_without_location PASSED [ 21%] 440s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_simpleunit PASSED [ 21%] 440s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_simple_unicode_unit PASSED [ 21%] 440s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_fullunit PASSED [ 21%] 440s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_fuzzyunit PASSED [ 22%] 440s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_obsolete PASSED [ 22%] 440s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_duplicates PASSED [ 22%] 440s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_linebreak PASSED [ 22%] 440s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_linebreak_consecutive PASSED [ 22%] 440s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_plural PASSED [ 22%] 440s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_plural_fuzzy PASSED [ 22%] 440s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_unit_without_location PASSED [ 22%] 440s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_mixed_units_with_and_without_location PASSED [ 22%] 440s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_help PASSED [ 22%] 440s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_basic PASSED [ 22%] 440s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_nonascii PASSED [ 22%] 440s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_blank_handling PASSED [ 22%] 440s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_fuzzy_handling PASSED [ 22%] 440s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_obsolete_ignore PASSED [ 22%] 440s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_header_ignore PASSED [ 22%] 440s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_convert_completion_below_threshold PASSED [ 22%] 440s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_convert_completion_above_threshold PASSED [ 22%] 440s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_substring_replacement PASSED [ 22%] 440s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_duplicate_text_segment_based_replacement PASSED [ 22%] 440s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_dokuwiki_flavour_segmentation PASSED [ 22%] 440s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_basic PASSED [ 22%] 440s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_nonascii PASSED [ 22%] 440s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_blank_handling PASSED [ 22%] 440s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_fuzzy_handling PASSED [ 22%] 440s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_obsolete_ignore PASSED [ 22%] 440s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_header_ignore PASSED [ 22%] 440s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_convert_completion_below_threshold PASSED [ 22%] 440s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_convert_completion_above_threshold PASSED [ 22%] 440s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_substring_replacement PASSED [ 22%] 440s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_duplicate_text_segment_based_replacement PASSED [ 22%] 440s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_dokuwiki_flavour_segmentation PASSED [ 22%] 440s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_help PASSED [ 22%] 440s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_basic PASSED [ 22%] 440s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_unicode PASSED [ 22%] 440s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_ordering_serialize PASSED [ 22%] 440s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_markmin PASSED [ 22%] 440s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_minimal PASSED [ 22%] 440s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_basic PASSED [ 22%] 440s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_multiline PASSED [ 23%] 440s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapednewlines PASSED [ 23%] 440s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapedtabs PASSED [ 23%] 440s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapedquotes PASSED [ 23%] 440s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_locationcomments PASSED [ 23%] 440s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_othercomments PASSED [ 23%] 440s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_automaticcomments PASSED [ 23%] 440s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_header PASSED [ 23%] 440s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_fuzzy PASSED [ 23%] 440s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_germanic_plurals PASSED [ 23%] 440s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_funny_plurals PASSED [ 23%] 440s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_language_tags PASSED [ 23%] 440s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_variables PASSED [ 23%] 440s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_approved PASSED [ 23%] 440s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_empty_PO PASSED [ 23%] 440s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_no_templates PASSED [ 23%] 440s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_simple_output PASSED [ 23%] 440s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_simple PASSED [ 23%] 440s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_translated PASSED [ 23%] 440s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_no_fuzzy PASSED [ 23%] 440s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_allow_fuzzy PASSED [ 23%] 440s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_nested PASSED [ 23%] 440s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_completion_below_threshold PASSED [ 23%] 440s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_completion_above_threshold PASSED [ 23%] 440s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_empty_PO PASSED [ 23%] 440s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_no_templates PASSED [ 23%] 440s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_simple_output PASSED [ 23%] 440s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_simple PASSED [ 23%] 440s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_translated PASSED [ 23%] 440s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_no_fuzzy PASSED [ 23%] 440s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_allow_fuzzy PASSED [ 23%] 440s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_nested PASSED [ 23%] 440s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_completion_below_threshold PASSED [ 23%] 440s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_completion_above_threshold PASSED [ 23%] 440s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_help PASSED [ 23%] 440s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_convertpot_blank PASSED [ 23%] 440s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_convertpot_blank_plurals PASSED [ 23%] 440s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_simple PASSED [ 23%] 440s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_messages_marked_fuzzy PASSED [ 23%] 440s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_plurals_with_fuzzy_matching PASSED [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_change XFAIL [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_change PASSED [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_and_whitespace_change PASSED [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_ambiguous_with_disambiguous PASSED [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_accelerator_changes XFAIL [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_lines_cut_differently XFAIL [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_automatic_comments_dont_duplicate PASSED [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_automatic_comments_new_overrides_old PASSED [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_comments_with_blank_comment_lines PASSED [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_empty_commentlines PASSED [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgidcomments PASSED [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_with_msgidcomment PASSED [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_plurals PASSED [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_obsoleting_messages PASSED [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_not_obsoleting_empty_messages PASSED [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_new_before_obsolete PASSED [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_resurrect_obsolete_messages PASSED [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_resurrect_obsolete_messages_into_msgidcomment PASSED [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_header_initialisation PASSED [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_comments PASSED [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_typecomments PASSED [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgctxt PASSED [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgctxt_multiline PASSED [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgid_merge_on_location PASSED [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgid_merge_on_id PASSED [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_empty_msgid PASSED [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_migrate_msgidcomment_to_msgctxt PASSED [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_obsolete_msgctxt PASSED [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_small_strings PASSED [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_convertpot_blank PASSED [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_convertpot_blank_plurals PASSED [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_simple PASSED [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_messages_marked_fuzzy PASSED [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_plurals_with_fuzzy_matching PASSED [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_change XFAIL [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_change PASSED [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_and_whitespace_change PASSED [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_ambiguous_with_disambiguous PASSED [ 24%] 440s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_accelerator_changes XFAIL [ 25%] 440s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_lines_cut_differently XFAIL [ 25%] 440s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_automatic_comments_dont_duplicate PASSED [ 25%] 440s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_automatic_comments_new_overrides_old PASSED [ 25%] 440s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_comments_with_blank_comment_lines PASSED [ 25%] 440s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_empty_commentlines PASSED [ 25%] 440s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgidcomments PASSED [ 25%] 440s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_with_msgidcomment PASSED [ 25%] 440s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_plurals PASSED [ 25%] 440s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_obsoleting_messages PASSED [ 25%] 440s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_not_obsoleting_empty_messages PASSED [ 25%] 440s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_new_before_obsolete PASSED [ 25%] 440s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_resurrect_obsolete_messages PASSED [ 25%] 440s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_resurrect_obsolete_messages_into_msgidcomment PASSED [ 25%] 440s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_header_initialisation PASSED [ 25%] 440s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_comments PASSED [ 25%] 440s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_typecomments PASSED [ 25%] 440s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgctxt PASSED [ 25%] 440s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgctxt_multiline PASSED [ 25%] 440s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgid_merge_on_location PASSED [ 25%] 440s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgid_merge_on_id PASSED [ 25%] 440s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_empty_msgid PASSED [ 25%] 440s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_migrate_msgidcomment_to_msgctxt PASSED [ 25%] 440s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_obsolete_msgctxt PASSED [ 25%] 440s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_small_strings PASSED [ 25%] 440s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_help PASSED [ 25%] 440s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_no_endlines_added PASSED [ 25%] 440s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_uncomment_contributors PASSED [ 25%] 440s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_multiline_comment_newlines PASSED [ 25%] 440s tests/translate/convert/test_prop2po.py::TestProp2PO::test_simpleentry PASSED [ 25%] 440s tests/translate/convert/test_prop2po.py::TestProp2PO::test_convertprop PASSED [ 25%] 440s tests/translate/convert/test_prop2po.py::TestProp2PO::test_no_value_entry PASSED [ 25%] 440s tests/translate/convert/test_prop2po.py::TestProp2PO::test_no_separator_entry PASSED [ 25%] 440s tests/translate/convert/test_prop2po.py::TestProp2PO::test_value_no_key_entry PASSED [ 25%] 440s tests/translate/convert/test_prop2po.py::TestProp2PO::test_tab_at_end_of_string PASSED [ 25%] 440s tests/translate/convert/test_prop2po.py::TestProp2PO::test_tab_at_start_of_value PASSED [ 25%] 440s tests/translate/convert/test_prop2po.py::TestProp2PO::test_unicode PASSED [ 25%] 440s tests/translate/convert/test_prop2po.py::TestProp2PO::test_multiline_escaping PASSED [ 25%] 440s tests/translate/convert/test_prop2po.py::TestProp2PO::test_comments PASSED [ 25%] 440s tests/translate/convert/test_prop2po.py::TestProp2PO::test_multiline_comments PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2PO::test_folding_accesskeys PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2PO::test_dont_translate PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2PO::test_duplicate_locations_mozilla PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2PO::test_emptyproperty PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2PO::test_emptyproperty_translated PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2PO::test_newlines_in_value PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2PO::test_header_comments PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2PO::test_unassociated_comment_order PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2PO::test_x_header PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2PO::test_gaia_plurals PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2PO::test_successive_gaia_plurals PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2PO::test_duplicate_keys PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2PO::test_gwt_plurals PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2PO::test_strings_bilingual_simple PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2PO::test_strings_bilingual_multiline PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_simpleentry PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_convertprop PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_no_value_entry PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_no_separator_entry PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_value_no_key_entry PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_tab_at_end_of_string PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_tab_at_start_of_value PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_unicode PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_multiline_escaping PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_comments PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_multiline_comments PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_folding_accesskeys PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_dont_translate PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_duplicate_locations_mozilla PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_emptyproperty PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_emptyproperty_translated PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_newlines_in_value PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_header_comments PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_unassociated_comment_order PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_x_header PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_gaia_plurals PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_successive_gaia_plurals PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_duplicate_keys PASSED [ 26%] 440s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_gwt_plurals PASSED [ 27%] 440s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_strings_bilingual_simple PASSED [ 27%] 440s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_strings_bilingual_multiline PASSED [ 27%] 440s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_help PASSED [ 27%] 440s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_help PASSED [ 27%] 440s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert PASSED [ 27%] 440s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf16 PASSED [ 27%] 440s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong PASSED [ 27%] 440s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf8 PASSED [ 27%] 440s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_menuex PASSED [ 27%] 440s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_simple PASSED [ 27%] 440s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_multiple_units PASSED [ 27%] 440s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_automaticcomments PASSED [ 27%] 440s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_translatorcomments PASSED [ 27%] 440s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_locations PASSED [ 27%] 440s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple PASSED [ 27%] 440s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_multiple_units PASSED [ 27%] 440s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_automaticcomments PASSED [ 27%] 440s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_translatorcomments PASSED [ 27%] 440s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_locations PASSED [ 27%] 440s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_help PASSED [ 27%] 440s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_pot PASSED [ 27%] 440s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_po PASSED [ 27%] 440s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_remove_duplicates PASSED [ 27%] 440s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_convert_empty PASSED [ 27%] 440s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_converttiki_defaults PASSED [ 27%] 440s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_converttiki_includeunused PASSED [ 27%] 440s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_convert_empty PASSED [ 27%] 440s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_converttiki_defaults PASSED [ 27%] 440s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_converttiki_includeunused PASSED [ 27%] 440s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_help PASSED [ 27%] 440s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_simple_convert PASSED [ 27%] 440s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_nested_convert PASSED [ 27%] 440s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_comment_extraction PASSED [ 27%] 440s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_merge_with_template PASSED [ 27%] 440s tests/translate/convert/test_ts2po.py::TestTS2PO::test_blank PASSED [ 27%] 440s tests/translate/convert/test_ts2po.py::TestTS2PO::test_basic PASSED [ 27%] 440s tests/translate/convert/test_ts2po.py::TestTS2PO::test_unfinished PASSED [ 27%] 440s tests/translate/convert/test_ts2po.py::TestTS2PO::test_multiline PASSED [ 27%] 440s tests/translate/convert/test_ts2po.py::TestTS2PO::test_obsolete PASSED [ 28%] 440s tests/translate/convert/test_ts2po.py::TestTS2PO::test_comment PASSED [ 28%] 440s tests/translate/convert/test_ts2po.py::TestTS2PO::test_extracomment PASSED [ 28%] 440s tests/translate/convert/test_ts2po.py::TestTS2PO::test_emptycontext PASSED [ 28%] 440s tests/translate/convert/test_ts2po.py::TestTS2PO::test_plural PASSED [ 28%] 440s tests/translate/convert/test_ts2po.py::TestTS2PO::test_plural_unfinished PASSED [ 28%] 440s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_blank PASSED [ 28%] 440s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_basic PASSED [ 28%] 440s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_unfinished PASSED [ 28%] 440s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_multiline PASSED [ 28%] 440s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_obsolete PASSED [ 28%] 440s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_comment PASSED [ 28%] 440s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_extracomment PASSED [ 28%] 440s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_emptycontext PASSED [ 28%] 440s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_plural PASSED [ 28%] 440s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_plural_unfinished PASSED [ 28%] 440s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_help PASSED [ 28%] 440s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_convert_empty PASSED [ 28%] 440s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_keep_duplicates PASSED [ 28%] 440s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_drop_duplicates PASSED [ 28%] 440s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_simple PASSED [ 28%] 440s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_multiple_units PASSED [ 28%] 440s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_carriage_return PASSED [ 28%] 440s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_merge PASSED [ 28%] 440s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_no_segmentation PASSED [ 28%] 440s tests/translate/convert/test_txt2po.py::TestDoku2po::test_convert_empty PASSED [ 28%] 440s tests/translate/convert/test_txt2po.py::TestDoku2po::test_keep_duplicates PASSED [ 28%] 440s tests/translate/convert/test_txt2po.py::TestDoku2po::test_drop_duplicates PASSED [ 28%] 440s tests/translate/convert/test_txt2po.py::TestDoku2po::test_basic PASSED [ 28%] 440s tests/translate/convert/test_txt2po.py::TestDoku2po::test_bullet_list PASSED [ 28%] 440s tests/translate/convert/test_txt2po.py::TestDoku2po::test_numbered_list PASSED [ 28%] 440s tests/translate/convert/test_txt2po.py::TestDoku2po::test_spacing PASSED [ 28%] 440s tests/translate/convert/test_txt2po.py::TestDoku2po::test_merge PASSED [ 28%] 440s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_convert_empty PASSED [ 28%] 440s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_keep_duplicates PASSED [ 28%] 440s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_drop_duplicates PASSED [ 28%] 440s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_simple PASSED [ 28%] 440s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_multiple_units PASSED [ 28%] 440s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_carriage_return PASSED [ 28%] 440s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_merge PASSED [ 29%] 440s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_no_segmentation PASSED [ 29%] 440s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_help PASSED [ 29%] 440s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_basic PASSED [ 29%] 440s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_unicode PASSED [ 29%] 440s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_markmin PASSED [ 29%] 440s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_help PASSED [ 29%] 440s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert PASSED [ 29%] 440s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_minimal PASSED [ 29%] 440s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_basic PASSED [ 29%] 440s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_translatorcomments PASSED [ 29%] 440s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_autocomment PASSED [ 29%] 440s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_locations PASSED [ 29%] 440s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_fuzzy PASSED [ 29%] 440s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_plurals PASSED [ 29%] 440s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_minimal PASSED [ 29%] 440s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_basic PASSED [ 29%] 440s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_translatorcomments PASSED [ 29%] 440s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_autocomment PASSED [ 29%] 440s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_locations PASSED [ 29%] 440s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_fuzzy PASSED [ 29%] 440s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_plurals PASSED [ 29%] 440s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_help PASSED [ 29%] 440s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_simple_convert PASSED [ 29%] 440s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_minimal PASSED [ 29%] 440s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_basic PASSED [ 29%] 440s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_translatorcomments PASSED [ 29%] 440s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_autocomment PASSED [ 29%] 440s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_locations PASSED [ 29%] 440s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_fuzzy PASSED [ 29%] 440s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_plurals PASSED [ 29%] 440s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_help PASSED [ 29%] 440s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_preserve_filename PASSED [ 29%] 440s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_pot PASSED [ 29%] 440s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_po PASSED [ 29%] 440s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_remove_duplicates PASSED [ 29%] 440s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_convert_empty_YAML PASSED [ 29%] 440s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_simple_output PASSED [ 29%] 440s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_simple PASSED [ 29%] 440s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_nested PASSED [ 30%] 440s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_no_duplicates XFAIL [ 30%] 440s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_convert_with_template PASSED [ 30%] 440s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_comment_extraction PASSED [ 30%] 440s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_comment_extraction_nested PASSED [ 30%] 440s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_convert_empty_YAML PASSED [ 30%] 440s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_simple_output PASSED [ 30%] 440s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_simple PASSED [ 30%] 440s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_nested PASSED [ 30%] 440s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_no_duplicates XFAIL [ 30%] 440s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_convert_with_template PASSED [ 30%] 440s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_comment_extraction PASSED [ 30%] 440s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_comment_extraction_nested PASSED [ 30%] 440s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_help PASSED [ 30%] 440s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_empty_target PASSED [ 30%] 440s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_ellipsis PASSED [ 30%] 440s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_spacestart_spaceend PASSED [ 30%] 440s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_start_capitals PASSED [ 30%] 440s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_end_punc PASSED [ 30%] 440s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_combinations PASSED [ 30%] 440s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_nothing_to_do PASSED [ 30%] 440s tests/translate/filters/test_checks.py::test_defaults PASSED [ 30%] 440s tests/translate/filters/test_checks.py::test_construct PASSED [ 30%] 440s tests/translate/filters/test_checks.py::test_accelerator_markers PASSED [ 30%] 440s tests/translate/filters/test_checks.py::test_messages PASSED [ 30%] 440s tests/translate/filters/test_checks.py::test_accelerators PASSED [ 30%] 440s tests/translate/filters/test_checks.py::test_acceleratedvariables XFAIL [ 30%] 440s tests/translate/filters/test_checks.py::test_acronyms PASSED [ 30%] 440s tests/translate/filters/test_checks.py::test_blank PASSED [ 30%] 440s tests/translate/filters/test_checks.py::test_brackets PASSED [ 30%] 440s tests/translate/filters/test_checks.py::test_compendiumconflicts PASSED [ 30%] 440s tests/translate/filters/test_checks.py::test_doublequoting PASSED [ 30%] 440s tests/translate/filters/test_checks.py::test_doublespacing PASSED [ 30%] 440s tests/translate/filters/test_checks.py::test_doublewords PASSED [ 30%] 440s tests/translate/filters/test_checks.py::test_endpunc PASSED [ 30%] 440s tests/translate/filters/test_checks.py::test_endwhitespace PASSED [ 30%] 440s tests/translate/filters/test_checks.py::test_escapes PASSED [ 30%] 440s tests/translate/filters/test_checks.py::test_newlines PASSED [ 30%] 440s tests/translate/filters/test_checks.py::test_tabs PASSED [ 30%] 440s tests/translate/filters/test_checks.py::test_filepaths PASSED [ 31%] 440s tests/translate/filters/test_checks.py::test_kdecomments PASSED [ 31%] 440s tests/translate/filters/test_checks.py::test_long PASSED [ 31%] 441s tests/translate/filters/test_checks.py::test_musttranslatewords XFAIL [ 31%] 441s tests/translate/filters/test_checks.py::test_notranslatewords PASSED [ 31%] 441s tests/translate/filters/test_checks.py::test_numbers PASSED [ 31%] 441s tests/translate/filters/test_checks.py::test_persian_numbers PASSED [ 31%] 441s tests/translate/filters/test_checks.py::test_bengali_numbers PASSED [ 31%] 441s tests/translate/filters/test_checks.py::test_arabic_numbers PASSED [ 31%] 441s tests/translate/filters/test_checks.py::test_assamese_numbers PASSED [ 31%] 441s tests/translate/filters/test_checks.py::test_options PASSED [ 31%] 441s tests/translate/filters/test_checks.py::test_printf PASSED [ 31%] 441s tests/translate/filters/test_checks.py::test_pythonbraceformat PASSED [ 31%] 441s tests/translate/filters/test_checks.py::test_puncspacing PASSED [ 31%] 441s tests/translate/filters/test_checks.py::test_purepunc PASSED [ 31%] 441s tests/translate/filters/test_checks.py::test_sentencecount PASSED [ 31%] 441s tests/translate/filters/test_checks.py::test_short PASSED [ 31%] 441s tests/translate/filters/test_checks.py::test_singlequoting PASSED [ 31%] 441s tests/translate/filters/test_checks.py::test_vietnamese_singlequoting PASSED [ 31%] 441s tests/translate/filters/test_checks.py::test_persian_single_and_double_quote_fail_at_the_same_time XFAIL [ 31%] 441s tests/translate/filters/test_checks.py::test_persian_quoting PASSED [ 31%] 441s tests/translate/filters/test_checks.py::test_simplecaps PASSED [ 31%] 441s tests/translate/filters/test_checks.py::test_spellcheck SKIPPED (Spe...) [ 31%] 441s tests/translate/filters/test_checks.py::test_startcaps PASSED [ 31%] 441s tests/translate/filters/test_checks.py::test_startpunc PASSED [ 31%] 441s tests/translate/filters/test_checks.py::test_startwhitespace PASSED [ 31%] 441s tests/translate/filters/test_checks.py::test_unchanged PASSED [ 31%] 441s tests/translate/filters/test_checks.py::test_untranslated PASSED [ 31%] 441s tests/translate/filters/test_checks.py::test_validchars PASSED [ 31%] 441s tests/translate/filters/test_checks.py::test_minimalchecker PASSED [ 31%] 441s tests/translate/filters/test_checks.py::test_reducedchecker PASSED [ 31%] 441s tests/translate/filters/test_checks.py::test_variables_kde PASSED [ 31%] 441s tests/translate/filters/test_checks.py::test_variables_gnome PASSED [ 31%] 441s tests/translate/filters/test_checks.py::test_variables_mozilla PASSED [ 31%] 441s tests/translate/filters/test_checks.py::test_variables_openoffice PASSED [ 31%] 441s tests/translate/filters/test_checks.py::test_variables_cclicense PASSED [ 31%] 441s tests/translate/filters/test_checks.py::test_variables_ios PASSED [ 31%] 441s tests/translate/filters/test_checks.py::test_xmltags PASSED [ 31%] 441s tests/translate/filters/test_checks.py::test_bengali_mozilla_inverted_xmltags XFAIL [ 31%] 441s tests/translate/filters/test_checks.py::test_ooxmltags PASSED [ 32%] 441s tests/translate/filters/test_checks.py::test_functions PASSED [ 32%] 441s tests/translate/filters/test_checks.py::test_emails PASSED [ 32%] 441s tests/translate/filters/test_checks.py::test_urls PASSED [ 32%] 441s tests/translate/filters/test_checks.py::test_simpleplurals PASSED [ 32%] 441s tests/translate/filters/test_checks.py::test_nplurals PASSED [ 32%] 441s tests/translate/filters/test_checks.py::test_credits PASSED [ 32%] 441s tests/translate/filters/test_checks.py::test_gconf PASSED [ 32%] 441s tests/translate/filters/test_checks.py::test_validxml PASSED [ 32%] 441s tests/translate/filters/test_checks.py::test_hassuggestion PASSED [ 32%] 441s tests/translate/filters/test_checks.py::test_dialogsizes PASSED [ 32%] 441s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers PASSED [ 32%] 441s tests/translate/filters/test_checks.py::test_mozilla_no_accelerators_for_indic PASSED [ 32%] 441s tests/translate/filters/test_checks.py::test_noaccelerators_only_in_mozilla_checker PASSED [ 32%] 441s tests/translate/filters/test_checks.py::test_ensure_accelerators_not_in_target_if_not_in_source PASSED [ 32%] 441s tests/translate/filters/test_checks.py::test_ensure_bengali_languages_script_is_correct PASSED [ 32%] 441s tests/translate/filters/test_checks.py::test_category PASSED [ 32%] 441s tests/translate/filters/test_decoration.py::test_spacestart PASSED [ 32%] 441s tests/translate/filters/test_decoration.py::test_isvalidaccelerator PASSED [ 32%] 441s tests/translate/filters/test_decoration.py::test_find_marked_variables PASSED [ 32%] 441s tests/translate/filters/test_decoration.py::test_getnumbers PASSED [ 32%] 441s tests/translate/filters/test_decoration.py::test_getfunctions PASSED [ 32%] 441s tests/translate/filters/test_pofilter.py::TestPOFilter::test_simplepass PASSED [ 32%] 441s tests/translate/filters/test_pofilter.py::TestPOFilter::test_simplefail PASSED [ 32%] 441s tests/translate/filters/test_pofilter.py::TestPOFilter::test_variables_across_lines PASSED [ 32%] 441s tests/translate/filters/test_pofilter.py::TestPOFilter::test_ignore_if_already_marked PASSED [ 32%] 441s tests/translate/filters/test_pofilter.py::TestPOFilter::test_non_existent_check PASSED [ 32%] 441s tests/translate/filters/test_pofilter.py::TestPOFilter::test_list_all_tests PASSED [ 32%] 441s tests/translate/filters/test_pofilter.py::TestPOFilter::test_test_against_fuzzy PASSED [ 32%] 441s tests/translate/filters/test_pofilter.py::TestPOFilter::test_test_against_review PASSED [ 32%] 441s tests/translate/filters/test_pofilter.py::TestPOFilter::test_isfuzzy PASSED [ 32%] 441s tests/translate/filters/test_pofilter.py::TestPOFilter::test_isreview PASSED [ 32%] 441s tests/translate/filters/test_pofilter.py::TestPOFilter::test_notes PASSED [ 32%] 441s tests/translate/filters/test_pofilter.py::TestPOFilter::test_unicode PASSED [ 32%] 441s tests/translate/filters/test_pofilter.py::TestPOFilter::test_preconditions PASSED [ 32%] 441s tests/translate/filters/test_pofilter.py::TestPOFilter::test_msgid_comments PASSED [ 32%] 441s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_simplepass PASSED [ 32%] 441s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_simplefail PASSED [ 32%] 441s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_variables_across_lines PASSED [ 32%] 441s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_ignore_if_already_marked PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_non_existent_check PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_list_all_tests PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_test_against_fuzzy PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_test_against_review PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_isfuzzy PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_isreview PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_notes PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_unicode PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_preconditions PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_simplepass PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_simplefail PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_variables_across_lines PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_ignore_if_already_marked PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_non_existent_check PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_list_all_tests PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_notes PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_unicode PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_preconditions PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_test_against_fuzzy PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_test_against_review PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_isfuzzy PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_isreview PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_simplepass PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_simplefail PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_variables_across_lines PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_ignore_if_already_marked PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_non_existent_check PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_list_all_tests PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_test_against_fuzzy PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_test_against_review PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_isfuzzy PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_isreview PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_notes PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_unicode PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_preconditions PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_msgid_comments PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_cedillas PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_niciun PASSED [ 33%] 441s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_nicio PASSED [ 34%] 441s tests/translate/filters/test_prefilters.py::test_removekdecomments PASSED [ 34%] 441s tests/translate/filters/test_prefilters.py::test_filterwordswithpunctuation PASSED [ 34%] 441s tests/translate/lang/test_af.py::test_sentences PASSED [ 34%] 441s tests/translate/lang/test_af.py::test_capsstart PASSED [ 34%] 441s tests/translate/lang/test_af.py::test_transliterate_cyrillic PASSED [ 34%] 441s tests/translate/lang/test_am.py::test_punctranslate PASSED [ 34%] 441s tests/translate/lang/test_am.py::test_sentences PASSED [ 34%] 441s tests/translate/lang/test_ar.py::test_punctranslate PASSED [ 34%] 441s tests/translate/lang/test_ar.py::test_sentences PASSED [ 34%] 441s tests/translate/lang/test_common.py::test_characters PASSED [ 34%] 441s tests/translate/lang/test_common.py::test_words PASSED [ 34%] 441s tests/translate/lang/test_common.py::test_word_khmer PASSED [ 34%] 441s tests/translate/lang/test_common.py::test_sentences PASSED [ 34%] 441s tests/translate/lang/test_common.py::test_capsstart PASSED [ 34%] 441s tests/translate/lang/test_common.py::test_numstart PASSED [ 34%] 441s tests/translate/lang/test_common.py::test_punctranslate PASSED [ 34%] 441s tests/translate/lang/test_common.py::test_length_difference PASSED [ 34%] 441s tests/translate/lang/test_common.py::test_alter_length PASSED [ 34%] 441s tests/translate/lang/test_data.py::test_normalise_code PASSED [ 34%] 441s tests/translate/lang/test_data.py::test_simplify_to_common PASSED [ 34%] 441s tests/translate/lang/test_data.py::test_is_rtl PASSED [ 34%] 441s tests/translate/lang/test_el.py::test_punctranslate PASSED [ 34%] 441s tests/translate/lang/test_el.py::test_sentences PASSED [ 34%] 441s tests/translate/lang/test_es.py::test_punctranslate PASSED [ 34%] 441s tests/translate/lang/test_es.py::test_sentences PASSED [ 34%] 441s tests/translate/lang/test_fa.py::test_punctranslate PASSED [ 34%] 441s tests/translate/lang/test_fa.py::test_sentences PASSED [ 34%] 441s tests/translate/lang/test_factory.py::test_getlanguage PASSED [ 34%] 441s tests/translate/lang/test_factory.py::test_get_all_languages PASSED [ 34%] 441s tests/translate/lang/test_fr.py::test_punctranslate PASSED [ 34%] 441s tests/translate/lang/test_fr.py::test_sentences PASSED [ 34%] 441s tests/translate/lang/test_hy.py::test_punctranslate PASSED [ 34%] 441s tests/translate/lang/test_hy.py::test_sentences PASSED [ 34%] 441s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_identify_lang PASSED [ 34%] 441s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_identify_store PASSED [ 34%] 441s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_bad_init_data PASSED [ 34%] 441s tests/translate/lang/test_ja.py::test_punctranslate PASSED [ 34%] 441s tests/translate/lang/test_ja.py::test_sentences PASSED [ 34%] 441s tests/translate/lang/test_km.py::test_punctranslate PASSED [ 35%] 441s tests/translate/lang/test_km.py::test_sentences PASSED [ 35%] 441s tests/translate/lang/test_ko.py::test_punctranslate PASSED [ 35%] 441s tests/translate/lang/test_ko.py::test_sentences PASSED [ 35%] 441s tests/translate/lang/test_ne.py::test_punctranslate PASSED [ 35%] 441s tests/translate/lang/test_ne.py::test_sentences PASSED [ 35%] 441s tests/translate/lang/test_nqo.py::test_punctranslate PASSED [ 35%] 441s tests/translate/lang/test_nqo.py::test_sentences PASSED [ 35%] 441s tests/translate/lang/test_or.py::test_punctranslate PASSED [ 35%] 441s tests/translate/lang/test_or.py::test_country_code PASSED [ 35%] 441s tests/translate/lang/test_or.py::test_sentences PASSED [ 35%] 441s tests/translate/lang/test_poedit.py::test_isocode PASSED [ 35%] 441s tests/translate/lang/test_ro.py::test_cedillas PASSED [ 35%] 441s tests/translate/lang/test_ro.py::test_niciun PASSED [ 35%] 441s tests/translate/lang/test_scn.py::test_italianisms PASSED [ 35%] 441s tests/translate/lang/test_scn.py::test_vocalism PASSED [ 35%] 441s tests/translate/lang/test_scn.py::test_suffixes PASSED [ 35%] 441s tests/translate/lang/test_team.py::test_simple PASSED [ 35%] 441s tests/translate/lang/test_th.py::test_punctranslate PASSED [ 35%] 441s tests/translate/lang/test_th.py::test_sentences PASSED [ 35%] 441s tests/translate/lang/test_tr.py::test_sentences PASSED [ 35%] 441s tests/translate/lang/test_uk.py::test_sentences PASSED [ 35%] 441s tests/translate/lang/test_vi.py::test_punctranslate PASSED [ 35%] 441s tests/translate/lang/test_vi.py::test_sentences PASSED [ 35%] 441s tests/translate/lang/test_zh.py::test_punctranslate PASSED [ 35%] 441s tests/translate/lang/test_zh.py::test_sentences PASSED [ 35%] 441s tests/translate/misc/test_deprecation.py::TestDeprecation::test_deprecated_decorator PASSED [ 35%] 441s tests/translate/misc/test_deprecation.py::TestDeprecation::test_no_deprecated_decorator PASSED [ 35%] 441s tests/translate/misc/test_dictutils.py::test_cidict_has_key PASSED [ 35%] 441s tests/translate/misc/test_dictutils.py::test_cidict_pop PASSED [ 35%] 441s tests/translate/misc/test_dictutils.py::test_cidict_getitem PASSED [ 35%] 441s tests/translate/misc/test_dictutils.py::test_cidict_setitem PASSED [ 35%] 441s tests/translate/misc/test_dictutils.py::test_cidict_delitem PASSED [ 35%] 441s tests/translate/misc/test_multistring.py::TestMultistring::test_constructor PASSED [ 35%] 441s tests/translate/misc/test_multistring.py::TestMultistring::test_constructor_validation PASSED [ 35%] 441s tests/translate/misc/test_multistring.py::TestMultistring::test_repr PASSED [ 35%] 441s tests/translate/misc/test_multistring.py::TestMultistring::test_replace PASSED [ 35%] 441s tests/translate/misc/test_multistring.py::TestMultistring::test_comparison PASSED [ 35%] 441s tests/translate/misc/test_multistring.py::TestMultistring::test_coercion PASSED [ 35%] 441s tests/translate/misc/test_multistring.py::TestMultistring::test_unicode_coercion PASSED [ 36%] 441s tests/translate/misc/test_multistring.py::TestMultistring::test_list_coercion PASSED [ 36%] 441s tests/translate/misc/test_multistring.py::TestMultistring::test_multistring_hash PASSED [ 36%] 441s tests/translate/misc/test_multistring.py::TestMultistring::test_bool PASSED [ 36%] 441s tests/translate/misc/test_optrecurse.py::TestRecursiveOptionParser::test_splitext PASSED [ 36%] 441s tests/translate/misc/test_optrecurse.py::TestRecursiveOptionParser::test_outputfile_receives_bytes PASSED [ 36%] 441s tests/translate/misc/test_progressbar.py::test_hashprogressbar PASSED [ 36%] 441s tests/translate/misc/test_quote.py::test_find_all PASSED [ 36%] 441s tests/translate/misc/test_quote.py::test_extract PASSED [ 36%] 441s tests/translate/misc/test_quote.py::test_extractwithoutquotes PASSED [ 36%] 441s tests/translate/misc/test_quote.py::test_extractwithoutquotes_passfunc PASSED [ 36%] 441s tests/translate/misc/test_quote.py::test_stripcomment PASSED [ 36%] 441s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode PASSED [ 36%] 441s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode_iso_8859_1 PASSED [ 36%] 441s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode_ascii PASSED [ 36%] 441s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode_unicode_range PASSED [ 36%] 441s tests/translate/misc/test_quote.py::TestEncoding::test_java_utf8_properties_encode PASSED [ 36%] 441s tests/translate/misc/test_quote.py::TestEncoding::test_escapespace PASSED [ 36%] 441s tests/translate/misc/test_quote.py::TestEncoding::test_mozillaescapemarginspaces PASSED [ 36%] 441s tests/translate/misc/test_quote.py::TestEncoding::test_mozilla_control_escapes PASSED [ 36%] 441s tests/translate/misc/test_quote.py::TestEncoding::test_propertiesdecode PASSED [ 36%] 441s tests/translate/misc/test_quote.py::TestEncoding::test_controlchars PASSED [ 36%] 441s tests/translate/misc/test_quote.py::TestEncoding::test_properties_decode_slashu PASSED [ 36%] 441s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding PASSED [ 36%] 441s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_existing_entities PASSED [ 36%] 441s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_passthrough PASSED [ 36%] 441s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_nonentities PASSED [ 36%] 441s tests/translate/misc/test_xml_helpers.py::TestReindent::test_indent_four_spaces PASSED [ 36%] 441s tests/translate/misc/test_xml_helpers.py::TestReindent::test_indent_tab PASSED [ 36%] 441s tests/translate/search/test_lshtein.py::TestLevenshtein::test_basic_distance PASSED [ 36%] 441s tests/translate/search/test_lshtein.py::TestLevenshtein::test_basic_similarity PASSED [ 36%] 441s tests/translate/search/test_lshtein.py::TestLevenshtein::test_long_similarity PASSED [ 36%] 441s tests/translate/search/test_match.py::TestMatch::test_matching PASSED [ 36%] 441s tests/translate/search/test_match.py::TestMatch::test_multiple_store PASSED [ 36%] 441s tests/translate/search/test_match.py::TestMatch::test_extendtm PASSED [ 36%] 441s tests/translate/search/test_match.py::TestMatch::test_terminology PASSED [ 36%] 441s tests/translate/search/test_match.py::TestMatch::test_brackets PASSED [ 36%] 441s tests/translate/search/test_match.py::TestMatch::test_past_tences PASSED [ 36%] 441s tests/translate/search/test_match.py::TestMatch::test_space_mismatch PASSED [ 36%] 441s tests/translate/search/test_match.py::TestMatch::test_hyphen_mismatch PASSED [ 37%] 441s tests/translate/search/test_terminology.py::TestTerminology::test_basic PASSED [ 37%] 441s tests/translate/services/test_tmserver.py::TestTMServer::test_import PASSED [ 37%] 441s tests/translate/services/test_tmserver.py::TestTMServer::test_server PASSED [ 37%] 441s tests/translate/storage/placeables/test_base.py::TestStringElem::test_parse PASSED [ 37%] 441s tests/translate/storage/placeables/test_base.py::TestStringElem::test_tree PASSED [ 37%] 441s tests/translate/storage/placeables/test_base.py::TestStringElem::test_add PASSED [ 37%] 441s tests/translate/storage/placeables/test_base.py::TestStringElem::test_contains PASSED [ 37%] 441s tests/translate/storage/placeables/test_base.py::TestStringElem::test_getitem PASSED [ 37%] 441s tests/translate/storage/placeables/test_base.py::TestStringElem::test_getslice PASSED [ 37%] 441s tests/translate/storage/placeables/test_base.py::TestStringElem::test_iter PASSED [ 37%] 441s tests/translate/storage/placeables/test_base.py::TestStringElem::test_len PASSED [ 37%] 441s tests/translate/storage/placeables/test_base.py::TestStringElem::test_mul PASSED [ 37%] 441s tests/translate/storage/placeables/test_base.py::TestStringElem::test_elem_offset PASSED [ 37%] 441s tests/translate/storage/placeables/test_base.py::TestStringElem::test_elem_at_offset PASSED [ 37%] 441s tests/translate/storage/placeables/test_base.py::TestStringElem::test_find PASSED [ 37%] 441s tests/translate/storage/placeables/test_base.py::TestStringElem::test_find_elems_with PASSED [ 37%] 441s tests/translate/storage/placeables/test_base.py::TestStringElem::test_flatten PASSED [ 37%] 441s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case1 PASSED [ 37%] 441s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case2 PASSED [ 37%] 441s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case3 PASSED [ 37%] 441s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case4 PASSED [ 37%] 441s tests/translate/storage/placeables/test_base.py::TestStringElem::test_insert PASSED [ 37%] 441s tests/translate/storage/placeables/test_base.py::TestStringElem::test_isleaf PASSED [ 37%] 441s tests/translate/storage/placeables/test_base.py::TestStringElem::test_prune PASSED [ 37%] 441s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_base_placeables PASSED [ 37%] 441s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_general_placeables XFAIL [ 37%] 441s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_xliff_placeables XFAIL [ 37%] 441s tests/translate/storage/placeables/test_general.py::test_placeable_numbers PASSED [ 37%] 441s tests/translate/storage/placeables/test_general.py::test_placeable_newline PASSED [ 37%] 441s tests/translate/storage/placeables/test_general.py::test_placeable_alt_attr PASSED [ 37%] 441s tests/translate/storage/placeables/test_general.py::test_placeable_qt_formatting PASSED [ 37%] 441s tests/translate/storage/placeables/test_general.py::test_placeable_camelcase PASSED [ 37%] 441s tests/translate/storage/placeables/test_general.py::test_placeable_space PASSED [ 37%] 441s tests/translate/storage/placeables/test_general.py::test_placeable_punctuation PASSED [ 37%] 441s tests/translate/storage/placeables/test_general.py::test_placeable_xml_entity PASSED [ 37%] 441s tests/translate/storage/placeables/test_general.py::test_placeable_xml_tag PASSED [ 37%] 441s tests/translate/storage/placeables/test_general.py::test_placeable_option PASSED [ 37%] 441s tests/translate/storage/placeables/test_general.py::test_placeable_file PASSED [ 37%] 441s tests/translate/storage/placeables/test_general.py::test_placeable_email PASSED [ 38%] 441s tests/translate/storage/placeables/test_general.py::test_placeable_caps PASSED [ 38%] 441s tests/translate/storage/placeables/test_general.py::test_placeable_formatting PASSED [ 38%] 441s tests/translate/storage/placeables/test_general.py::test_placeable_doubleat PASSED [ 38%] 441s tests/translate/storage/placeables/test_general.py::test_placeable_brace PASSED [ 38%] 441s tests/translate/storage/placeables/test_general.py::test_python_placeable PASSED [ 38%] 441s tests/translate/storage/placeables/test_lisa.py::test_xml_to_strelem PASSED [ 38%] 441s tests/translate/storage/placeables/test_lisa.py::test_xml_space PASSED [ 38%] 441s tests/translate/storage/placeables/test_lisa.py::test_chunk_list PASSED [ 38%] 441s tests/translate/storage/placeables/test_lisa.py::test_set_strelem_to_xml PASSED [ 38%] 441s tests/translate/storage/placeables/test_lisa.py::test_unknown_xml_placeable PASSED [ 38%] 441s tests/translate/storage/placeables/test_terminology.py::TestTerminologyPlaceable::test_simple_terminology PASSED [ 38%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_isfuzzy PASSED [ 38%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_create PASSED [ 38%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_eq PASSED [ 38%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escapes PASSED [ 38%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_difficult_escapes PASSED [ 38%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_note_sanity PASSED [ 38%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_line_number_default PASSED [ 38%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_target PASSED [ 38%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_rich_get PASSED [ 38%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_rich_set PASSED [ 38%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_message_with_newline PASSED [ 38%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quotes_with_newline PASSED [ 38%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_message_with_newline_in_xml PASSED [ 38%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_twitter PASSED [ 38%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quote PASSED [ 38%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_question PASSED [ 38%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_double_space PASSED [ 38%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_leading_space PASSED [ 38%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_tailing_space PASSED [ 38%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_xml_entities PASSED [ 38%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code PASSED [ 38%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code_quote PASSED [ 38%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code_quote_newline PASSED [ 38%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_arrows PASSED [ 38%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_link PASSED [ 38%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_link_and_text PASSED [ 38%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_blank_string PASSED [ 38%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_escape_message_with_newline PASSED [ 39%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_invalid_lang PASSED [ 39%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_quote PASSED [ 39%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_leading_space PASSED [ 39%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_trailing_space PASSED [ 39%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_with_ampersand PASSED [ 39%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_double_space PASSED [ 39%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_deep_double_space PASSED [ 39%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_complex_xml PASSED [ 39%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quoted_newlines PASSED [ 39%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_message_with_newline PASSED [ 39%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_message_with_newline_in_xml PASSED [ 39%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_twitter PASSED [ 39%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_question PASSED [ 39%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quote PASSED [ 39%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_double_space PASSED [ 39%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_space PASSED [ 39%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_newlines PASSED [ 39%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_xml_entities PASSED [ 39%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_code PASSED [ 39%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_arrows PASSED [ 39%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_link PASSED [ 39%] 441s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_link_and_text PASSED [ 39%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_blank_string PASSED [ 39%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_space PASSED [ 39%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_spaces PASSED [ 39%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_escaped_newline PASSED [ 39%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_escaped_newline PASSED [ 39%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_spaces PASSED [ 39%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_newline PASSED [ 39%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_many_quotes PASSED [ 39%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_blank_string_again PASSED [ 39%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_double_quotes_string PASSED [ 39%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_newline_in_string PASSED [ 39%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_not_translatable_string PASSED [ 39%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_parse_message_with_newline PASSED [ 39%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_parse_message_with_comments PASSED [ 39%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_quote PASSED [ 39%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_leading_space PASSED [ 39%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_leading_space_quoted PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_trailing_space PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_trailing_space_quoted PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_with_ampersand PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_double_space_quoted PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_deep_double_space_quoted PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_complex_xml PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_unicode PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_unescaped PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_escaped_alone PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_escaped_full PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_escaped_percent PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_percent PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_quote PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_unparied_quote PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escape_slash PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escape_ignored PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escaped_quote_end PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_xml PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_create_blank PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_add PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_remove PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_find PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_parse PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_files PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_save PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_extensions PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_mimetypes PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_translate PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_nonascii PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_default_handlings PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_filename PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_filename_default_language PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_invalid_filename PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_namespaces PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_serialize PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_add_formatting PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity PASSED [ 40%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_invalid_entity PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_indent PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_markup PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_parse_decimal_plurals PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_to_plurals PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity_add_edit PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity_add_noedit PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_remove PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_set PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_others PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_quotes_set PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_xliff_g PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_xliff_namespace PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_zh_hk PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_b_zh_hk PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_missing_plural PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_empty_missing_plural_tag PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_removeunit PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_cdata PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_cdata_text PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_prefix PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_rtl PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_tail PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_translatable_marking PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_escaping PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_isfuzzy PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_create PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_eq PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_escapes PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_difficult_escapes PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_note_sanity PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_line_number_default PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_target PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_rich_get PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_rich_set PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_escape_quote PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_create_blank PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_add PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_remove PASSED [ 41%] 442s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_find PASSED [ 42%] 442s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_parse PASSED [ 42%] 442s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_files PASSED [ 42%] 442s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_save PASSED [ 42%] 442s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_extensions PASSED [ 42%] 442s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_mimetypes PASSED [ 42%] 442s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_translate PASSED [ 42%] 442s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_markup PASSED [ 42%] 442s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_nonascii PASSED [ 42%] 442s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_plural PASSED [ 42%] 442s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_isfuzzy PASSED [ 42%] 442s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_create PASSED [ 42%] 442s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_eq PASSED [ 42%] 442s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_escapes PASSED [ 42%] 442s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_difficult_escapes PASSED [ 42%] 442s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_note_sanity PASSED [ 42%] 442s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_line_number_default PASSED [ 42%] 442s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_target PASSED [ 42%] 442s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_rich_get PASSED [ 42%] 442s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_rich_set PASSED [ 42%] 442s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_escape_quote PASSED [ 42%] 442s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_create_blank PASSED [ 42%] 442s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_add PASSED [ 42%] 442s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_remove PASSED [ 42%] 442s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_find PASSED [ 42%] 442s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_parse PASSED [ 42%] 442s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_files PASSED [ 42%] 442s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_save PASSED [ 42%] 442s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_extensions PASSED [ 42%] 442s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_mimetypes PASSED [ 42%] 442s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_translate PASSED [ 42%] 442s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_markup PASSED [ 42%] 442s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_nonascii PASSED [ 42%] 442s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_quote_escape PASSED [ 42%] 442s tests/translate/storage/test_base.py::TestTranslationUnit::test_isfuzzy PASSED [ 42%] 442s tests/translate/storage/test_base.py::TestTranslationUnit::test_create PASSED [ 42%] 442s tests/translate/storage/test_base.py::TestTranslationUnit::test_eq PASSED [ 42%] 442s tests/translate/storage/test_base.py::TestTranslationUnit::test_target PASSED [ 42%] 442s tests/translate/storage/test_base.py::TestTranslationUnit::test_escapes PASSED [ 42%] 442s tests/translate/storage/test_base.py::TestTranslationUnit::test_difficult_escapes PASSED [ 43%] 442s tests/translate/storage/test_base.py::TestTranslationUnit::test_note_sanity PASSED [ 43%] 442s tests/translate/storage/test_base.py::TestTranslationUnit::test_line_number_default PASSED [ 43%] 442s tests/translate/storage/test_base.py::TestTranslationUnit::test_rich_get PASSED [ 43%] 442s tests/translate/storage/test_base.py::TestTranslationUnit::test_rich_set PASSED [ 43%] 442s tests/translate/storage/test_base.py::TestTranslationStore::test_create_blank PASSED [ 43%] 442s tests/translate/storage/test_base.py::TestTranslationStore::test_add PASSED [ 43%] 442s tests/translate/storage/test_base.py::TestTranslationStore::test_remove PASSED [ 43%] 442s tests/translate/storage/test_base.py::TestTranslationStore::test_find PASSED [ 43%] 442s tests/translate/storage/test_base.py::TestTranslationStore::test_translate PASSED [ 43%] 442s tests/translate/storage/test_base.py::TestTranslationStore::test_parse PASSED [ 43%] 442s tests/translate/storage/test_base.py::TestTranslationStore::test_files PASSED [ 43%] 442s tests/translate/storage/test_base.py::TestTranslationStore::test_save PASSED [ 43%] 442s tests/translate/storage/test_base.py::TestTranslationStore::test_markup PASSED [ 43%] 442s tests/translate/storage/test_base.py::TestTranslationStore::test_nonascii PASSED [ 43%] 442s tests/translate/storage/test_base.py::TestTranslationStore::test_extensions PASSED [ 43%] 442s tests/translate/storage/test_base.py::TestTranslationStore::test_mimetypes PASSED [ 43%] 442s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_create_empty_bundle PASSED [ 43%] 442s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_create_bundle_from_nonexistent_file PASSED [ 43%] 442s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_save_bundle PASSED [ 43%] 442s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_cross_device_save PASSED [ 43%] 442s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_replace_project_zip PASSED [ 43%] 442s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle PASSED [ 43%] 442s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_update_file_in_bundle PASSED [ 43%] 442s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle PASSED [ 43%] 442s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_invalid_bundle_error PASSED [ 43%] 442s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_isfuzzy PASSED [ 43%] 442s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_create PASSED [ 43%] 442s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_eq PASSED [ 43%] 442s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_target PASSED [ 43%] 442s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_escapes PASSED [ 43%] 442s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_line_number_default PASSED [ 43%] 442s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_rich_get PASSED [ 43%] 442s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_rich_set PASSED [ 43%] 442s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_difficult_escapes PASSED [ 43%] 442s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_newlines PASSED [ 43%] 442s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_istranslated PASSED [ 43%] 442s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_note_sanity PASSED [ 43%] 442s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_create_blank PASSED [ 43%] 442s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_add PASSED [ 44%] 442s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_remove PASSED [ 44%] 442s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_find PASSED [ 44%] 442s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_translate PASSED [ 44%] 442s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_parse PASSED [ 44%] 442s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_files PASSED [ 44%] 442s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_save PASSED [ 44%] 442s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_markup PASSED [ 44%] 442s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_nonascii PASSED [ 44%] 442s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_extensions PASSED [ 44%] 442s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_mimetypes PASSED [ 44%] 442s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_checksum PASSED [ 44%] 442s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_isfuzzy PASSED [ 44%] 442s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_create PASSED [ 44%] 442s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_eq PASSED [ 44%] 442s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_target PASSED [ 44%] 442s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_escapes PASSED [ 44%] 442s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_difficult_escapes PASSED [ 44%] 442s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_note_sanity PASSED [ 44%] 442s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_line_number_default PASSED [ 44%] 442s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_rich_get PASSED [ 44%] 442s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_rich_set PASSED [ 44%] 442s tests/translate/storage/test_csvl10n.py::TestCSV::test_create_blank PASSED [ 44%] 442s tests/translate/storage/test_csvl10n.py::TestCSV::test_add PASSED [ 44%] 442s tests/translate/storage/test_csvl10n.py::TestCSV::test_remove PASSED [ 44%] 442s tests/translate/storage/test_csvl10n.py::TestCSV::test_find PASSED [ 44%] 442s tests/translate/storage/test_csvl10n.py::TestCSV::test_translate PASSED [ 44%] 442s tests/translate/storage/test_csvl10n.py::TestCSV::test_parse PASSED [ 44%] 442s tests/translate/storage/test_csvl10n.py::TestCSV::test_files PASSED [ 44%] 442s tests/translate/storage/test_csvl10n.py::TestCSV::test_save PASSED [ 44%] 442s tests/translate/storage/test_csvl10n.py::TestCSV::test_markup PASSED [ 44%] 442s tests/translate/storage/test_csvl10n.py::TestCSV::test_nonascii PASSED [ 44%] 442s tests/translate/storage/test_csvl10n.py::TestCSV::test_extensions PASSED [ 44%] 442s tests/translate/storage/test_csvl10n.py::TestCSV::test_mimetypes PASSED [ 44%] 442s tests/translate/storage/test_csvl10n.py::TestCSV::test_singlequoting PASSED [ 44%] 442s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8 PASSED [ 44%] 442s tests/translate/storage/test_csvl10n.py::TestCSV::test_dialect PASSED [ 44%] 442s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8_sig PASSED [ 44%] 442s tests/translate/storage/test_csvl10n.py::TestCSV::test_default PASSED [ 44%] 442s tests/translate/storage/test_csvl10n.py::TestCSV::test_location_is_parsed PASSED [ 45%] 442s tests/translate/storage/test_csvl10n.py::TestCSV::test_context_is_parsed PASSED [ 45%] 442s tests/translate/storage/test_csvl10n.py::TestCSV::test_newline PASSED [ 45%] 442s tests/translate/storage/test_csvl10n.py::TestCSV::test_parse_sample PASSED [ 45%] 442s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8_detection PASSED [ 45%] 442s tests/translate/storage/test_csvl10n.py::TestCSV::test_encoding PASSED [ 45%] 442s tests/translate/storage/test_csvl10n.py::TestCSV::test_corrupt PASSED [ 45%] 442s tests/translate/storage/test_csvl10n.py::TestCSV::test_encoding_save PASSED [ 45%] 442s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_id_target PASSED [ 45%] 442s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_context_target PASSED [ 45%] 442s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_key_translation PASSED [ 45%] 442s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_roundtrip PASSED [ 45%] 442s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_context_roundtrip PASSED [ 45%] 442s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_id_context_roundtrip PASSED [ 45%] 442s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_target_only_roundtrip PASSED [ 45%] 442s tests/translate/storage/test_csvl10n.py::TestCSV::test_quote_nonnumeric_handling PASSED [ 45%] 442s tests/translate/storage/test_csvl10n.py::TestCSV::test_quote_nonnumeric_with_single_quotes PASSED [ 45%] 442s tests/translate/storage/test_csvl10n.py::TestCSV::test_line_number PASSED [ 45%] 442s tests/translate/storage/test_dtd.py::test_roundtrip_quoting PASSED [ 45%] 442s tests/translate/storage/test_dtd.py::test_quotefordtd_unimplemented_cases XFAIL [ 45%] 442s tests/translate/storage/test_dtd.py::test_quotefordtd PASSED [ 45%] 442s tests/translate/storage/test_dtd.py::test_unquotefromdtd_unimplemented_cases XFAIL [ 45%] 442s tests/translate/storage/test_dtd.py::test_unquotefromdtd PASSED [ 45%] 442s tests/translate/storage/test_dtd.py::test_android_roundtrip_quoting PASSED [ 45%] 442s tests/translate/storage/test_dtd.py::test_quoteforandroid PASSED [ 45%] 442s tests/translate/storage/test_dtd.py::test_unquotefromandroid PASSED [ 45%] 442s tests/translate/storage/test_dtd.py::test_removeinvalidamp PASSED [ 45%] 442s tests/translate/storage/test_dtd.py::TestDTDUnit::test_isfuzzy PASSED [ 45%] 442s tests/translate/storage/test_dtd.py::TestDTDUnit::test_create PASSED [ 45%] 442s tests/translate/storage/test_dtd.py::TestDTDUnit::test_eq PASSED [ 45%] 442s tests/translate/storage/test_dtd.py::TestDTDUnit::test_escapes PASSED [ 45%] 442s tests/translate/storage/test_dtd.py::TestDTDUnit::test_difficult_escapes PASSED [ 45%] 442s tests/translate/storage/test_dtd.py::TestDTDUnit::test_note_sanity PASSED [ 45%] 442s tests/translate/storage/test_dtd.py::TestDTDUnit::test_line_number_default PASSED [ 45%] 442s tests/translate/storage/test_dtd.py::TestDTDUnit::test_target PASSED [ 45%] 442s tests/translate/storage/test_dtd.py::TestDTDUnit::test_rich_get PASSED [ 45%] 442s tests/translate/storage/test_dtd.py::TestDTDUnit::test_rich_set PASSED [ 45%] 442s tests/translate/storage/test_dtd.py::TestDTD::test_create_blank PASSED [ 45%] 442s tests/translate/storage/test_dtd.py::TestDTD::test_add PASSED [ 45%] 442s tests/translate/storage/test_dtd.py::TestDTD::test_remove PASSED [ 46%] 442s tests/translate/storage/test_dtd.py::TestDTD::test_find PASSED [ 46%] 442s tests/translate/storage/test_dtd.py::TestDTD::test_parse PASSED [ 46%] 442s tests/translate/storage/test_dtd.py::TestDTD::test_files PASSED [ 46%] 442s tests/translate/storage/test_dtd.py::TestDTD::test_save PASSED [ 46%] 442s tests/translate/storage/test_dtd.py::TestDTD::test_extensions PASSED [ 46%] 442s tests/translate/storage/test_dtd.py::TestDTD::test_mimetypes PASSED [ 46%] 442s tests/translate/storage/test_dtd.py::TestDTD::test_translate PASSED [ 46%] 442s tests/translate/storage/test_dtd.py::TestDTD::test_markup PASSED [ 46%] 442s tests/translate/storage/test_dtd.py::TestDTD::test_nonascii PASSED [ 46%] 442s tests/translate/storage/test_dtd.py::TestDTD::test_simpleentity PASSED [ 46%] 442s tests/translate/storage/test_dtd.py::TestDTD::test_blanklines PASSED [ 46%] 442s tests/translate/storage/test_dtd.py::TestDTD::test_simpleentity_source PASSED [ 46%] 442s tests/translate/storage/test_dtd.py::TestDTD::test_hashcomment_source PASSED [ 46%] 442s tests/translate/storage/test_dtd.py::TestDTD::test_commentclosing PASSED [ 46%] 442s tests/translate/storage/test_dtd.py::TestDTD::test_commententity PASSED [ 46%] 442s tests/translate/storage/test_dtd.py::TestDTD::test_newlines_in_entity PASSED [ 46%] 442s tests/translate/storage/test_dtd.py::TestDTD::test_conflate_comments PASSED [ 46%] 442s tests/translate/storage/test_dtd.py::TestDTD::test_localisation_notes PASSED [ 46%] 442s tests/translate/storage/test_dtd.py::TestDTD::test_entitityreference_in_source PASSED [ 46%] 442s tests/translate/storage/test_dtd.py::TestDTD::test_entitityreference_order_in_source PASSED [ 46%] 442s tests/translate/storage/test_dtd.py::TestDTD::test_comment_following XFAIL [ 46%] 442s tests/translate/storage/test_dtd.py::TestDTD::test_comment_newline_space_closing PASSED [ 46%] 442s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting XFAIL [ 46%] 442s tests/translate/storage/test_dtd.py::TestDTD::test_missing_quotes PASSED [ 46%] 442s tests/translate/storage/test_dtd.py::TestDTD::test_entity_escaping PASSED [ 46%] 442s tests/translate/storage/test_dtd.py::TestDTD::test_entity_escaping_roundtrip PASSED [ 46%] 442s tests/translate/storage/test_dtd.py::TestDTD::test_multiple_blank_lines PASSED [ 46%] 442s tests/translate/storage/test_dtd.py::TestDTD::test_entity_with_extra_spaces PASSED [ 46%] 442s tests/translate/storage/test_dtd.py::TestDTD::test_mixed_content_preservation PASSED [ 46%] 442s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_create_blank PASSED [ 46%] 442s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_add PASSED [ 46%] 442s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_remove PASSED [ 46%] 442s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_find PASSED [ 46%] 442s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_parse PASSED [ 46%] 442s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_files PASSED [ 46%] 442s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_save PASSED [ 46%] 442s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_extensions PASSED [ 46%] 442s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_mimetypes PASSED [ 46%] 442s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_translate PASSED [ 47%] 442s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_markup PASSED [ 47%] 442s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_nonascii PASSED [ 47%] 442s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_single_quote_escape PASSED [ 47%] 442s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_single_quote_escape_parse_and_convert_back PASSED [ 47%] 442s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_double_quote_escape PASSED [ 47%] 442s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_double_quote_escape_parse_and_convert_back PASSED [ 47%] 442s tests/translate/storage/test_factory.py::TestPOFactory::test_getclass PASSED [ 47%] 442s tests/translate/storage/test_factory.py::TestPOFactory::test_getobject_store PASSED [ 47%] 442s tests/translate/storage/test_factory.py::TestPOFactory::test_getobject PASSED [ 47%] 442s tests/translate/storage/test_factory.py::TestPOFactory::test_get_noname_object PASSED [ 47%] 442s tests/translate/storage/test_factory.py::TestPOFactory::test_gzfile PASSED [ 47%] 442s tests/translate/storage/test_factory.py::TestPOFactory::test_bz2file PASSED [ 47%] 442s tests/translate/storage/test_factory.py::TestPOFactory::test_directory PASSED [ 47%] 442s tests/translate/storage/test_factory.py::TestXliffFactory::test_getclass PASSED [ 47%] 442s tests/translate/storage/test_factory.py::TestXliffFactory::test_getobject_store PASSED [ 47%] 442s tests/translate/storage/test_factory.py::TestXliffFactory::test_getobject PASSED [ 47%] 442s tests/translate/storage/test_factory.py::TestXliffFactory::test_get_noname_object PASSED [ 47%] 442s tests/translate/storage/test_factory.py::TestXliffFactory::test_gzfile PASSED [ 47%] 442s tests/translate/storage/test_factory.py::TestXliffFactory::test_bz2file PASSED [ 47%] 442s tests/translate/storage/test_factory.py::TestXliffFactory::test_directory PASSED [ 47%] 442s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getclass PASSED [ 47%] 442s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getobject_store PASSED [ 47%] 442s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getobject PASSED [ 47%] 442s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_get_noname_object PASSED [ 47%] 442s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_gzfile PASSED [ 47%] 442s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_bz2file PASSED [ 47%] 442s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_directory PASSED [ 47%] 442s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getclass PASSED [ 47%] 442s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getobject_store PASSED [ 47%] 442s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getobject PASSED [ 47%] 442s tests/translate/storage/test_factory.py::TestWordfastFactory::test_get_noname_object PASSED [ 47%] 442s tests/translate/storage/test_factory.py::TestWordfastFactory::test_gzfile PASSED [ 47%] 442s tests/translate/storage/test_factory.py::TestWordfastFactory::test_bz2file PASSED [ 47%] 442s tests/translate/storage/test_factory.py::TestWordfastFactory::test_directory PASSED [ 47%] 442s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_isfuzzy PASSED [ 47%] 442s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_create PASSED [ 47%] 442s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_eq PASSED [ 47%] 442s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_escapes PASSED [ 47%] 442s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_difficult_escapes PASSED [ 48%] 442s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_note_sanity PASSED [ 48%] 442s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_line_number_default PASSED [ 48%] 442s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_target PASSED [ 48%] 442s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_rich_get PASSED [ 48%] 442s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_rich_set PASSED [ 48%] 442s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_create_blank PASSED [ 48%] 442s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_add PASSED [ 48%] 442s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_remove PASSED [ 48%] 442s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_find PASSED [ 48%] 442s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_parse PASSED [ 48%] 442s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_files PASSED [ 48%] 442s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_save PASSED [ 48%] 442s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_extensions PASSED [ 48%] 442s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_mimetypes PASSED [ 48%] 442s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_translate PASSED [ 48%] 442s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_markup PASSED [ 48%] 442s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_nonascii PASSED [ 48%] 442s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_root_config_detect PASSED [ 48%] 442s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_value_config_detect PASSED [ 48%] 442s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_key_config_detect PASSED [ 48%] 442s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_value_config_mixed_ok PASSED [ 48%] 442s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_namespace_config_detect PASSED [ 48%] 442s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_four_spaces PASSED [ 48%] 442s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_tab PASSED [ 48%] 442s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_none_linearizes PASSED [ 48%] 442s tests/translate/storage/test_html.py::test_guess_encoding PASSED [ 48%] 442s tests/translate/storage/test_html.py::TestHTMLParsing::test_mismatched_tags PASSED [ 48%] 442s tests/translate/storage/test_html.py::TestHTMLParsing::test_self_closing_tags PASSED [ 48%] 442s tests/translate/storage/test_html.py::TestHTMLParsing::test_escaping_script_and_pre PASSED [ 48%] 442s tests/translate/storage/test_html.py::TestHTMLExtraction::test_strip_html PASSED [ 48%] 442s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_tag_figcaption PASSED [ 48%] 442s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_tag_caption_td_th PASSED [ 48%] 442s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_attr_alt PASSED [ 48%] 442s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_attr_title PASSED [ 48%] 442s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_pre PASSED [ 48%] 442s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_pre_code PASSED [ 48%] 442s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_button PASSED [ 48%] 442s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_lang_attribute PASSED [ 48%] 442s tests/translate/storage/test_html.py::TestHTMLExtraction::test_dir_attribute_not_extracted PASSED [ 49%] 442s tests/translate/storage/test_html.py::TestHTMLExtraction::test_data_translate_ignore_attribute PASSED [ 49%] 442s tests/translate/storage/test_html.py::TestHTMLExtraction::test_translate_comment_directives PASSED [ 49%] 442s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_meta_social_media_tags PASSED [ 49%] 442s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_meta_non_translatable_tags PASSED [ 49%] 442s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_meta_mixed_translatable_and_non_translatable PASSED [ 49%] 442s tests/translate/storage/test_html.py::TestHTMLExtraction::test_data_translate_comment_attribute PASSED [ 49%] 442s tests/translate/storage/test_html_context.py::test_html_context_basic PASSED [ 49%] 442s tests/translate/storage/test_html_context.py::test_html_context_attribute PASSED [ 49%] 442s tests/translate/storage/test_html_context.py::test_html_context_attribute_with_id PASSED [ 49%] 442s tests/translate/storage/test_html_context.py::test_html_context_same_source_different_contexts PASSED [ 49%] 442s tests/translate/storage/test_html_context.py::test_html_context_nested_outer_wins PASSED [ 49%] 442s tests/translate/storage/test_html_context.py::test_html_context_absent PASSED [ 49%] 442s tests/translate/storage/test_html_context.py::test_html_context_id_overridden_by_explicit PASSED [ 49%] 442s tests/translate/storage/test_html_context.py::test_html_context_id_not_used_when_no_duplicates PASSED [ 49%] 442s tests/translate/storage/test_html_context.py::test_html_context_id_not_used_when_data_translate_context_identical PASSED [ 49%] 442s tests/translate/storage/test_html_context.py::test_html_context_disambiguates_duplicates_with_id PASSED [ 49%] 442s tests/translate/storage/test_html_context.py::test_html_context_disambiguates_duplicates_with_ancestor_id PASSED [ 49%] 442s tests/translate/storage/test_ini.py::TestINIUnit::test_isfuzzy PASSED [ 49%] 442s tests/translate/storage/test_ini.py::TestINIUnit::test_create PASSED [ 49%] 442s tests/translate/storage/test_ini.py::TestINIUnit::test_eq PASSED [ 49%] 442s tests/translate/storage/test_ini.py::TestINIUnit::test_escapes PASSED [ 49%] 442s tests/translate/storage/test_ini.py::TestINIUnit::test_difficult_escapes PASSED [ 49%] 442s tests/translate/storage/test_ini.py::TestINIUnit::test_note_sanity PASSED [ 49%] 442s tests/translate/storage/test_ini.py::TestINIUnit::test_line_number_default PASSED [ 49%] 442s tests/translate/storage/test_ini.py::TestINIUnit::test_target PASSED [ 49%] 442s tests/translate/storage/test_ini.py::TestINIUnit::test_rich_get PASSED [ 49%] 442s tests/translate/storage/test_ini.py::TestINIUnit::test_rich_set PASSED [ 49%] 442s tests/translate/storage/test_ini.py::TestINIStore::test_create_blank PASSED [ 49%] 442s tests/translate/storage/test_ini.py::TestINIStore::test_add PASSED [ 49%] 442s tests/translate/storage/test_ini.py::TestINIStore::test_remove PASSED [ 49%] 442s tests/translate/storage/test_ini.py::TestINIStore::test_find PASSED [ 49%] 442s tests/translate/storage/test_ini.py::TestINIStore::test_parse PASSED [ 49%] 442s tests/translate/storage/test_ini.py::TestINIStore::test_files PASSED [ 49%] 442s tests/translate/storage/test_ini.py::TestINIStore::test_save PASSED [ 49%] 442s tests/translate/storage/test_ini.py::TestINIStore::test_extensions PASSED [ 49%] 442s tests/translate/storage/test_ini.py::TestINIStore::test_mimetypes PASSED [ 49%] 442s tests/translate/storage/test_ini.py::TestINIStore::test_translate PASSED [ 49%] 442s tests/translate/storage/test_ini.py::TestINIStore::test_markup PASSED [ 49%] 442s tests/translate/storage/test_ini.py::TestINIStore::test_nonascii PASSED [ 50%] 442s tests/translate/storage/test_ini.py::TestINIStore::test_serialize PASSED [ 50%] 442s tests/translate/storage/test_ini.py::TestINIStore::test_rem PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_isfuzzy PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_create PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_eq PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_escapes PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_difficult_escapes PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_note_sanity PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_line_number_default PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_target PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_rich_get PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_rich_set PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_create_blank PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_remove PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_find PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_parse PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_files PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_save PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_extensions PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_mimetypes PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_translate PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_markup PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_nonascii PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_serialize PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_can_not_detect PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_error PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_filter PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_ordering PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_args PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_bom PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_complex PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_complex_array PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add_list_like PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add_blank PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_types PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_null PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_isfuzzy PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_create PASSED [ 50%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_eq PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_escapes PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_difficult_escapes PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_note_sanity PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_line_number_default PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_target PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_rich_get PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_rich_set PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_serialize PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_ordering PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_array PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_index PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_index_nested PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_nested_list_mixed PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_list_to_dict PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_complex_keys PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_other PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[0]-expected0] PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[test[0]-expected1] PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[test[0][1][2][3]-expected2] PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[test]selection-expected3] PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[test][0]selection-expected4] PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[0][test]selection-expected5] PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[-expected6] PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_dot_keys PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_isfuzzy PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_create PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_eq PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_escapes PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_difficult_escapes PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_note_sanity PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_line_number_default PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_target PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_rich_get PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_rich_set PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_create_blank PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_add PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_remove PASSED [ 51%] 442s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_find PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_parse PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_files PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_save PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_extensions PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_mimetypes PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_translate PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_markup PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_nonascii PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_serialize PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_dot_keys PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_leading_dot_keys PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_serialize_no_description PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_set_target PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_placeholders PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_comments PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_create_blank PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_add PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_remove PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_find PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_parse PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_files PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_save PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_extensions PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_mimetypes PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_translate PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_markup PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_nonascii PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_serialize PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_units PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_plurals PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_nested_array PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_new_plural PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_new_plural_id PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_create_blank PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_add PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_remove PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_find PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_parse PASSED [ 52%] 442s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_files PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_save PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_extensions PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_mimetypes PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_translate PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_markup PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_nonascii PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_plurals PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_plurals_missing PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_case_no_msg PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_complex_id PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_create_blank PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_add PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_remove PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_find PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_parse PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_files PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_save PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_extensions PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_mimetypes PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_translate PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_markup PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_nonascii PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_serialize PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_units PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_plurals PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_nested_array PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_new_plural PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_ru PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_create_blank PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_add PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_remove PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_find PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_parse PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_files PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_save PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_extensions PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_mimetypes PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_translate PASSED [ 53%] 442s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_markup PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_nonascii PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_serialize PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_units PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_plurals PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_nested_array PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_new_plural PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_ru PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_create_blank PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_add PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_remove PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_find PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_parse PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_files PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_save PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_extensions PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_mimetypes PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_translate PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_markup PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_nonascii PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_plurals PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_plurals_missing PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_invalid PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_dot_keys PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_create_blank PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_add PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_remove PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_find PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_parse PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_files PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_save PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_extensions PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_mimetypes PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_translate PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_markup PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_nonascii PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_1 PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_2 PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_blank PASSED [ 54%] 442s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_missing PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_simplification PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_invalid PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_dot_keys PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_create_blank PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_add PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_remove PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_find PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_parse PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_files PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_save PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_extensions PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_mimetypes PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_translate PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_markup PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_nonascii PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_roundtrip PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_leading_dot_keys PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_invalid_nesting PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_empty_metadata_not_stored PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_create_blank PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_add PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_remove PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_find PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_parse PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_files PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_save PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_extensions PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_mimetypes PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_translate PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_markup PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_nonascii PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_roundtrip PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_leading_dot_keys PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_invalid PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_isfuzzy PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_create PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_eq PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_escapes PASSED [ 55%] 442s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_difficult_escapes PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_note_sanity PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_line_number_default PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_target PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_rich_get PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_rich_set PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_source_property_maps_to_id PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_source_roundtrip PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_create_blank PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_add PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_remove PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_find PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_parse PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_files PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_save PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_extensions PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_mimetypes PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_translate PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_markup PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_nonascii PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_parse_simple PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_serialize_simple PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_parse_with_plurals PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_preserve_plural_form PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_roundtrip_with_plurals PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_ignore_non_translations_keys PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_preserve_other_metadata PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_add_unit PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_add_plural_unit PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_empty_translations PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_create_blank PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_add PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_remove PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_find PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_parse PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_files PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_save PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_extensions PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_mimetypes PASSED [ 56%] 442s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_translate PASSED [ 57%] 442s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_markup PASSED [ 57%] 442s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_nonascii PASSED [ 57%] 442s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_roundtrip PASSED [ 57%] 442s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_basic_parsing PASSED [ 57%] 442s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_multiple_metadata PASSED [ 57%] 442s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_no_metadata PASSED [ 57%] 442s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_edit_target PASSED [ 57%] 442s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_edit_notes PASSED [ 57%] 442s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_keys_with_dots PASSED [ 57%] 442s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_leading_dot_keys PASSED [ 57%] 442s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_invalid_nesting PASSED [ 57%] 442s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_source_property_get_set PASSED [ 57%] 442s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_source_property_persists PASSED [ 57%] 442s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_getcontext_returns_id PASSED [ 57%] 442s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_parsing_preserves_order PASSED [ 57%] 442s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_metadata_without_translation PASSED [ 57%] 442s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_complex_keys_with_multiple_dots PASSED [ 57%] 442s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_source_empty_string PASSED [ 57%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_atx_heading PASSED [ 57%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_autolink PASSED [ 57%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_block_quote PASSED [ 57%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_code_block PASSED [ 57%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_code_span PASSED [ 57%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_atx_heading PASSED [ 57%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_document PASSED [ 57%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_list_item PASSED [ 57%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_escaped_character PASSED [ 57%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_hard_line_break PASSED [ 57%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_block PASSED [ 57%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_character_entities PASSED [ 57%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_span PASSED [ 57%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_image_embedded_in_link PASSED [ 57%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_collapsed_reference_link PASSED [ 57%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_full_reference_link PASSED [ 57%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_shortcut_reference_link PASSED [ 57%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_merging_of_adjacent_placeholders PASSED [ 57%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_nested_block_tokens PASSED [ 57%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_nested_list PASSED [ 57%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_paragraph_with_basic_markup PASSED [ 58%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_paragraph_with_only_whitespace_and_placeholders PASSED [ 58%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_placeholder_trimming PASSED [ 58%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_image PASSED [ 58%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_image_no_title PASSED [ 58%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_link PASSED [ 58%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_text_paragraph PASSED [ 58%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_remove_placeholders_from_both_ends_of_translation_units PASSED [ 58%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_setext_heading PASSED [ 58%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_table_with_header PASSED [ 58%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_thematic_break PASSED [ 58%] 442s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_hard_line_break_in_translation_unit PASSED [ 58%] 442s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_missing_placeholder PASSED [ 58%] 442s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_duplicate_placeholder PASSED [ 58%] 442s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_extraneous_placeholder PASSED [ 58%] 442s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_reordered_placeholders PASSED [ 58%] 442s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_invalid_markdown_in_translation PASSED [ 58%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_section_basic PASSED [ 58%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_section_with_markup PASSED [ 58%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_section_with_code_block PASSED [ 58%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_multiple_ignore_sections PASSED [ 58%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_at_start PASSED [ 58%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_at_end PASSED [ 58%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_nested_structures_in_ignore PASSED [ 58%] 442s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_link_references_in_ignore PASSED [ 58%] 442s tests/translate/storage/test_mo.py::TestMOUnit::test_isfuzzy PASSED [ 58%] 442s tests/translate/storage/test_mo.py::TestMOUnit::test_create PASSED [ 58%] 442s tests/translate/storage/test_mo.py::TestMOUnit::test_eq PASSED [ 58%] 442s tests/translate/storage/test_mo.py::TestMOUnit::test_target PASSED [ 58%] 442s tests/translate/storage/test_mo.py::TestMOUnit::test_escapes PASSED [ 58%] 442s tests/translate/storage/test_mo.py::TestMOUnit::test_difficult_escapes PASSED [ 58%] 442s tests/translate/storage/test_mo.py::TestMOUnit::test_note_sanity PASSED [ 58%] 442s tests/translate/storage/test_mo.py::TestMOUnit::test_line_number_default PASSED [ 58%] 442s tests/translate/storage/test_mo.py::TestMOUnit::test_rich_get PASSED [ 58%] 442s tests/translate/storage/test_mo.py::TestMOUnit::test_rich_set PASSED [ 58%] 442s tests/translate/storage/test_mo.py::TestMOUnit::test_context PASSED [ 58%] 442s tests/translate/storage/test_mo.py::TestMOFile::test_create_blank PASSED [ 58%] 442s tests/translate/storage/test_mo.py::TestMOFile::test_add PASSED [ 58%] 442s tests/translate/storage/test_mo.py::TestMOFile::test_remove PASSED [ 58%] 442s tests/translate/storage/test_mo.py::TestMOFile::test_find PASSED [ 59%] 442s tests/translate/storage/test_mo.py::TestMOFile::test_translate PASSED [ 59%] 442s tests/translate/storage/test_mo.py::TestMOFile::test_parse PASSED [ 59%] 442s tests/translate/storage/test_mo.py::TestMOFile::test_files PASSED [ 59%] 442s tests/translate/storage/test_mo.py::TestMOFile::test_save PASSED [ 59%] 442s tests/translate/storage/test_mo.py::TestMOFile::test_markup PASSED [ 59%] 442s tests/translate/storage/test_mo.py::TestMOFile::test_nonascii PASSED [ 59%] 442s tests/translate/storage/test_mo.py::TestMOFile::test_extensions PASSED [ 59%] 442s tests/translate/storage/test_mo.py::TestMOFile::test_mimetypes PASSED [ 59%] 442s tests/translate/storage/test_mo.py::TestMOFile::test_language PASSED [ 59%] 442s tests/translate/storage/test_mo.py::TestMOFile::test_context PASSED [ 59%] 442s tests/translate/storage/test_mo.py::TestMOFile::test_output PASSED [ 59%] 442s tests/translate/storage/test_mo.py::TestMOFile::test_endian_version_parsing PASSED [ 59%] 442s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_isfuzzy PASSED [ 59%] 442s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_create PASSED [ 59%] 442s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_eq PASSED [ 59%] 442s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_escapes PASSED [ 59%] 442s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_difficult_escapes PASSED [ 59%] 442s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_note_sanity PASSED [ 59%] 442s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_line_number_default PASSED [ 59%] 442s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_target PASSED [ 59%] 442s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_rich_get PASSED [ 59%] 442s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_rich_set PASSED [ 59%] 442s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_create_blank PASSED [ 59%] 442s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_add PASSED [ 59%] 442s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_remove PASSED [ 59%] 442s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_find PASSED [ 59%] 442s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_parse PASSED [ 59%] 442s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_files PASSED [ 59%] 442s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_save PASSED [ 59%] 442s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_extensions PASSED [ 59%] 442s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_mimetypes PASSED [ 59%] 442s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_translate PASSED [ 59%] 442s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_markup PASSED [ 59%] 442s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_nonascii PASSED [ 59%] 442s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[-] PASSED [ 59%] 442s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String-String] PASSED [ 59%] 442s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok}-String] PASSED [ 59%] 442s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {OK}-String] PASSED [ 59%] 442s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[\u015e\u0167\u0159\u012b\u019e\u0260 {ok}-\u015e\u0167\u0159\u012b\u019e\u0260] PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String{ok}-String] PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String{OK}-String] PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok}-String] PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok} -String] PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_isfuzzy PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_create PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_eq PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_target PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_escapes PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_difficult_escapes PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_note_sanity PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_line_number_default PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_rich_get PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_rich_set PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_translate_but_same PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_untranslated PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_comments PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_copy_target PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_create_blank PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_add PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_remove PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_find PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_translate PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_parse PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_files PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_save PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_markup PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_extensions PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_mimetypes PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_nonascii PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_format_layout PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_crlf PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_active_flag PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_multiline_comments PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_template PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[--False] PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ -Source -True] PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ {ok}-Source-True] PASSED [ 60%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ {ok} -Source-True] PASSED [ 61%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[{ok}-Source-True] PASSED [ 61%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_headers PASSED [ 61%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_not_headers PASSED [ 61%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[0] PASSED [ 61%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[1] PASSED [ 61%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[2] PASSED [ 61%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[3] PASSED [ 61%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_tag_comments PASSED [ 61%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_maxlength PASSED [ 61%] 442s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_line_number PASSED [ 61%] 442s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_isfuzzy PASSED [ 61%] 442s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_create PASSED [ 61%] 442s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_eq PASSED [ 61%] 442s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_target PASSED [ 61%] 442s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_escapes PASSED [ 61%] 442s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_difficult_escapes PASSED [ 61%] 442s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_note_sanity PASSED [ 61%] 442s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_line_number_default PASSED [ 61%] 442s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_rich_get PASSED [ 61%] 442s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_rich_set PASSED [ 61%] 442s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_create_blank PASSED [ 61%] 442s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_add PASSED [ 61%] 442s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_remove PASSED [ 61%] 442s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_find PASSED [ 61%] 442s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_translate PASSED [ 61%] 442s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_parse PASSED [ 61%] 442s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_files PASSED [ 61%] 442s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_save PASSED [ 61%] 442s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_markup PASSED [ 61%] 442s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_nonascii PASSED [ 61%] 442s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_mimetypes PASSED [ 61%] 442s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_extensions XFAIL [ 61%] 442s tests/translate/storage/test_oo.py::test_makekey PASSED [ 61%] 442s tests/translate/storage/test_oo.py::test_escape_help_text PASSED [ 61%] 442s tests/translate/storage/test_oo.py::TestOO::test_simpleentry PASSED [ 61%] 442s tests/translate/storage/test_oo.py::TestOO::test_simpleentry_quickhelptest PASSED [ 61%] 442s tests/translate/storage/test_oo.py::TestOO::test_simpleentry_title PASSED [ 61%] 442s tests/translate/storage/test_oo.py::TestOO::test_blankline PASSED [ 61%] 442s tests/translate/storage/test_oo.py::TestOO::test_fieldlength PASSED [ 62%] 442s tests/translate/storage/test_oo.py::TestOO::test_escapes PASSED [ 62%] 442s tests/translate/storage/test_php.py::test_php_escaping_single_quote PASSED [ 62%] 442s tests/translate/storage/test_php.py::test_php_escaping_double_quote PASSED [ 62%] 442s tests/translate/storage/test_php.py::TestPhpUnit::test_isfuzzy PASSED [ 62%] 442s tests/translate/storage/test_php.py::TestPhpUnit::test_create PASSED [ 62%] 442s tests/translate/storage/test_php.py::TestPhpUnit::test_eq PASSED [ 62%] 442s tests/translate/storage/test_php.py::TestPhpUnit::test_escapes PASSED [ 62%] 442s tests/translate/storage/test_php.py::TestPhpUnit::test_note_sanity PASSED [ 62%] 442s tests/translate/storage/test_php.py::TestPhpUnit::test_line_number_default PASSED [ 62%] 442s tests/translate/storage/test_php.py::TestPhpUnit::test_target PASSED [ 62%] 442s tests/translate/storage/test_php.py::TestPhpUnit::test_rich_get PASSED [ 62%] 442s tests/translate/storage/test_php.py::TestPhpUnit::test_rich_set PASSED [ 62%] 442s tests/translate/storage/test_php.py::TestPhpUnit::test_difficult_escapes PASSED [ 62%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_create_blank PASSED [ 62%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_add PASSED [ 62%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_remove PASSED [ 62%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_find PASSED [ 62%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_parse PASSED [ 62%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_files PASSED [ 62%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_save PASSED [ 62%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_extensions PASSED [ 62%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_mimetypes PASSED [ 62%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_translate PASSED [ 62%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_markup PASSED [ 62%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_nonascii PASSED [ 62%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition PASSED [ 62%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition_source PASSED [ 62%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_spaces_in_name PASSED [ 62%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_comment_definition PASSED [ 62%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_comment_blocks PASSED [ 62%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_comment_output PASSED [ 62%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_comment_add PASSED [ 62%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_multiline PASSED [ 62%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays PASSED [ 62%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_array_no_array_syntax PASSED [ 62%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_spaces PASSED [ 62%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_quotes PASSED [ 62%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_number_as_value PASSED [ 62%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_non_textual PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_define PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_define_with_spaces_before_key PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_after_equal_delimiter PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_after_equal_delimiter_and_before_key PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_no_spaces_after_equal_delimiter PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_no_spaces_after_equaldel_but_before_key PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_entries_with_quotes PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_comments_at_entry_line_end PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_double_slash_comments_before_entries PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_before_end_delimiter PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simpledefinition_spaces_before_end_delimiter PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_no_trailing_comma PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_space_before_comma PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_space_before_array_declaration PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_declared_in_a_single_line PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_no_keys PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_no_keys_assigned_to_array PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_no_keys PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_assignment_in_line_where_multiline_comment_ends PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_using_short_array_syntax PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_space_before_array_declaration PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_unnamed_nested_arrays PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_array_declaration_in_next_line PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_array_with_newline_after_delimiter PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_blank_entries PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_slashstar_in_string PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_heredoc_syntax PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition_after_define PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_quotes PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_concatenation PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_serialize PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_space_before_comma PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_equals_in_id PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_comma_in_string PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_nowdoc PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_plain_concatenation PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_array_keys PASSED [ 63%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_double_var PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_return_array PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_with_spaces PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_with_comments PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_short PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_short_quotes PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestPhpFile::test_addunit PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_isfuzzy PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_create PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_eq PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_escapes PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_difficult_escapes PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_note_sanity PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_line_number_default PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_target PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_rich_get PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_rich_set PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_create_blank PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_remove PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_find PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_parse PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_files PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_save PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_extensions PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_mimetypes PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_translate PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_markup PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_nonascii PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_plurals PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_key_stripping PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_key_stripping_array_syntax PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_key_stripping_numeric_keys PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_roundtrip_short_array PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_roundtrip_array_syntax PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_setid_preserves_structure PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_setid_with_array_syntax PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_addunit_with_setid PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_unit_to_short_array_file PASSED [ 64%] 442s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_unit_to_array_function_file PASSED [ 65%] 442s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_multiple_units_to_short_array PASSED [ 65%] 442s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_multiple_units_to_array_function PASSED [ 65%] 442s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_numeric_keys_no_quotes PASSED [ 65%] 442s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_empty_string_key PASSED [ 65%] 442s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_setid_with_non_string_value PASSED [ 65%] 442s tests/translate/storage/test_po.py::test_roundtrip_quoting PASSED [ 65%] 442s tests/translate/storage/test_po.py::TestPOUnit::test_isfuzzy PASSED [ 65%] 442s tests/translate/storage/test_po.py::TestPOUnit::test_create PASSED [ 65%] 442s tests/translate/storage/test_po.py::TestPOUnit::test_eq PASSED [ 65%] 442s tests/translate/storage/test_po.py::TestPOUnit::test_target PASSED [ 65%] 442s tests/translate/storage/test_po.py::TestPOUnit::test_escapes PASSED [ 65%] 442s tests/translate/storage/test_po.py::TestPOUnit::test_difficult_escapes PASSED [ 65%] 442s tests/translate/storage/test_po.py::TestPOUnit::test_note_sanity PASSED [ 65%] 442s tests/translate/storage/test_po.py::TestPOUnit::test_line_number_default PASSED [ 65%] 442s tests/translate/storage/test_po.py::TestPOUnit::test_rich_get PASSED [ 65%] 442s tests/translate/storage/test_po.py::TestPOUnit::test_rich_set PASSED [ 65%] 442s tests/translate/storage/test_po.py::TestPOUnit::test_istranslatable PASSED [ 65%] 442s tests/translate/storage/test_po.py::TestPOUnit::test_locations PASSED [ 65%] 442s tests/translate/storage/test_po.py::TestPOUnit::test_nongettext_location PASSED [ 65%] 442s tests/translate/storage/test_po.py::TestPOUnit::test_adding_empty_note PASSED [ 65%] 442s tests/translate/storage/test_po.py::TestPOUnit::test_markreview PASSED [ 65%] 442s tests/translate/storage/test_po.py::TestPOUnit::test_errors PASSED [ 65%] 442s tests/translate/storage/test_po.py::TestPOUnit::test_no_plural_settarget PASSED [ 65%] 442s tests/translate/storage/test_po.py::TestPOUnit::test_wrapping_bug PASSED [ 65%] 442s tests/translate/storage/test_po.py::TestPOUnit::test_extract_msgidcomments_from_text PASSED [ 65%] 442s tests/translate/storage/test_po.py::TestPOUnit::test_isheader PASSED [ 65%] 442s tests/translate/storage/test_po.py::TestPOUnit::test_buildfromunit PASSED [ 65%] 442s tests/translate/storage/test_po.py::TestPOFile::test_create_blank PASSED [ 65%] 442s tests/translate/storage/test_po.py::TestPOFile::test_add PASSED [ 65%] 442s tests/translate/storage/test_po.py::TestPOFile::test_remove PASSED [ 65%] 442s tests/translate/storage/test_po.py::TestPOFile::test_find PASSED [ 65%] 442s tests/translate/storage/test_po.py::TestPOFile::test_translate PASSED [ 65%] 442s tests/translate/storage/test_po.py::TestPOFile::test_parse PASSED [ 65%] 442s tests/translate/storage/test_po.py::TestPOFile::test_files PASSED [ 65%] 442s tests/translate/storage/test_po.py::TestPOFile::test_save PASSED [ 65%] 442s tests/translate/storage/test_po.py::TestPOFile::test_markup PASSED [ 65%] 442s tests/translate/storage/test_po.py::TestPOFile::test_nonascii PASSED [ 65%] 442s tests/translate/storage/test_po.py::TestPOFile::test_extensions PASSED [ 65%] 442s tests/translate/storage/test_po.py::TestPOFile::test_mimetypes PASSED [ 66%] 442s tests/translate/storage/test_po.py::TestPOFile::test_context_only PASSED [ 66%] 442s tests/translate/storage/test_po.py::TestPOFile::test_simpleentry PASSED [ 66%] 442s tests/translate/storage/test_po.py::TestPOFile::test_copy PASSED [ 66%] 442s tests/translate/storage/test_po.py::TestPOFile::test_parse_source_string PASSED [ 66%] 442s tests/translate/storage/test_po.py::TestPOFile::test_parse_file PASSED [ 66%] 442s tests/translate/storage/test_po.py::TestPOFile::test_unicode PASSED [ 66%] 442s tests/translate/storage/test_po.py::TestPOFile::test_plurals PASSED [ 66%] 442s tests/translate/storage/test_po.py::TestPOFile::test_plural_unicode PASSED [ 66%] 442s tests/translate/storage/test_po.py::TestPOFile::test_nongettext_location PASSED [ 66%] 442s tests/translate/storage/test_po.py::TestPOFile::test_percent_location PASSED [ 66%] 443s tests/translate/storage/test_po.py::TestPOFile::test_kde_plurals XFAIL [ 66%] 443s tests/translate/storage/test_po.py::TestPOFile::test_empty_lines_notes PASSED [ 66%] 443s tests/translate/storage/test_po.py::TestPOFile::test_fuzzy PASSED [ 66%] 443s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_untranslated XFAIL [ 66%] 443s tests/translate/storage/test_po.py::TestPOFile::test_merging_automaticcomments PASSED [ 66%] 443s tests/translate/storage/test_po.py::TestPOFile::test_malformed_units PASSED [ 66%] 443s tests/translate/storage/test_po.py::TestPOFile::test_invalid_keyword PASSED [ 66%] 443s tests/translate/storage/test_po.py::TestPOFile::test_malformed_obsolete_units PASSED [ 66%] 443s tests/translate/storage/test_po.py::TestPOFile::test_uniforum_po PASSED [ 66%] 443s tests/translate/storage/test_po.py::TestPOFile::test_obsolete PASSED [ 66%] 443s tests/translate/storage/test_po.py::TestPOFile::test_obsolete_with_prev_msgid PASSED [ 66%] 443s tests/translate/storage/test_po.py::TestPOFile::test_header_escapes PASSED [ 66%] 443s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete PASSED [ 66%] 443s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_plural PASSED [ 66%] 443s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_msgctxt PASSED [ 66%] 443s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_msgidcomments PASSED [ 66%] 443s tests/translate/storage/test_po.py::TestPOFile::test_multiline_obsolete PASSED [ 66%] 443s tests/translate/storage/test_po.py::TestPOFile::test_merge_duplicates PASSED [ 66%] 443s tests/translate/storage/test_po.py::TestPOFile::test_merge_mixed_sources PASSED [ 66%] 443s tests/translate/storage/test_po.py::TestPOFile::test_parse_context PASSED [ 66%] 443s tests/translate/storage/test_po.py::TestPOFile::test_parse_advanced_context PASSED [ 66%] 443s tests/translate/storage/test_po.py::TestPOFile::test_kde_context PASSED [ 66%] 443s tests/translate/storage/test_po.py::TestPOFile::test_broken_kde_context PASSED [ 66%] 443s tests/translate/storage/test_po.py::TestPOFile::test_id PASSED [ 66%] 443s tests/translate/storage/test_po.py::TestPOFile::test_non_ascii_header_comments PASSED [ 66%] 443s tests/translate/storage/test_po.py::TestPOFile::test_non_ascii_header_comments_2 PASSED [ 66%] 443s tests/translate/storage/test_po.py::TestPOFile::test_final_slash PASSED [ 66%] 443s tests/translate/storage/test_po.py::TestPOFile::test_unfinished_lines PASSED [ 66%] 443s tests/translate/storage/test_po.py::TestPOFile::test_encoding_change PASSED [ 67%] 443s tests/translate/storage/test_po.py::TestPOFile::test_istranslated PASSED [ 67%] 443s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_spaces PASSED [ 67%] 443s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long PASSED [ 67%] 443s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_fit PASSED [ 67%] 443s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_overflow PASSED [ 67%] 443s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_multiline PASSED [ 67%] 443s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_escapes PASSED [ 67%] 443s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_cjk PASSED [ 67%] 443s tests/translate/storage/test_po.py::TestPOFile::test_wrap_emoji PASSED [ 67%] 443s tests/translate/storage/test_po.py::TestPOFile::test_wrap_parenthesis PASSED [ 67%] 443s tests/translate/storage/test_po.py::TestPOFile::test_wrap_escape_line PASSED [ 67%] 443s tests/translate/storage/test_po.py::TestPOFile::test_wrap_parenthesis_long PASSED [ 67%] 443s tests/translate/storage/test_po.py::TestPOFile::test_wrap_gettext PASSED [ 67%] 443s tests/translate/storage/test_po.py::TestPOFile::test_wrap_wide_stop PASSED [ 67%] 443s tests/translate/storage/test_po.py::TestPOFile::test_wrap_escape PASSED [ 67%] 443s tests/translate/storage/test_po.py::TestPOFile::test_msgidcomments PASSED [ 67%] 443s tests/translate/storage/test_po.py::TestPOFile::test_unicode_ids PASSED [ 67%] 443s tests/translate/storage/test_po.py::TestPOFile::test_syntax_error PASSED [ 67%] 443s tests/translate/storage/test_po.py::TestPOFile::test_invalid PASSED [ 67%] 443s tests/translate/storage/test_po.py::TestPOFile::test_c_style_comment_error_reporting PASSED [ 67%] 443s tests/translate/storage/test_po.py::TestPOFile::test_wrapped_msgid PASSED [ 67%] 443s tests/translate/storage/test_po.py::TestPOFile::test_missing_plural PASSED [ 67%] 443s tests/translate/storage/test_po.py::TestPOFile::test_unusual_line_endings PASSED [ 67%] 443s tests/translate/storage/test_po.py::TestPOFile::test_charset_with_space PASSED [ 67%] 443s tests/translate/storage/test_po.py::TestPOFile::test_duplicate_msgid_error PASSED [ 67%] 443s tests/translate/storage/test_pocommon.py::test_roundtrip_quote_plus PASSED [ 67%] 443s tests/translate/storage/test_poheader.py::test_parseheaderstring PASSED [ 67%] 443s tests/translate/storage/test_poheader.py::test_update PASSED [ 67%] 443s tests/translate/storage/test_poheader.py::test_po_dates PASSED [ 67%] 443s tests/translate/storage/test_poheader.py::test_timezones PASSED [ 67%] 443s tests/translate/storage/test_poheader.py::test_header_blank PASSED [ 67%] 443s tests/translate/storage/test_poheader.py::test_plural_equation PASSED [ 67%] 443s tests/translate/storage/test_poheader.py::test_plural_equation_across_lines PASSED [ 67%] 443s tests/translate/storage/test_poheader.py::test_updatecontributor PASSED [ 67%] 443s tests/translate/storage/test_poheader.py::test_updatecontributor_header PASSED [ 67%] 443s tests/translate/storage/test_poheader.py::test_language PASSED [ 67%] 443s tests/translate/storage/test_poheader.py::test_project PASSED [ 67%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_isfuzzy PASSED [ 67%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_create PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_eq PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_target PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_escapes PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_difficult_escapes PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_note_sanity PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_line_number_default PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_rich_get PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_rich_set PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_markreview PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_errors PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_accepted_control_chars PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_unaccepted_control_chars PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_plurals PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_ids PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_create_blank PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_remove PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_find PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_translate PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_files PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_save PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_markup PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_nonascii PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_extensions PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_mimetypes PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_basic PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_namespace PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_rich_source PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_rich_target PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_source PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_target PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_sourcelanguage PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_targetlanguage PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_targetlanguage_multi PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_alttrans PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_fuzzy PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_xml_space PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parsing PASSED [ 68%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_marktranslatable PASSED [ 69%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_entities PASSED [ 69%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_multiple_filenodes PASSED [ 69%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_groups_when_adding_units PASSED [ 69%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_multiple_files_and_groups PASSED [ 69%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_unit_to_existing_group PASSED [ 69%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_unit_to_different_file PASSED [ 69%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_mixed_groups_and_body PASSED [ 69%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_addunit_with_new_false PASSED [ 69%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_namespace_preservation_across_versions PASSED [ 69%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_units_between_different_files PASSED [ 69%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_group_preservation_across_different_namespaces PASSED [ 69%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_cross_namespace_group_and_file_preservation PASSED [ 69%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_indent PASSED [ 69%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_target PASSED [ 69%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve PASSED [ 69%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_closing_tags PASSED [ 69%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_context_groups PASSED [ 69%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_getlocations PASSED [ 69%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_addlocation PASSED [ 69%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_huge PASSED [ 69%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_add PASSED [ 69%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parse PASSED [ 69%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parse_plural_alpha_id PASSED [ 69%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_notes PASSED [ 69%] 443s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_plural PASSED [ 69%] 443s tests/translate/storage/test_properties.py::test_find_delimiter_pos_simple PASSED [ 69%] 443s tests/translate/storage/test_properties.py::test_find_delimiter_pos_multiple PASSED [ 69%] 443s tests/translate/storage/test_properties.py::test_find_delimiter_pos_none PASSED [ 69%] 443s tests/translate/storage/test_properties.py::test_find_delimiter_pos_whitespace PASSED [ 69%] 443s tests/translate/storage/test_properties.py::test_find_delimiter_pos_escapes PASSED [ 69%] 443s tests/translate/storage/test_properties.py::test_find_delimiter_pos_empty_and_whitespace PASSED [ 69%] 443s tests/translate/storage/test_properties.py::test_find_delimiter_pos_tabs PASSED [ 69%] 443s tests/translate/storage/test_properties.py::test_is_line_continuation PASSED [ 69%] 443s tests/translate/storage/test_properties.py::test_key_strip PASSED [ 69%] 443s tests/translate/storage/test_properties.py::test_get_comment_one_line PASSED [ 69%] 443s tests/translate/storage/test_properties.py::test_get_comment_start PASSED [ 69%] 443s tests/translate/storage/test_properties.py::test_get_comment_end PASSED [ 69%] 443s tests/translate/storage/test_properties.py::TestPropUnit::test_isfuzzy PASSED [ 69%] 443s tests/translate/storage/test_properties.py::TestPropUnit::test_create PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestPropUnit::test_eq PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestPropUnit::test_escapes PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestPropUnit::test_difficult_escapes PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestPropUnit::test_note_sanity PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestPropUnit::test_line_number_default PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestPropUnit::test_target PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestPropUnit::test_rich_get PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestPropUnit::test_rich_set PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestGwtProp::test_create_blank PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestGwtProp::test_add PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestGwtProp::test_remove PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestGwtProp::test_find PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestGwtProp::test_parse PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestGwtProp::test_files PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestGwtProp::test_save PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestGwtProp::test_extensions PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestGwtProp::test_mimetypes PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestGwtProp::test_translate PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestGwtProp::test_markup PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestGwtProp::test_nonascii PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestGwtProp::test_quotes PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestGwtProp::test_simpledefinition PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestGwtProp::test_doubledefinition PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestGwtProp::test_doubledefinition_source PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestGwtProp::test_reduce PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestGwtProp::test_increase PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestGwtProp::test_extra_plurals PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestGwtProp::test_non_plurals PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestGwtProp::test_encoding PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestGwtProp::test_other_plurals PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestProp::test_create_blank PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestProp::test_add PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestProp::test_remove PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestProp::test_find PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestProp::test_parse PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestProp::test_files PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestProp::test_save PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestProp::test_extensions PASSED [ 70%] 443s tests/translate/storage/test_properties.py::TestProp::test_mimetypes PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_translate PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_markup PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_nonascii PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_simpledefinition PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_simpledefinition_source PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_controlutf8_source PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_control_source PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_unicode_escaping PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_newlines_startend PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_space PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_whitespace_handling PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_key_value_delimiters_simple PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_tab_delimiter_parsing PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_comments PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_latin1 PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_fullspec_delimiters PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_fullspec_escaped_key PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_fullspec_line_continuation PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_fullspec_key_without_value PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_mac_strings PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_utf_16_save PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_mac_multiline_strings PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_unicode PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_utf8 PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_newlines PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comments PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_multilines_comments PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comments_dropping PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_inline_comments PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_inline_comments_nested PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_inline_comment_with_spaces PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_before_entry PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_between_key_and_equals PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_between_equals_and_value PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_after_value_before_semicolon PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_multiple_inline_comments PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_nested_comment PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_inside_value PASSED [ 71%] 443s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_trailing_whitespace_after_semicolon PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_quotes PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_equals PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_serialization PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_double_backslashes PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestProp::test_override_encoding PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestProp::test_trailing_comments PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestProp::test_utf16_byte_order_mark PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestProp::test_raise_ioerror_if_cannot_detect_encoding PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestProp::test_utf8_byte_order_mark PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestProp::test_utf16_bom_no_warning PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestProp::test_joomla_set_target PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestProp::test_joomla PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestProp::test_joomla_escape PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestProp::test_serialize_missing_delimiter PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestProp::test_serialize_missing_value PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestProp::test_multi_comments PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestProp::test_serialize_note PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestProp::test_serialize_long_note PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestProp::test_trailing_newlines PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestXWiki::test_create_blank PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestXWiki::test_add PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestXWiki::test_remove PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestXWiki::test_find PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestXWiki::test_parse PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestXWiki::test_files PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestXWiki::test_save PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestXWiki::test_extensions PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestXWiki::test_mimetypes PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestXWiki::test_translate PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestXWiki::test_markup PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestXWiki::test_nonascii PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestXWiki::test_simpledefinition PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestXWiki::test_missing_definition PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestXWiki::test_missing_definition_source PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestXWiki::test_definition_with_simple_quote PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestXWiki::test_definition_with_simple_quote_and_argument PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestXWiki::test_header_preserved PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestXWiki::test_blank_line_before_comment_preserved PASSED [ 72%] 443s tests/translate/storage/test_properties.py::TestXWiki::test_deprecated_comments_preserved PASSED [ 73%] 443s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_create_blank PASSED [ 73%] 443s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_add PASSED [ 73%] 443s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_remove PASSED [ 73%] 443s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_find PASSED [ 73%] 443s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_parse PASSED [ 73%] 443s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_files PASSED [ 73%] 443s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_save PASSED [ 73%] 443s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_extensions PASSED [ 73%] 443s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_mimetypes PASSED [ 73%] 443s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_translate PASSED [ 73%] 443s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_markup PASSED [ 73%] 443s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_nonascii PASSED [ 73%] 443s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_simpledefinition PASSED [ 73%] 443s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_missing_definition PASSED [ 73%] 443s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_missing_definition_source PASSED [ 73%] 443s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_simple_quote PASSED [ 73%] 443s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_simple_quote_and_argument PASSED [ 73%] 443s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_encoded_html PASSED [ 73%] 443s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_cleaning_attributes PASSED [ 73%] 443s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_translate_source PASSED [ 73%] 443s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_create_blank PASSED [ 73%] 443s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_add PASSED [ 73%] 443s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_find PASSED [ 73%] 443s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_extensions PASSED [ 73%] 443s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_mimetypes PASSED [ 73%] 443s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_translate PASSED [ 73%] 443s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_markup PASSED [ 73%] 443s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_nonascii PASSED [ 73%] 443s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_simpledefinition PASSED [ 73%] 443s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_parse PASSED [ 73%] 443s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_files PASSED [ 73%] 443s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_save PASSED [ 73%] 443s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_cleaning_attributes PASSED [ 73%] 443s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_remove XFAIL [ 73%] 443s tests/translate/storage/test_pypo.py::TestHelpers::test_unescape PASSED [ 73%] 443s tests/translate/storage/test_pypo.py::TestHelpers::test_quoteforpo PASSED [ 73%] 443s tests/translate/storage/test_pypo.py::TestHelpers::test_quoteforpo_escaped_quotes PASSED [ 73%] 443s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_isfuzzy PASSED [ 73%] 443s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_create PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_eq PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_target PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_escapes PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_difficult_escapes PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_note_sanity PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_line_number_default PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_rich_get PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_rich_set PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_istranslatable PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_locations PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_nongettext_location PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_adding_empty_note PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_markreview PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_errors PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_no_plural_settarget PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrapping_bug PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_extract_msgidcomments_from_text PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_isheader PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_buildfromunit PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_plurals PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_plural_reduction PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes_withcomments PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes_with_blank_lines PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_firstlines PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_newlines PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_max_line_length PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_slash PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_spacing_max_line PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_create_blank PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_add PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_remove PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_find PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_translate PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_files PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_save PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_markup PASSED [ 74%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_nonascii PASSED [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_extensions PASSED [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mimetypes PASSED [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_context_only PASSED [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_simpleentry PASSED [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_copy PASSED [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_source_string PASSED [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_file PASSED [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode PASSED [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_plurals PASSED [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_plural_unicode PASSED [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_nongettext_location PASSED [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_percent_location PASSED [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_plurals XFAIL [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_empty_lines_notes PASSED [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_fuzzy PASSED [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_untranslated XFAIL [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merging_automaticcomments PASSED [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_malformed_units PASSED [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_invalid_keyword PASSED [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_malformed_obsolete_units PASSED [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_uniforum_po PASSED [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_obsolete PASSED [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_obsolete_with_prev_msgid PASSED [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_header_escapes PASSED [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete PASSED [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_plural PASSED [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_msgctxt PASSED [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_msgidcomments PASSED [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_multiline_obsolete PASSED [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_duplicates PASSED [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_mixed_sources PASSED [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_context PASSED [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_advanced_context PASSED [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_context PASSED [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_broken_kde_context PASSED [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_id PASSED [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_non_ascii_header_comments PASSED [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_non_ascii_header_comments_2 PASSED [ 75%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_final_slash PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unfinished_lines PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_encoding_change PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_istranslated PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_spaces PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_fit PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_overflow PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_multiline PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_escapes PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_cjk PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_emoji PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_parenthesis PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_escape_line PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_parenthesis_long PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_gettext PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_wide_stop PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_escape PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_msgidcomments PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode_ids PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_syntax_error PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_c_style_comment_error_reporting PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapped_msgid PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_missing_plural PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unusual_line_endings PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_charset_with_space PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_duplicate_msgid_error PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_combine_msgidcomments PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_duplicates_msgctxt PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_blanks PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_output_str_unicode PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_posections PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_typecomments PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_future_flags PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unassociated_comments PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode_header PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_prevmsgid_parse PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_newlines PASSED [ 76%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unix_newlines PASSED [ 77%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines PASSED [ 77%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mac_newlines PASSED [ 77%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines PASSED [ 77%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_header PASSED [ 77%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_comment PASSED [ 77%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_bom PASSED [ 77%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_long_msgidcomments PASSED [ 77%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_incomplete PASSED [ 77%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_invalid PASSED [ 77%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines_write PASSED [ 77%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_typecomment XFAIL [ 77%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines_typecomment PASSED [ 77%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_custom PASSED [ 77%] 443s tests/translate/storage/test_pypo.py::TestPYPOFile::test_line_number PASSED [ 77%] 443s tests/translate/storage/test_qm.py::TestQtUnit::test_isfuzzy PASSED [ 77%] 443s tests/translate/storage/test_qm.py::TestQtUnit::test_create PASSED [ 77%] 443s tests/translate/storage/test_qm.py::TestQtUnit::test_eq PASSED [ 77%] 443s tests/translate/storage/test_qm.py::TestQtUnit::test_target PASSED [ 77%] 443s tests/translate/storage/test_qm.py::TestQtUnit::test_escapes PASSED [ 77%] 443s tests/translate/storage/test_qm.py::TestQtUnit::test_difficult_escapes PASSED [ 77%] 443s tests/translate/storage/test_qm.py::TestQtUnit::test_note_sanity PASSED [ 77%] 443s tests/translate/storage/test_qm.py::TestQtUnit::test_line_number_default PASSED [ 77%] 443s tests/translate/storage/test_qm.py::TestQtUnit::test_rich_get PASSED [ 77%] 443s tests/translate/storage/test_qm.py::TestQtUnit::test_rich_set PASSED [ 77%] 443s tests/translate/storage/test_qm.py::TestQtFile::test_create_blank PASSED [ 77%] 443s tests/translate/storage/test_qm.py::TestQtFile::test_find PASSED [ 77%] 443s tests/translate/storage/test_qm.py::TestQtFile::test_translate PASSED [ 77%] 443s tests/translate/storage/test_qm.py::TestQtFile::test_markup PASSED [ 77%] 443s tests/translate/storage/test_qm.py::TestQtFile::test_extensions PASSED [ 77%] 443s tests/translate/storage/test_qm.py::TestQtFile::test_mimetypes PASSED [ 77%] 443s tests/translate/storage/test_qm.py::TestQtFile::test_parse PASSED [ 77%] 443s tests/translate/storage/test_qm.py::TestQtFile::test_save PASSED [ 77%] 443s tests/translate/storage/test_qm.py::TestQtFile::test_files PASSED [ 77%] 443s tests/translate/storage/test_qm.py::TestQtFile::test_nonascii PASSED [ 77%] 443s tests/translate/storage/test_qm.py::TestQtFile::test_add PASSED [ 77%] 443s tests/translate/storage/test_qm.py::TestQtFile::test_remove PASSED [ 77%] 443s tests/translate/storage/test_qph.py::TestQphUnit::test_isfuzzy PASSED [ 77%] 443s tests/translate/storage/test_qph.py::TestQphUnit::test_create PASSED [ 77%] 443s tests/translate/storage/test_qph.py::TestQphUnit::test_eq PASSED [ 78%] 443s tests/translate/storage/test_qph.py::TestQphUnit::test_target PASSED [ 78%] 443s tests/translate/storage/test_qph.py::TestQphUnit::test_escapes PASSED [ 78%] 443s tests/translate/storage/test_qph.py::TestQphUnit::test_difficult_escapes PASSED [ 78%] 443s tests/translate/storage/test_qph.py::TestQphUnit::test_note_sanity PASSED [ 78%] 443s tests/translate/storage/test_qph.py::TestQphUnit::test_line_number_default PASSED [ 78%] 443s tests/translate/storage/test_qph.py::TestQphUnit::test_rich_get PASSED [ 78%] 443s tests/translate/storage/test_qph.py::TestQphUnit::test_rich_set PASSED [ 78%] 443s tests/translate/storage/test_qph.py::TestQphFile::test_create_blank PASSED [ 78%] 443s tests/translate/storage/test_qph.py::TestQphFile::test_add PASSED [ 78%] 443s tests/translate/storage/test_qph.py::TestQphFile::test_remove PASSED [ 78%] 443s tests/translate/storage/test_qph.py::TestQphFile::test_find PASSED [ 78%] 443s tests/translate/storage/test_qph.py::TestQphFile::test_translate PASSED [ 78%] 443s tests/translate/storage/test_qph.py::TestQphFile::test_parse PASSED [ 78%] 443s tests/translate/storage/test_qph.py::TestQphFile::test_files PASSED [ 78%] 443s tests/translate/storage/test_qph.py::TestQphFile::test_save PASSED [ 78%] 443s tests/translate/storage/test_qph.py::TestQphFile::test_markup PASSED [ 78%] 443s tests/translate/storage/test_qph.py::TestQphFile::test_nonascii PASSED [ 78%] 443s tests/translate/storage/test_qph.py::TestQphFile::test_extensions PASSED [ 78%] 443s tests/translate/storage/test_qph.py::TestQphFile::test_mimetypes PASSED [ 78%] 443s tests/translate/storage/test_qph.py::TestQphFile::test_basic PASSED [ 78%] 443s tests/translate/storage/test_qph.py::TestQphFile::test_source PASSED [ 78%] 443s tests/translate/storage/test_qph.py::TestQphFile::test_target PASSED [ 78%] 443s tests/translate/storage/test_qph.py::TestQphFile::test_language PASSED [ 78%] 443s tests/translate/storage/test_rc.py::test_escaping PASSED [ 78%] 443s tests/translate/storage/test_rc.py::TestRcFile::test_parse_only_comments PASSED [ 78%] 443s tests/translate/storage/test_rc.py::TestRcFile::test_parse_only_textinclude PASSED [ 78%] 443s tests/translate/storage/test_rc.py::TestRcFile::test_parse_dialog PASSED [ 78%] 443s tests/translate/storage/test_rc.py::TestRcFile::test_parse_stringtable PASSED [ 78%] 443s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_lf PASSED [ 78%] 443s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_crlf PASSED [ 78%] 443s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_cr PASSED [ 78%] 443s tests/translate/storage/test_rc.py::TestRcFile::test_parse_no_language PASSED [ 78%] 443s tests/translate/storage/test_rc.py::TestRcFile::test_textinclude PASSED [ 78%] 443s tests/translate/storage/test_rc.py::TestRcFile::test_multiline PASSED [ 78%] 443s tests/translate/storage/test_rc.py::TestRcFile::test_str PASSED [ 78%] 443s tests/translate/storage/test_rc.py::TestRcFile::test_empty PASSED [ 78%] 443s tests/translate/storage/test_rc.py::TestRcFile::test_utf_8 PASSED [ 78%] 443s tests/translate/storage/test_rc.py::TestRcFile::test_utf_16 PASSED [ 78%] 443s tests/translate/storage/test_rc.py::TestRcFile::test_comment PASSED [ 79%] 443s tests/translate/storage/test_rc.py::TestRcFile::test_stringtables PASSED [ 79%] 444s tests/translate/storage/test_rc.py::TestRcFile::test_textinclude_appstudio PASSED [ 79%] 444s tests/translate/storage/test_rc.py::TestRcFile::test_id_whitespace PASSED [ 79%] 444s tests/translate/storage/test_rc.py::TestRcFile::test_menu_comment PASSED [ 79%] 444s tests/translate/storage/test_rc.py::TestRcFile::test_decompiled PASSED [ 79%] 444s tests/translate/storage/test_rc.py::TestRcFile::test_quotes PASSED [ 79%] 444s tests/translate/storage/test_rc.py::TestRcFile::test_utf16_pragma_code_page PASSED [ 79%] 444s tests/translate/storage/test_rc.py::TestRcFile::test_utf8_pragma_code_page PASSED [ 79%] 444s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_isfuzzy PASSED [ 79%] 444s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_create PASSED [ 79%] 444s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_eq PASSED [ 79%] 444s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_escapes PASSED [ 79%] 444s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_difficult_escapes PASSED [ 79%] 444s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_note_sanity PASSED [ 79%] 444s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_line_number_default PASSED [ 79%] 444s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_target PASSED [ 79%] 444s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_rich_get PASSED [ 79%] 444s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_rich_set PASSED [ 79%] 444s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_create_blank PASSED [ 79%] 444s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_add PASSED [ 79%] 444s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_remove PASSED [ 79%] 444s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_find PASSED [ 79%] 444s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_parse PASSED [ 79%] 444s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_files PASSED [ 79%] 444s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_save PASSED [ 79%] 444s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_extensions PASSED [ 79%] 444s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_mimetypes PASSED [ 79%] 444s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_translate PASSED [ 79%] 444s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_markup PASSED [ 79%] 444s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_nonascii PASSED [ 79%] 444s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_roundtrip PASSED [ 79%] 444s tests/translate/storage/test_resx.py::TestRESXUnit::test_isfuzzy PASSED [ 79%] 444s tests/translate/storage/test_resx.py::TestRESXUnit::test_create PASSED [ 79%] 444s tests/translate/storage/test_resx.py::TestRESXUnit::test_eq PASSED [ 79%] 444s tests/translate/storage/test_resx.py::TestRESXUnit::test_escapes PASSED [ 79%] 444s tests/translate/storage/test_resx.py::TestRESXUnit::test_difficult_escapes PASSED [ 79%] 444s tests/translate/storage/test_resx.py::TestRESXUnit::test_note_sanity PASSED [ 79%] 444s tests/translate/storage/test_resx.py::TestRESXUnit::test_line_number_default PASSED [ 79%] 444s tests/translate/storage/test_resx.py::TestRESXUnit::test_target PASSED [ 80%] 444s tests/translate/storage/test_resx.py::TestRESXUnit::test_rich_get PASSED [ 80%] 444s tests/translate/storage/test_resx.py::TestRESXUnit::test_rich_set PASSED [ 80%] 444s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_isfuzzy PASSED [ 80%] 444s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_create PASSED [ 80%] 444s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_eq PASSED [ 80%] 444s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_escapes PASSED [ 80%] 444s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_difficult_escapes PASSED [ 80%] 444s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_note_sanity PASSED [ 80%] 444s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_line_number_default PASSED [ 80%] 444s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_target PASSED [ 80%] 444s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_rich_get PASSED [ 80%] 444s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_rich_set PASSED [ 80%] 444s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_newunit PASSED [ 80%] 444s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_newunit_comment PASSED [ 80%] 444s tests/translate/storage/test_resx.py::TestRESXfile::test_create_blank PASSED [ 80%] 444s tests/translate/storage/test_resx.py::TestRESXfile::test_add PASSED [ 80%] 444s tests/translate/storage/test_resx.py::TestRESXfile::test_remove PASSED [ 80%] 444s tests/translate/storage/test_resx.py::TestRESXfile::test_find PASSED [ 80%] 444s tests/translate/storage/test_resx.py::TestRESXfile::test_parse PASSED [ 80%] 444s tests/translate/storage/test_resx.py::TestRESXfile::test_files PASSED [ 80%] 444s tests/translate/storage/test_resx.py::TestRESXfile::test_save PASSED [ 80%] 444s tests/translate/storage/test_resx.py::TestRESXfile::test_extensions PASSED [ 80%] 444s tests/translate/storage/test_resx.py::TestRESXfile::test_mimetypes PASSED [ 80%] 444s tests/translate/storage/test_resx.py::TestRESXfile::test_translate PASSED [ 80%] 444s tests/translate/storage/test_resx.py::TestRESXfile::test_markup PASSED [ 80%] 444s tests/translate/storage/test_resx.py::TestRESXfile::test_nonascii PASSED [ 80%] 444s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_isfuzzy PASSED [ 80%] 444s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_create PASSED [ 80%] 444s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_eq PASSED [ 80%] 444s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_escapes PASSED [ 80%] 444s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_difficult_escapes PASSED [ 80%] 444s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_note_sanity PASSED [ 80%] 444s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_line_number_default PASSED [ 80%] 444s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_target PASSED [ 80%] 444s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_rich_get PASSED [ 80%] 444s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_rich_set PASSED [ 80%] 444s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_source PASSED [ 80%] 444s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_eq_formatvaluetype PASSED [ 80%] 444s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_innerkey PASSED [ 81%] 444s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_create_blank PASSED [ 81%] 444s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_add PASSED [ 81%] 444s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_remove PASSED [ 81%] 444s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_find PASSED [ 81%] 444s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_parse PASSED [ 81%] 444s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_files PASSED [ 81%] 444s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_save PASSED [ 81%] 444s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_extensions PASSED [ 81%] 444s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_mimetypes PASSED [ 81%] 444s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_translate PASSED [ 81%] 444s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_markup PASSED [ 81%] 444s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_nonascii PASSED [ 81%] 444s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_serialize PASSED [ 81%] 444s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_default_handlings PASSED [ 81%] 444s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_filename PASSED [ 81%] 444s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_base_filename PASSED [ 81%] 444s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_filename_default_language PASSED [ 81%] 444s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_plural_zero_always_set PASSED [ 81%] 444s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_add_unit PASSED [ 81%] 444s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_create_blank PASSED [ 81%] 444s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_add PASSED [ 81%] 444s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_remove PASSED [ 81%] 444s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_find PASSED [ 81%] 444s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_parse PASSED [ 81%] 444s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_files PASSED [ 81%] 444s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_save PASSED [ 81%] 444s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_extensions PASSED [ 81%] 444s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_mimetypes PASSED [ 81%] 444s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_translate PASSED [ 81%] 444s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_markup PASSED [ 81%] 444s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_nonascii PASSED [ 81%] 444s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_ordering PASSED [ 81%] 444s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_create_blank PASSED [ 81%] 444s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_add PASSED [ 81%] 444s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_remove PASSED [ 81%] 444s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_find PASSED [ 81%] 444s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_parse PASSED [ 81%] 444s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_files PASSED [ 81%] 444s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_save PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_extensions PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_mimetypes PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_translate PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_markup PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_nonascii PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_ordering PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_note_sanity XFAIL [ 82%] 444s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_create_blank PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_add PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_remove PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_find PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_parse PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_files PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_save PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_extensions PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_mimetypes PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_translate PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_markup PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_nonascii PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_ordering PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_create_blank PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_add PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_remove PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_find PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_parse PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_files PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_save PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_extensions PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_mimetypes PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_translate PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_markup PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_nonascii PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_ordering PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_style_preservation PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_create_blank PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_add PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_remove PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_find PASSED [ 82%] 444s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_parse PASSED [ 83%] 444s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_files PASSED [ 83%] 444s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_save PASSED [ 83%] 444s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_extensions PASSED [ 83%] 444s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_mimetypes PASSED [ 83%] 444s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_translate PASSED [ 83%] 444s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_markup PASSED [ 83%] 444s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_nonascii PASSED [ 83%] 444s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_ordering PASSED [ 83%] 444s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_style_preservation PASSED [ 83%] 444s tests/translate/storage/test_tbx.py::TestTBXUnit::test_isfuzzy PASSED [ 83%] 444s tests/translate/storage/test_tbx.py::TestTBXUnit::test_create PASSED [ 83%] 444s tests/translate/storage/test_tbx.py::TestTBXUnit::test_eq PASSED [ 83%] 444s tests/translate/storage/test_tbx.py::TestTBXUnit::test_target PASSED [ 83%] 444s tests/translate/storage/test_tbx.py::TestTBXUnit::test_escapes PASSED [ 83%] 444s tests/translate/storage/test_tbx.py::TestTBXUnit::test_difficult_escapes PASSED [ 83%] 444s tests/translate/storage/test_tbx.py::TestTBXUnit::test_note_sanity PASSED [ 83%] 444s tests/translate/storage/test_tbx.py::TestTBXUnit::test_line_number_default PASSED [ 83%] 444s tests/translate/storage/test_tbx.py::TestTBXUnit::test_rich_get PASSED [ 83%] 444s tests/translate/storage/test_tbx.py::TestTBXUnit::test_rich_set PASSED [ 83%] 444s tests/translate/storage/test_tbx.py::TestTBXfile::test_create_blank PASSED [ 83%] 444s tests/translate/storage/test_tbx.py::TestTBXfile::test_add PASSED [ 83%] 444s tests/translate/storage/test_tbx.py::TestTBXfile::test_remove PASSED [ 83%] 444s tests/translate/storage/test_tbx.py::TestTBXfile::test_find PASSED [ 83%] 444s tests/translate/storage/test_tbx.py::TestTBXfile::test_translate PASSED [ 83%] 444s tests/translate/storage/test_tbx.py::TestTBXfile::test_parse PASSED [ 83%] 444s tests/translate/storage/test_tbx.py::TestTBXfile::test_files PASSED [ 83%] 444s tests/translate/storage/test_tbx.py::TestTBXfile::test_save PASSED [ 83%] 444s tests/translate/storage/test_tbx.py::TestTBXfile::test_markup PASSED [ 83%] 444s tests/translate/storage/test_tbx.py::TestTBXfile::test_nonascii PASSED [ 83%] 444s tests/translate/storage/test_tbx.py::TestTBXfile::test_extensions PASSED [ 83%] 444s tests/translate/storage/test_tbx.py::TestTBXfile::test_mimetypes PASSED [ 83%] 444s tests/translate/storage/test_tbx.py::TestTBXfile::test_basic PASSED [ 83%] 444s tests/translate/storage/test_tbx.py::TestTBXfile::test_source PASSED [ 83%] 444s tests/translate/storage/test_tbx.py::TestTBXfile::test_target PASSED [ 83%] 444s tests/translate/storage/test_tbx.py::TestTBXfile::test_setid PASSED [ 83%] 444s tests/translate/storage/test_tbx.py::TestTBXfile::test_indent PASSED [ 83%] 444s tests/translate/storage/test_tbx.py::TestTBXfile::test_descrip PASSED [ 83%] 444s tests/translate/storage/test_tbx.py::TestTBXfile::test_note_from PASSED [ 83%] 444s tests/translate/storage/test_tbx.py::TestTBXfile::test_administrative_status_and_translation_needed PASSED [ 84%] 444s tests/translate/storage/test_tiki.py::TestTikiUnit::test_locations PASSED [ 84%] 444s tests/translate/storage/test_tiki.py::TestTikiUnit::test_to_unicode PASSED [ 84%] 444s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_simple PASSED [ 84%] 444s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_encode PASSED [ 84%] 444s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_locations PASSED [ 84%] 444s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_ignore_extras PASSED [ 84%] 444s tests/translate/storage/test_tmx.py::TestTMXUnit::test_isfuzzy PASSED [ 84%] 444s tests/translate/storage/test_tmx.py::TestTMXUnit::test_create PASSED [ 84%] 444s tests/translate/storage/test_tmx.py::TestTMXUnit::test_eq PASSED [ 84%] 444s tests/translate/storage/test_tmx.py::TestTMXUnit::test_target PASSED [ 84%] 444s tests/translate/storage/test_tmx.py::TestTMXUnit::test_escapes PASSED [ 84%] 444s tests/translate/storage/test_tmx.py::TestTMXUnit::test_difficult_escapes PASSED [ 84%] 444s tests/translate/storage/test_tmx.py::TestTMXUnit::test_note_sanity PASSED [ 84%] 444s tests/translate/storage/test_tmx.py::TestTMXUnit::test_line_number_default PASSED [ 84%] 444s tests/translate/storage/test_tmx.py::TestTMXUnit::test_rich_get PASSED [ 84%] 444s tests/translate/storage/test_tmx.py::TestTMXUnit::test_rich_set PASSED [ 84%] 444s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_isfuzzy PASSED [ 84%] 444s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_create PASSED [ 84%] 444s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_eq PASSED [ 84%] 444s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_target PASSED [ 84%] 444s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_escapes PASSED [ 84%] 444s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_difficult_escapes PASSED [ 84%] 444s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_note_sanity PASSED [ 84%] 444s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_line_number_default PASSED [ 84%] 444s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_rich_get PASSED [ 84%] 444s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_rich_set PASSED [ 84%] 444s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_context PASSED [ 84%] 444s tests/translate/storage/test_tmx.py::TestTMXfile::test_create_blank PASSED [ 84%] 444s tests/translate/storage/test_tmx.py::TestTMXfile::test_add PASSED [ 84%] 444s tests/translate/storage/test_tmx.py::TestTMXfile::test_remove PASSED [ 84%] 444s tests/translate/storage/test_tmx.py::TestTMXfile::test_find PASSED [ 84%] 444s tests/translate/storage/test_tmx.py::TestTMXfile::test_parse PASSED [ 84%] 444s tests/translate/storage/test_tmx.py::TestTMXfile::test_files PASSED [ 84%] 444s tests/translate/storage/test_tmx.py::TestTMXfile::test_save PASSED [ 84%] 444s tests/translate/storage/test_tmx.py::TestTMXfile::test_markup PASSED [ 84%] 444s tests/translate/storage/test_tmx.py::TestTMXfile::test_nonascii PASSED [ 84%] 444s tests/translate/storage/test_tmx.py::TestTMXfile::test_extensions PASSED [ 84%] 444s tests/translate/storage/test_tmx.py::TestTMXfile::test_mimetypes PASSED [ 84%] 444s tests/translate/storage/test_tmx.py::TestTMXfile::test_translate PASSED [ 85%] 444s tests/translate/storage/test_tmx.py::TestTMXfile::test_addtranslation PASSED [ 85%] 444s tests/translate/storage/test_tmx.py::TestTMXfile::test_withcomment PASSED [ 85%] 444s tests/translate/storage/test_tmx.py::TestTMXfile::test_withnewlines PASSED [ 85%] 444s tests/translate/storage/test_tmx.py::TestTMXfile::test_xmlentities PASSED [ 85%] 444s tests/translate/storage/test_tmx.py::TestTMXfile::test_controls_cleaning PASSED [ 85%] 444s tests/translate/storage/test_tmx.py::TestTMXfile::test_context PASSED [ 85%] 444s tests/translate/storage/test_tmx.py::TestTMXfile::test_note_order PASSED [ 85%] 444s tests/translate/storage/test_tmx.py::TestTMXfile::test_prop_and_note_order PASSED [ 85%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_isfuzzy PASSED [ 85%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_create PASSED [ 85%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_eq PASSED [ 85%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_escapes PASSED [ 85%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_difficult_escapes PASSED [ 85%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_note_sanity PASSED [ 85%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_line_number_default PASSED [ 85%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_target PASSED [ 85%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_rich_get PASSED [ 85%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_rich_set PASSED [ 85%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_getlocations PASSED [ 85%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_create_blank PASSED [ 85%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_add PASSED [ 85%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_find PASSED [ 85%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_parse PASSED [ 85%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_files PASSED [ 85%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_save PASSED [ 85%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_extensions PASSED [ 85%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_mimetypes PASSED [ 85%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_translate PASSED [ 85%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_markup PASSED [ 85%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_nonascii PASSED [ 85%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_serialize PASSED [ 85%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_empty PASSED [ 85%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_edit PASSED [ 85%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_edit_unicode PASSED [ 85%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_parse_unicode_list PASSED [ 85%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_ordering PASSED [ 85%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_nested PASSED [ 85%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_multiline PASSED [ 85%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_boolean PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_integer PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_no_quote_strings PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_double_quote_strings PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_single_quote_strings PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_escaped_double_quotes PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_newlines PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_list PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_inline_table PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_key_nesting PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_add_to_empty PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_dict_in_list PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_remove PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_special PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_extraction_simple PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_extraction_multiline PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_no_comment_backwards_compat PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_simple PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_multiline PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_nested PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_with_modification PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_literal_string PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_multiline_basic_string PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_multiline_literal_string PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_create_blank PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_add PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_remove PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_find PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_parse PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_files PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_save PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_extensions PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_mimetypes PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_translate PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_markup PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_nonascii PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_simple_plural PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_plural_with_other_keys PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_full_plural_forms PASSED [ 86%] 444s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_roundtrip_plural PASSED [ 87%] 444s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_mixed_content PASSED [ 87%] 444s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_letsencrypt_style PASSED [ 87%] 444s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_comment_preservation_goi18n PASSED [ 87%] 444s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_comment_preservation_goi18n_plural PASSED [ 87%] 444s tests/translate/storage/test_trados.py::test_unescape PASSED [ 87%] 444s tests/translate/storage/test_trados.py::test_escape PASSED [ 87%] 444s tests/translate/storage/test_ts.py::TestTS::test_construct PASSED [ 87%] 444s tests/translate/storage/test_ts2.py::TestTSUnit::test_isfuzzy PASSED [ 87%] 444s tests/translate/storage/test_ts2.py::TestTSUnit::test_create PASSED [ 87%] 444s tests/translate/storage/test_ts2.py::TestTSUnit::test_eq PASSED [ 87%] 444s tests/translate/storage/test_ts2.py::TestTSUnit::test_target PASSED [ 87%] 444s tests/translate/storage/test_ts2.py::TestTSUnit::test_escapes PASSED [ 87%] 444s tests/translate/storage/test_ts2.py::TestTSUnit::test_difficult_escapes PASSED [ 87%] 444s tests/translate/storage/test_ts2.py::TestTSUnit::test_note_sanity PASSED [ 87%] 444s tests/translate/storage/test_ts2.py::TestTSUnit::test_line_number_default PASSED [ 87%] 444s tests/translate/storage/test_ts2.py::TestTSUnit::test_rich_get PASSED [ 87%] 444s tests/translate/storage/test_ts2.py::TestTSUnit::test_rich_set PASSED [ 87%] 444s tests/translate/storage/test_ts2.py::TestTSfile::test_create_blank PASSED [ 87%] 444s tests/translate/storage/test_ts2.py::TestTSfile::test_add PASSED [ 87%] 444s tests/translate/storage/test_ts2.py::TestTSfile::test_remove PASSED [ 87%] 444s tests/translate/storage/test_ts2.py::TestTSfile::test_find PASSED [ 87%] 444s tests/translate/storage/test_ts2.py::TestTSfile::test_translate PASSED [ 87%] 444s tests/translate/storage/test_ts2.py::TestTSfile::test_parse PASSED [ 87%] 444s tests/translate/storage/test_ts2.py::TestTSfile::test_files PASSED [ 87%] 444s tests/translate/storage/test_ts2.py::TestTSfile::test_save PASSED [ 87%] 444s tests/translate/storage/test_ts2.py::TestTSfile::test_markup PASSED [ 87%] 444s tests/translate/storage/test_ts2.py::TestTSfile::test_nonascii PASSED [ 87%] 444s tests/translate/storage/test_ts2.py::TestTSfile::test_extensions PASSED [ 87%] 444s tests/translate/storage/test_ts2.py::TestTSfile::test_mimetypes PASSED [ 87%] 444s tests/translate/storage/test_ts2.py::TestTSfile::test_basic PASSED [ 87%] 444s tests/translate/storage/test_ts2.py::TestTSfile::test_source PASSED [ 87%] 444s tests/translate/storage/test_ts2.py::TestTSfile::test_target PASSED [ 87%] 444s tests/translate/storage/test_ts2.py::TestTSfile::test_plurals PASSED [ 87%] 444s tests/translate/storage/test_ts2.py::TestTSfile::test_nplural PASSED [ 87%] 444s tests/translate/storage/test_ts2.py::TestTSfile::test_language PASSED [ 87%] 444s tests/translate/storage/test_ts2.py::TestTSfile::test_edit PASSED [ 87%] 444s tests/translate/storage/test_ts2.py::TestTSfile::test_obsolete PASSED [ 87%] 444s tests/translate/storage/test_ts2.py::TestTSfile::test_locations PASSED [ 87%] 444s tests/translate/storage/test_ts2.py::TestTSfile::test_merge_with_fuzzies PASSED [ 88%] 444s tests/translate/storage/test_ts2.py::TestTSfile::test_getid PASSED [ 88%] 444s tests/translate/storage/test_ts2.py::TestTSfile::test_backnforth PASSED [ 88%] 444s tests/translate/storage/test_ts2.py::TestTSfile::test_context PASSED [ 88%] 444s tests/translate/storage/test_ts2.py::TestTSfile::test_roundtrip_context PASSED [ 88%] 444s tests/translate/storage/test_ts2.py::TestTSfile::test_edit_missing_translation PASSED [ 88%] 444s tests/translate/storage/test_ts2.py::TestTSfile::test_missing_source PASSED [ 88%] 444s tests/translate/storage/test_txt.py::TestTxtUnit::test_isfuzzy PASSED [ 88%] 444s tests/translate/storage/test_txt.py::TestTxtUnit::test_create PASSED [ 88%] 444s tests/translate/storage/test_txt.py::TestTxtUnit::test_eq PASSED [ 88%] 444s tests/translate/storage/test_txt.py::TestTxtUnit::test_escapes PASSED [ 88%] 444s tests/translate/storage/test_txt.py::TestTxtUnit::test_difficult_escapes PASSED [ 88%] 444s tests/translate/storage/test_txt.py::TestTxtUnit::test_note_sanity PASSED [ 88%] 444s tests/translate/storage/test_txt.py::TestTxtUnit::test_line_number_default PASSED [ 88%] 444s tests/translate/storage/test_txt.py::TestTxtUnit::test_target PASSED [ 88%] 444s tests/translate/storage/test_txt.py::TestTxtUnit::test_rich_get PASSED [ 88%] 444s tests/translate/storage/test_txt.py::TestTxtUnit::test_rich_set PASSED [ 88%] 444s tests/translate/storage/test_txt.py::TestTxtFile::test_create_blank PASSED [ 88%] 444s tests/translate/storage/test_txt.py::TestTxtFile::test_add PASSED [ 88%] 444s tests/translate/storage/test_txt.py::TestTxtFile::test_remove PASSED [ 88%] 444s tests/translate/storage/test_txt.py::TestTxtFile::test_find PASSED [ 88%] 444s tests/translate/storage/test_txt.py::TestTxtFile::test_parse PASSED [ 88%] 444s tests/translate/storage/test_txt.py::TestTxtFile::test_files PASSED [ 88%] 444s tests/translate/storage/test_txt.py::TestTxtFile::test_save PASSED [ 88%] 444s tests/translate/storage/test_txt.py::TestTxtFile::test_extensions PASSED [ 88%] 444s tests/translate/storage/test_txt.py::TestTxtFile::test_mimetypes PASSED [ 88%] 444s tests/translate/storage/test_txt.py::TestTxtFile::test_translate PASSED [ 88%] 444s tests/translate/storage/test_txt.py::TestTxtFile::test_markup PASSED [ 88%] 444s tests/translate/storage/test_txt.py::TestTxtFile::test_nonascii PASSED [ 88%] 444s tests/translate/storage/test_txt.py::TestTxtFile::test_simpleblock PASSED [ 88%] 444s tests/translate/storage/test_txt.py::TestTxtFile::test_multipleblocks PASSED [ 88%] 444s tests/translate/storage/test_txt.py::TestTxtFile::test_no_segmentation PASSED [ 88%] 444s tests/translate/storage/test_utx.py::TestUtxUnit::test_isfuzzy PASSED [ 88%] 444s tests/translate/storage/test_utx.py::TestUtxUnit::test_create PASSED [ 88%] 444s tests/translate/storage/test_utx.py::TestUtxUnit::test_eq PASSED [ 88%] 444s tests/translate/storage/test_utx.py::TestUtxUnit::test_target PASSED [ 88%] 444s tests/translate/storage/test_utx.py::TestUtxUnit::test_escapes PASSED [ 88%] 444s tests/translate/storage/test_utx.py::TestUtxUnit::test_difficult_escapes PASSED [ 88%] 444s tests/translate/storage/test_utx.py::TestUtxUnit::test_note_sanity PASSED [ 88%] 444s tests/translate/storage/test_utx.py::TestUtxUnit::test_line_number_default PASSED [ 89%] 444s tests/translate/storage/test_utx.py::TestUtxUnit::test_rich_get PASSED [ 89%] 444s tests/translate/storage/test_utx.py::TestUtxUnit::test_rich_set PASSED [ 89%] 444s tests/translate/storage/test_utx.py::TestUtxFile::test_create_blank PASSED [ 89%] 444s tests/translate/storage/test_utx.py::TestUtxFile::test_add PASSED [ 89%] 444s tests/translate/storage/test_utx.py::TestUtxFile::test_remove PASSED [ 89%] 444s tests/translate/storage/test_utx.py::TestUtxFile::test_find PASSED [ 89%] 444s tests/translate/storage/test_utx.py::TestUtxFile::test_translate PASSED [ 89%] 444s tests/translate/storage/test_utx.py::TestUtxFile::test_parse PASSED [ 89%] 444s tests/translate/storage/test_utx.py::TestUtxFile::test_files PASSED [ 89%] 444s tests/translate/storage/test_utx.py::TestUtxFile::test_save PASSED [ 89%] 444s tests/translate/storage/test_utx.py::TestUtxFile::test_markup PASSED [ 89%] 444s tests/translate/storage/test_utx.py::TestUtxFile::test_nonascii PASSED [ 89%] 444s tests/translate/storage/test_utx.py::TestUtxFile::test_extensions PASSED [ 89%] 444s tests/translate/storage/test_utx.py::TestUtxFile::test_mimetypes PASSED [ 89%] 444s tests/translate/storage/test_wordfast.py::TestWFTime::test_timestring PASSED [ 89%] 444s tests/translate/storage/test_wordfast.py::TestWFTime::test_time PASSED [ 89%] 444s tests/translate/storage/test_wordfast.py::TestWFUnit::test_isfuzzy PASSED [ 89%] 444s tests/translate/storage/test_wordfast.py::TestWFUnit::test_create PASSED [ 89%] 444s tests/translate/storage/test_wordfast.py::TestWFUnit::test_eq PASSED [ 89%] 444s tests/translate/storage/test_wordfast.py::TestWFUnit::test_target PASSED [ 89%] 444s tests/translate/storage/test_wordfast.py::TestWFUnit::test_escapes PASSED [ 89%] 444s tests/translate/storage/test_wordfast.py::TestWFUnit::test_note_sanity PASSED [ 89%] 444s tests/translate/storage/test_wordfast.py::TestWFUnit::test_line_number_default PASSED [ 89%] 444s tests/translate/storage/test_wordfast.py::TestWFUnit::test_rich_get PASSED [ 89%] 444s tests/translate/storage/test_wordfast.py::TestWFUnit::test_rich_set PASSED [ 89%] 444s tests/translate/storage/test_wordfast.py::TestWFUnit::test_difficult_escapes PASSED [ 89%] 444s tests/translate/storage/test_wordfast.py::TestWFUnit::test_wordfast_escaping PASSED [ 89%] 444s tests/translate/storage/test_wordfast.py::TestWFUnit::test_newlines PASSED [ 89%] 444s tests/translate/storage/test_wordfast.py::TestWFUnit::test_language_setting PASSED [ 89%] 444s tests/translate/storage/test_wordfast.py::TestWFUnit::test_istranslated PASSED [ 89%] 444s tests/translate/storage/test_wordfast.py::TestWFFile::test_create_blank PASSED [ 89%] 444s tests/translate/storage/test_wordfast.py::TestWFFile::test_add PASSED [ 89%] 444s tests/translate/storage/test_wordfast.py::TestWFFile::test_remove PASSED [ 89%] 444s tests/translate/storage/test_wordfast.py::TestWFFile::test_find PASSED [ 89%] 444s tests/translate/storage/test_wordfast.py::TestWFFile::test_translate PASSED [ 89%] 444s tests/translate/storage/test_wordfast.py::TestWFFile::test_parse PASSED [ 89%] 444s tests/translate/storage/test_wordfast.py::TestWFFile::test_files PASSED [ 89%] 444s tests/translate/storage/test_wordfast.py::TestWFFile::test_save PASSED [ 89%] 444s tests/translate/storage/test_wordfast.py::TestWFFile::test_markup PASSED [ 90%] 444s tests/translate/storage/test_wordfast.py::TestWFFile::test_nonascii PASSED [ 90%] 444s tests/translate/storage/test_wordfast.py::TestWFFile::test_extensions PASSED [ 90%] 444s tests/translate/storage/test_wordfast.py::TestWFFile::test_mimetypes PASSED [ 90%] 444s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_isfuzzy PASSED [ 90%] 444s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_create PASSED [ 90%] 444s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_eq PASSED [ 90%] 444s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_target PASSED [ 90%] 444s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_escapes PASSED [ 90%] 444s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_difficult_escapes PASSED [ 90%] 444s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_note_sanity PASSED [ 90%] 444s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_line_number_default PASSED [ 90%] 444s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_rich_get PASSED [ 90%] 444s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_rich_set PASSED [ 90%] 444s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_markreview PASSED [ 90%] 444s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_errors PASSED [ 90%] 444s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_accepted_control_chars PASSED [ 90%] 444s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_unaccepted_control_chars PASSED [ 90%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_create_blank PASSED [ 90%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add PASSED [ 90%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_remove PASSED [ 90%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_find PASSED [ 90%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_translate PASSED [ 90%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_parse PASSED [ 90%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_files PASSED [ 90%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_save PASSED [ 90%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_markup PASSED [ 90%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_nonascii PASSED [ 90%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_extensions PASSED [ 90%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_mimetypes PASSED [ 90%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_basic PASSED [ 90%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_namespace PASSED [ 90%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_rich_source PASSED [ 90%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_rich_target PASSED [ 90%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_source PASSED [ 90%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_target PASSED [ 90%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_sourcelanguage PASSED [ 90%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_targetlanguage PASSED [ 90%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_targetlanguage_multi PASSED [ 90%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_notes PASSED [ 91%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_alttrans PASSED [ 91%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_fuzzy PASSED [ 91%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_xml_space PASSED [ 91%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_parsing PASSED [ 91%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_marktranslatable PASSED [ 91%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_entities PASSED [ 91%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_multiple_filenodes PASSED [ 91%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_groups_when_adding_units PASSED [ 91%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_multiple_files_and_groups PASSED [ 91%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_unit_to_existing_group PASSED [ 91%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_unit_to_different_file PASSED [ 91%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_mixed_groups_and_body PASSED [ 91%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_addunit_with_new_false PASSED [ 91%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_namespace_preservation_across_versions PASSED [ 91%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_units_between_different_files PASSED [ 91%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_group_preservation_across_different_namespaces PASSED [ 91%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_cross_namespace_group_and_file_preservation PASSED [ 91%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_indent PASSED [ 91%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_target PASSED [ 91%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve PASSED [ 91%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_closing_tags PASSED [ 91%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_context_groups PASSED [ 91%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_getlocations PASSED [ 91%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_addlocation PASSED [ 91%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_huge PASSED [ 91%] 444s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_add PASSED [ 91%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_isfuzzy PASSED [ 91%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_create PASSED [ 91%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_eq PASSED [ 91%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_target PASSED [ 91%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_escapes PASSED [ 91%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_difficult_escapes PASSED [ 91%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_note_sanity PASSED [ 91%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_line_number_default PASSED [ 91%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_rich_get PASSED [ 91%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_rich_set PASSED [ 91%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_notes PASSED [ 91%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_id_management PASSED [ 91%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_marktranslatable PASSED [ 92%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_create_blank PASSED [ 92%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_add PASSED [ 92%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_remove PASSED [ 92%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_find PASSED [ 92%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_translate PASSED [ 92%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_parse PASSED [ 92%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_files PASSED [ 92%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_save PASSED [ 92%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_markup PASSED [ 92%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_nonascii PASSED [ 92%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_extensions PASSED [ 92%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_mimetypes PASSED [ 92%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_basic PASSED [ 92%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_source_target PASSED [ 92%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_language_attributes PASSED [ 92%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_namespace PASSED [ 92%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_unit_structure PASSED [ 92%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_multiple_units PASSED [ 92%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_parse_xliff2 PASSED [ 92%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_parse_translate_attribute PASSED [ 92%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_multiple_segments_per_unit PASSED [ 92%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_mixed_single_and_multiple_segments PASSED [ 92%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_segments_without_ids PASSED [ 92%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_escaped_inline_tags PASSED [ 92%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_simple_source_target_pairs PASSED [ 92%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_malformed_xml_declaration PASSED [ 92%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_variable_placeholders PASSED [ 92%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_add_unit PASSED [ 92%] 444s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_states PASSED [ 92%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_isfuzzy PASSED [ 92%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_create PASSED [ 92%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_eq PASSED [ 92%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_escapes PASSED [ 92%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_difficult_escapes PASSED [ 92%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_note_sanity PASSED [ 92%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_line_number_default PASSED [ 92%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_target PASSED [ 92%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_rich_get PASSED [ 92%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_rich_set PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_getlocations PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_create_blank PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_add PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_find PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_parse PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_files PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_save PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_extensions PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_mimetypes PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_translate PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_markup PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_nonascii PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_serialize PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_empty PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_edit PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_edit_unicode PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_parse_unicode_list PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_ordering PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_initial_comments PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_string_key PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_nested PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_multiline PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_boolean PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_integer PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_no_quote_strings PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_double_quote_strings PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_single_quote_strings PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_avoid_escaping_double_quote_strings PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_avoid_escaping_single_quote_strings PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_escaped_double_quotes PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_newlines PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_abbreviated_list PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_abbreviated_dictionary PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_key_nesting PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_add_to_mepty PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_empty_key PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_dict_in_list PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_dump_args PASSED [ 93%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_anchors PASSED [ 94%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_tagged_scalar PASSED [ 94%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_numeric PASSED [ 94%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_remove PASSED [ 94%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_special PASSED [ 94%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_quotes_roundtrip PASSED [ 94%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_simple PASSED [ 94%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_multiline PASSED [ 94%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_nested PASSED [ 94%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_mixed PASSED [ 94%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_no_comment_backwards_compat PASSED [ 94%] 444s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_multiline_literal_format PASSED [ 94%] 444s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_create_blank PASSED [ 94%] 444s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_remove PASSED [ 94%] 444s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_find PASSED [ 94%] 444s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_parse PASSED [ 94%] 444s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_files PASSED [ 94%] 444s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_save PASSED [ 94%] 444s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_extensions PASSED [ 94%] 444s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_mimetypes PASSED [ 94%] 444s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_translate PASSED [ 94%] 444s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_markup PASSED [ 94%] 444s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_nonascii PASSED [ 94%] 444s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_list PASSED [ 94%] 444s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby PASSED [ 94%] 444s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_wrong PASSED [ 94%] 444s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_invalid_value PASSED [ 94%] 444s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural PASSED [ 94%] 444s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_empty PASSED [ 94%] 444s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_anchors PASSED [ 94%] 444s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_type_change PASSED [ 94%] 444s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_add PASSED [ 94%] 444s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_blank PASSED [ 94%] 444s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_partial PASSED [ 94%] 444s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_pt_br PASSED [ 94%] 444s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_bug_ruby_remove_zero_few_and_mix_others PASSED [ 94%] 445s tests/translate/storage/xml_extract/test_misc.py::test_reduce_tree PASSED [ 94%] 445s tests/translate/storage/xml_extract/test_misc.py::test_compose_mappings PASSED [ 94%] 445s tests/translate/storage/xml_extract/test_misc.py::test_parse_tag PASSED [ 94%] 445s tests/translate/storage/xml_extract/test_unit_tree.py::test__split_xpath_component PASSED [ 95%] 445s tests/translate/storage/xml_extract/test_unit_tree.py::test__split_xpath PASSED [ 95%] 445s tests/translate/storage/xml_extract/test_unit_tree.py::test__add_unit_to_tree PASSED [ 95%] 445s tests/translate/storage/xml_extract/test_xpath_breadcrumb.py::test_breadcrumb PASSED [ 95%] 445s tests/translate/tools/test_help.py::test_help[build_tmdb] PASSED [ 95%] 445s tests/translate/tools/test_help.py::test_help[phppo2pypo] PASSED [ 95%] 445s tests/translate/tools/test_help.py::test_help[poclean] PASSED [ 95%] 445s tests/translate/tools/test_help.py::test_help[pocompile] PASSED [ 95%] 445s tests/translate/tools/test_help.py::test_help[poconflicts] PASSED [ 95%] 445s tests/translate/tools/test_help.py::test_help[pocount] PASSED [ 95%] 445s tests/translate/tools/test_help.py::test_help[podebug] PASSED [ 95%] 445s tests/translate/tools/test_help.py::test_help[pogrep] PASSED [ 95%] 445s tests/translate/tools/test_help.py::test_help[pomerge] PASSED [ 95%] 445s tests/translate/tools/test_help.py::test_help[porestructure] PASSED [ 95%] 445s tests/translate/tools/test_help.py::test_help[posegment] PASSED [ 95%] 445s tests/translate/tools/test_help.py::test_help[poswap] PASSED [ 95%] 445s tests/translate/tools/test_help.py::test_help[poterminology] PASSED [ 95%] 445s tests/translate/tools/test_help.py::test_help[pretranslate] PASSED [ 95%] 445s tests/translate/tools/test_help.py::test_help[pydiff] PASSED [ 95%] 445s tests/translate/tools/test_help.py::test_help[pypo2phppo] PASSED [ 95%] 445s tests/translate/tools/test_junitmsgfmt.py::test_output[failure] PASSED [ 95%] 445s tests/translate/tools/test_junitmsgfmt.py::test_output[untranslated] PASSED [ 95%] 445s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPo::test_single_po PASSED [ 95%] 445s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPo::test_plural_po PASSED [ 95%] 445s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_single_po PASSED [ 95%] 445s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_plural_po PASSED [ 95%] 445s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_help PASSED [ 95%] 445s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_zero PASSED [ 95%] 445s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_one PASSED [ 95%] 445s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_two PASSED [ 95%] 445s tests/translate/tools/test_pocount.py::TestCount::test_punctuation_divides_words PASSED [ 95%] 445s tests/translate/tools/test_pocount.py::TestCount::test_xml_tags PASSED [ 95%] 445s tests/translate/tools/test_pocount.py::TestCount::test_newlines PASSED [ 95%] 445s tests/translate/tools/test_pocount.py::TestCount::test_variables_are_words PASSED [ 95%] 445s tests/translate/tools/test_pocount.py::TestCount::test_plurals PASSED [ 95%] 445s tests/translate/tools/test_pocount.py::TestCount::test_plurals_kde XFAIL [ 95%] 445s tests/translate/tools/test_pocount.py::TestCount::test_msgid_blank PASSED [ 95%] 445s tests/translate/tools/test_pocount.py::TestPOCount::test_translated PASSED [ 95%] 445s tests/translate/tools/test_pocount.py::TestPOCount::test_fuzzy PASSED [ 95%] 445s tests/translate/tools/test_pocount.py::TestPOCount::test_untranslated PASSED [ 96%] 445s tests/translate/tools/test_pocount.py::TestPOCount::test_total PASSED [ 96%] 445s tests/translate/tools/test_pocount.py::TestPOCount::test_translatedsourcewords PASSED [ 96%] 445s tests/translate/tools/test_pocount.py::TestPOCount::test_fuzzysourcewords PASSED [ 96%] 445s tests/translate/tools/test_pocount.py::TestPOCount::test_untranslatedsourcewords PASSED [ 96%] 445s tests/translate/tools/test_pocount.py::TestPOCount::test_totalsourcewords PASSED [ 96%] 445s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-csv] PASSED [ 96%] 445s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-full] PASSED [ 96%] 445s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-short-strings] PASSED [ 96%] 445s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-short-words] PASSED [ 96%] 445s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-csv] PASSED [ 96%] 445s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-full] PASSED [ 96%] 445s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-short-strings] PASSED [ 96%] 445s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-short-words] PASSED [ 96%] 445s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-csv] PASSED [ 96%] 445s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-full] PASSED [ 96%] 445s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-short-strings] PASSED [ 96%] 445s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-short-words] PASSED [ 96%] 445s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-csv] PASSED [ 96%] 445s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-full] PASSED [ 96%] 445s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-short-strings] PASSED [ 96%] 445s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-short-words] PASSED [ 96%] 445s tests/translate/tools/test_pocount.py::test_cases[po-file] PASSED [ 96%] 445s tests/translate/tools/test_pocount.py::test_cases[po-file-fuzzy] PASSED [ 96%] 445s tests/translate/tools/test_pocount.py::test_cases[po-file-csv] PASSED [ 96%] 445s tests/translate/tools/test_pocount.py::test_cases[xliff-states-yes] PASSED [ 96%] 445s tests/translate/tools/test_pocount.py::test_cases[xliff-states-no] PASSED [ 96%] 445s tests/translate/tools/test_pocount.py::test_error_cases[mutually-exclusive] PASSED [ 96%] 445s tests/translate/tools/test_pocount.py::test_error_cases[missing-file] PASSED [ 96%] 445s tests/translate/tools/test_pocount.py::test_error_cases[no-args] PASSED [ 96%] 445s tests/translate/tools/test_pocount.py::test_csv_line_terminator PASSED [ 96%] 445s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_fuzzy_with_target PASSED [ 96%] 445s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_fuzzy_without_target PASSED [ 96%] 445s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_translated_not_fuzzy PASSED [ 96%] 445s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_untranslated_empty_target PASSED [ 96%] 445s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_categorization_mutually_exclusive PASSED [ 96%] 446s tests/translate/tools/test_pocount.py::TestPOCountLineEndings::test_unusual_line_endings PASSED [ 96%] 446s tests/translate/tools/test_podebug.py::TestPODebug::test_ignore_gtk PASSED [ 96%] 446s tests/translate/tools/test_podebug.py::TestPODebug::test_keep_target PASSED [ 96%] 446s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank PASSED [ 97%] 446s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank_clears_fuzzy PASSED [ 97%] 446s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank_with_plurals PASSED [ 97%] 446s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_en PASSED [ 97%] 446s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_xxx PASSED [ 97%] 446s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_bracket PASSED [ 97%] 446s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode PASSED [ 97%] 446s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_at_placeholders PASSED [ 97%] 446s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_single_brace_placeholders PASSED [ 97%] 446s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_double_brace_placeholders PASSED [ 97%] 446s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_html PASSED [ 97%] 446s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_multiple_styles_of_placeholder PASSED [ 97%] 446s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped PASSED [ 97%] 446s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_at_placeholders PASSED [ 97%] 446s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_single_brace_placeholders PASSED [ 97%] 446s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_double_brace_placeholders PASSED [ 97%] 446s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_html PASSED [ 97%] 446s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_multiple_styles_of_placeholder PASSED [ 97%] 446s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified PASSED [ 97%] 446s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_at_placeholders PASSED [ 97%] 446s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_single_brace_placeholders PASSED [ 97%] 446s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_double_brace_placeholders PASSED [ 97%] 446s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_html PASSED [ 97%] 446s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_multiple_styles_of_placeholder PASSED [ 97%] 446s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_chef PASSED [ 97%] 446s tests/translate/tools/test_podebug.py::TestPODebug::test_po_variables PASSED [ 97%] 446s tests/translate/tools/test_podebug.py::TestPODebug::test_xliff_rewrite PASSED [ 97%] 446s tests/translate/tools/test_podebug.py::TestPODebug::test_hash PASSED [ 97%] 446s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_msgid PASSED [ 97%] 446s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_msgstr PASSED [ 97%] 446s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_locations PASSED [ 97%] 446s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_comments PASSED [ 97%] 446s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_locations_with_comment_enabled PASSED [ 97%] 446s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_message_searchstring PASSED [ 97%] 446s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_message_regex_searchstring PASSED [ 97%] 446s tests/translate/tools/test_pogrep.py::TestPOGrep::test_keep_translations PASSED [ 97%] 446s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_normalise PASSED [ 97%] 446s tests/translate/tools/test_pogrep.py::TestXLiffGrep::test_simplegrep PASSED [ 97%] 446s tests/translate/tools/test_pomerge.py::test_str2bool PASSED [ 97%] 446s tests/translate/tools/test_pomerge.py::TestPOMerge::test_mergesore_bad_data PASSED [ 98%] 446s tests/translate/tools/test_pomerge.py::TestPOMerge::test_simplemerge PASSED [ 98%] 446s tests/translate/tools/test_pomerge.py::TestPOMerge::test_simplemerge_no_locations PASSED [ 98%] 446s tests/translate/tools/test_pomerge.py::TestPOMerge::test_replacemerge PASSED [ 98%] 446s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_blanks PASSED [ 98%] 446s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_fuzzies PASSED [ 98%] 446s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_locations PASSED [ 98%] 446s tests/translate/tools/test_pomerge.py::TestPOMerge::test_unit_missing_in_template_with_locations PASSED [ 98%] 446s tests/translate/tools/test_pomerge.py::TestPOMerge::test_unit_missing_in_template_no_locations PASSED [ 98%] 446s tests/translate/tools/test_pomerge.py::TestPOMerge::test_reflowed_source_comments PASSED [ 98%] 446s tests/translate/tools/test_pomerge.py::TestPOMerge::test_comments_with_blank_lines PASSED [ 98%] 446s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merge_dont_delete_unassociated_comments PASSED [ 98%] 446s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_trailing_newlines PASSED [ 98%] 446s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_minor_start_and_end_of_sentence_changes PASSED [ 98%] 446s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_last_entry_in_a_file PASSED [ 98%] 446s tests/translate/tools/test_pomerge.py::TestPOMerge::test_escape_tabs XFAIL [ 98%] 446s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_comments_layout PASSED [ 98%] 446s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merge_dos2unix PASSED [ 98%] 446s tests/translate/tools/test_pomerge.py::TestPOMerge::test_xliff_into_xliff PASSED [ 98%] 446s tests/translate/tools/test_pomerge.py::TestPOMerge::test_po_into_xliff PASSED [ 98%] 446s tests/translate/tools/test_pomerge.py::TestPOMerge::test_xliff_into_po PASSED [ 98%] 446s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_dont_merge_kde_comments_found_in_translation PASSED [ 98%] 446s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_untranslated_with_kde_disambiguation PASSED [ 98%] 446s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_header_entries PASSED [ 98%] 446s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_different_locations PASSED [ 98%] 446s tests/translate/tools/test_posegment.py::TestPOSegment::test_en_ja_simple PASSED [ 98%] 446s tests/translate/tools/test_posegment.py::TestPOSegment::test_en_ja_punctuation PASSED [ 98%] 446s tests/translate/tools/test_posegment.py::TestPOSegment::test_transifex_po PASSED [ 98%] 446s tests/translate/tools/test_posegment.py::TestXLIFFSegment::test_xliff_en_simple PASSED [ 98%] 446s tests/translate/tools/test_posegment.py::TestXLIFFSegment::test_xliff_untranslated PASSED [ 98%] 446s tests/translate/tools/test_posegment.py::TestTMXSegment::test_tmx_en_simple PASSED [ 98%] 446s tests/translate/tools/test_poterminology.py::TestPOTerminology::test_term_extraction PASSED [ 98%] 446s tests/translate/tools/test_poterminology.py::TestPOTerminology::test_unitinfo_stores_minimal_data PASSED [ 98%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_pretranslatepo_blank PASSED [ 98%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_simple PASSED [ 98%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_messages_marked_fuzzy PASSED [ 98%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_plurals_with_fuzzy_matching PASSED [ 98%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgid_change XFAIL [ 98%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_location_change PASSED [ 98%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_location_and_whitespace_change PASSED [ 99%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_accelerator_changes XFAIL [ 99%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_lines_cut_differently XFAIL [ 99%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_automatic_comments_dont_duplicate PASSED [ 99%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_automatic_comments_new_overrides_old PASSED [ 99%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_comments_with_blank_comment_lines PASSED [ 99%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_empty_commentlines PASSED [ 99%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgidcomments PASSED [ 99%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_plurals PASSED [ 99%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_resurrect_obsolete_messages PASSED [ 99%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_comments PASSED [ 99%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_typecomments PASSED [ 99%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_xliff_states PASSED [ 99%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_pretranslatepo_blank PASSED [ 99%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_simple PASSED [ 99%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_messages_marked_fuzzy PASSED [ 99%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_plurals_with_fuzzy_matching PASSED [ 99%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgid_change XFAIL [ 99%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_location_change PASSED [ 99%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_location_and_whitespace_change PASSED [ 99%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_accelerator_changes XFAIL [ 99%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_lines_cut_differently XFAIL [ 99%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_automatic_comments_dont_duplicate PASSED [ 99%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_automatic_comments_new_overrides_old PASSED [ 99%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_comments_with_blank_comment_lines PASSED [ 99%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_empty_commentlines PASSED [ 99%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgidcomments PASSED [ 99%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_plurals PASSED [ 99%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_resurrect_obsolete_messages PASSED [ 99%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_comments PASSED [ 99%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_typecomments PASSED [ 99%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_xliff_states PASSED [ 99%] 446s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_help PASSED [ 99%] 446s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPo::test_single_po PASSED [ 99%] 446s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPo::test_plural_po PASSED [ 99%] 446s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_single_po PASSED [ 99%] 446s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_plural_po PASSED [ 99%] 446s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_help PASSED [ 99%] 446s tests/xliff_conformance/test_xliff_conformance.py::test_open_office_to_xliff PASSED [ 99%] 447s tests/xliff_conformance/test_xliff_conformance.py::test_po_to_xliff PASSED [100%] 447s 447s =============================== warnings summary =============================== 447s ../../../usr/lib/python3/dist-packages/pyparsing/core.py:5637 447s Warning: 'return' in a 'finally' block 447s 447s tests/odf_xliff/test_odf_xliff.py::test_roundtrip 447s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.ZrT223/autopkgtest_tmp/tests/odf_xliff/test_2.odt'> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_convertandroid 447s Warning: unclosed file <_io.TextIOWrapper name='TestAndroid2POCommand_test_convertandroid/en.po' mode='r' encoding='UTF-8'> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder 447s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder 447s Warning: unclosed file <_io.TextIOWrapper name='TestCSV2POCommand_test_columnorder/test.po' mode='r' encoding='UTF-8'> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_pot 447s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_pot/simple.pot'> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_po 447s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_po 447s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_po/simple.po'> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_remove_duplicates 447s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_remove_duplicates/simple.po'> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_xlf 447s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_xlf/simple.xlf'> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder 447s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder 447s Warning: unclosed file <_io.TextIOWrapper name='TestPO2CSVCommand_test_columnorder/test.csv' mode='r' encoding='UTF-8'> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_context 447s Warning: unclosed file <_io.TextIOWrapper name='TestPO2CSVCommand_test_context/test.csv' mode='r' encoding='UTF-8'> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing 447s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey 447s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey 447s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing 447s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey 447s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_amp_no_accesskey 447s Warning: Could not find accesskey for key.accesskey 447s 447s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified 447s Warning: unclosed file <_io.BufferedWriter name='translated/file1.html'> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified 447s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file 447s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file_and_templates_overwritten 447s Warning: unclosed file <_io.BufferedReader name='translation/file1.po'> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_convert 447s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.ZrT223/autopkgtest_tmp/tests/translate/convert/test.idml'> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_with_single_po 447s Warning: unclosed file <_io.BufferedReader name='translation.po'> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert 447s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert_with_multiple_units 447s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert 447s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.ZrT223/autopkgtest_tmp/tests/translate/convert/test.odt'> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_return_array_with_comments 447s Warning: unclosed file <_io.FileIO name='input.oo' mode='rb' closefd=True> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_return_array_with_comments 447s Warning: unclosed file <_io.FileIO name='output.oo' mode='wb' closefd=True> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey 447s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys_missing_accesskey 447s Warning: Could not find accesskey for prop.accesskey 447s 447s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_context 447s Warning: unclosed file <_io.BufferedReader name='test.po'> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_context 447s Warning: unclosed file <_io.TextIOWrapper name='TestPO2TMXCommand_test_context/test.tmx' mode='r' encoding='UTF-8'> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert 447s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert/simple.po'> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf16 447s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_utf16/simple.po'> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 447s Warning: unclosed file <_io.BufferedWriter name='simple.po'> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 447s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 447s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_wrong/simple.po'> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf8 447s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_utf8/simple.po'> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_menuex 447s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_menuex/simple.po'> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_pot 447s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_simple_pot/simple.pot'> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_po 447s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_simple_po/simple.po'> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_remove_duplicates 447s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_remove_duplicates/simple.po'> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_preserve_filename 447s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_preserve_filename/snippet.xlf'> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_pot 447s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_simple_pot/simple.pot'> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_po 447s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_simple_po/simple.po'> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_remove_duplicates 447s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_remove_duplicates/simple.po'> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers 447s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers 447s tests/translate/filters/test_checks.py::test_noaccelerators_only_in_mozilla_checker 447s tests/translate/filters/test_checks.py::test_ensure_accelerators_not_in_target_if_not_in_source 447s Warning: The 'u' type code is deprecated and will be removed in Python 3.16 447s 447s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_save_bundle 447s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_save_bundle 447s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpfw_4c4s2_test.txt'> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_cross_device_save 447s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_cross_device_save 447s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpx75b30yq_crossdevice.txt'> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_replace_project_zip 447s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_replace_project_zip 447s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpk77utt3b_initial.txt'> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 447s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 447s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpbn3lzd34_load_test.txt'> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 447s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 447s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpeszek7q6_load_test.txt'> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 447s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 447s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpr65slzi1_file0.txt'> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 447s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 447s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpyh_xdvek_file1.txt'> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 447s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 447s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpl1sgy90w_file2.txt'> 447s Enable tracemalloc to get traceback where the object was allocated. 447s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 447s 447s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting 447s Warning: DTD parse error: :1:35:FATAL:PARSER:ERR_ENTITY_NOT_FINISHED: xmlParseEntityDecl: entity test.me not terminated 447s :1:35:FATAL:PARSER:ERR_EXT_SUBSET_NOT_FINISHED: Content error in the external subset 447s 447s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting 447s Warning: DTD file '' does not validate 447s 447s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 447s --------------------------- snapshot report summary ---------------------------- 447s 23 snapshots passed. 447s =========================== short test summary info ============================ 447s SKIPPED [1] tests/translate/storage/test_cpo.py:15: could not import 'translate.storage.cpo': gettext PO library not found 447s SKIPPED [1] tests/translate/storage/test_fluent.py:29: could not import 'translate.storage.fluent': No module named 'fluent' 447s SKIPPED [1] tests/translate/filters/test_checks.py:1429: Spell checking for af is not available 447s XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accelerator_keys_not_in_sentence - Not Implemented 447s XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accelerator_keys_not_in_sentence - Not Implemented 447s XFAIL tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_table - https://github.com/miyuchina/mistletoe/issues/244 447s XFAIL tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_propertyless_template - Need to review if we want this behaviour 447s XFAIL tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_propertyless_template - Need to review if we want this behaviour 447s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_change - Not implemented - review if this is even correct 447s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_accelerator_changes - Not Implemented - needs review 447s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_lines_cut_differently - Not Implemented - review if this is even correct 447s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_change - Not implemented - review if this is even correct 447s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_accelerator_changes - Not Implemented - needs review 447s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_lines_cut_differently - Not Implemented - review if this is even correct 447s XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_no_duplicates - This is invalid YAML document 447s XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_no_duplicates - This is invalid YAML document 447s XFAIL tests/translate/filters/test_checks.py::test_acceleratedvariables - Accelerated variables needs a better implementation 447s XFAIL tests/translate/filters/test_checks.py::test_musttranslatewords - FIXME: All fails() tests are not working 447s XFAIL tests/translate/filters/test_checks.py::test_persian_single_and_double_quote_fail_at_the_same_time - Bug #3408 447s XFAIL tests/translate/filters/test_checks.py::test_bengali_mozilla_inverted_xmltags - Bug #3506 447s XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_general_placeables - Test needs fixing, disabled for now 447s XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_xliff_placeables - Test needs fixing, disabled for now 447s XFAIL tests/translate/storage/test_dtd.py::test_quotefordtd_unimplemented_cases - Not Implemented 447s XFAIL tests/translate/storage/test_dtd.py::test_unquotefromdtd_unimplemented_cases - Not Implemented 447s XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_comment_following - Not Implemented 447s XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting - Not Implemented 447s XFAIL tests/translate/storage/test_omegat.py::TestOmegaTFile::test_extensions - This doesn't work, due to two store classes handling different extensions, but factory listing it as one supported file type 447s XFAIL tests/translate/storage/test_po.py::TestPOFile::test_kde_plurals - Not Implemented 447s XFAIL tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo 447s XFAIL tests/translate/storage/test_properties.py::TestXWikiFullPage::test_remove - removal not working in full page 447s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_plurals - Not Implemented 447s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo 447s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_typecomment - Not sure if this can not be parsed gracefully 447s XFAIL tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_note_sanity - Not Implemented 447s XFAIL tests/translate/tools/test_pocount.py::TestCount::test_plurals_kde - Support commented out pending removal 447s XFAIL tests/translate/tools/test_pomerge.py::TestPOMerge::test_escape_tabs - Not Implemented 447s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgid_change - Not Implemented 447s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_accelerator_changes - Not Implemented 447s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_lines_cut_differently - Not Implemented 447s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgid_change - Not Implemented 447s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_accelerator_changes - Not Implemented 447s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_lines_cut_differently - Not Implemented 447s ========== 3862 passed, 3 skipped, 39 xfailed, 70 warnings in 10.86s =========== 447s ============================= test session starts ============================== 447s platform linux -- Python 3.13.11, pytest-9.0.2, pluggy-1.6.0 -- /usr/bin/python3.13 447s cachedir: .pytest_cache 447s rootdir: /tmp/autopkgtest.ZrT223/autopkgtest_tmp 447s plugins: typeguard-4.4.4, syrupy-5.0.0 450s collecting ... collected 3902 items / 2 skipped 450s 450s tests/odf_xliff/test_odf_xliff.py::test_odf2xliff PASSED [ 0%] 450s tests/odf_xliff/test_odf_xliff.py::test_roundtrip PASSED [ 0%] 450s tests/odf_xliff/test_odf_xliff.py::test_odf2xliff2_inline PASSED [ 0%] 450s tests/translate/convert/test_accesskey.py::test_get_label_and_accesskey PASSED [ 0%] 450s tests/translate/convert/test_accesskey.py::test_extract_bad_accesskeys PASSED [ 0%] 450s tests/translate/convert/test_accesskey.py::test_ignore_entities PASSED [ 0%] 450s tests/translate/convert/test_accesskey.py::test_alternate_accesskey_marker PASSED [ 0%] 450s tests/translate/convert/test_accesskey.py::test_unicode PASSED [ 0%] 450s tests/translate/convert/test_accesskey.py::test_numeric PASSED [ 0%] 450s tests/translate/convert/test_accesskey.py::test_empty_string PASSED [ 0%] 450s tests/translate/convert/test_accesskey.py::test_end_of_string PASSED [ 0%] 450s tests/translate/convert/test_accesskey.py::test_combine_label_accesskey PASSED [ 0%] 450s tests/translate/convert/test_accesskey.py::test_combine_label_accesskey_different_capitals PASSED [ 0%] 450s tests/translate/convert/test_accesskey.py::test_uncombinable PASSED [ 0%] 450s tests/translate/convert/test_accesskey.py::test_accesskey_already_in_text PASSED [ 0%] 450s tests/translate/convert/test_android2po.py::TestAndroid2PO::test_no_template_units PASSED [ 0%] 450s tests/translate/convert/test_android2po.py::TestAndroid2PO::test_template_units PASSED [ 0%] 450s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_no_template_units PASSED [ 0%] 450s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_template_units PASSED [ 0%] 450s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_help PASSED [ 0%] 450s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_convertandroid PASSED [ 0%] 450s tests/translate/convert/test_convert.py::TestConvertCommand::test_help PASSED [ 0%] 450s tests/translate/convert/test_csv2po.py::test_replacestrings PASSED [ 0%] 450s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_simpleentity PASSED [ 0%] 450s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_simpleentity_with_template PASSED [ 0%] 450s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_newlines PASSED [ 0%] 450s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_tabs PASSED [ 0%] 450s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_quotes PASSED [ 0%] 450s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_empties PASSED [ 0%] 450s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_kdecomment PASSED [ 0%] 450s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_escaped_newlines PASSED [ 0%] 450s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_line_numbers_in_errors PASSED [ 0%] 450s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_simpleentity PASSED [ 0%] 450s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_simpleentity_with_template PASSED [ 0%] 450s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_newlines PASSED [ 0%] 450s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_tabs PASSED [ 0%] 450s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_quotes PASSED [ 0%] 450s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_empties PASSED [ 0%] 450s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_kdecomment PASSED [ 0%] 450s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_escaped_newlines PASSED [ 1%] 450s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_line_numbers_in_errors PASSED [ 1%] 450s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_help PASSED [ 1%] 450s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder PASSED [ 1%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_simpleentity PASSED [ 1%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_convertdtd PASSED [ 1%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_apos PASSED [ 1%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_quotes PASSED [ 1%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_emptyentity PASSED [ 1%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_two_empty_entities PASSED [ 1%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_emptyentity_translated PASSED [ 1%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_localisaton_note_simple PASSED [ 1%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_localisation_note_merge PASSED [ 1%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_simple PASSED [ 1%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_label PASSED [ 1%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_onlyentity PASSED [ 1%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_commentedout PASSED [ 1%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_spaces_at_start_of_dtd_lines PASSED [ 1%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accesskeys_folding PASSED [ 1%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accesskeys_mismatch PASSED [ 1%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_carriage_return_in_multiline_dtd PASSED [ 1%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_multiline_with_blankline PASSED [ 1%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_multiline_closing_quotes PASSED [ 1%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_preserving_spaces PASSED [ 1%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_escaping_newline_tabs PASSED [ 1%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_abandoned_accelerator PASSED [ 1%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_unassociable_accelerator PASSED [ 1%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_changed_labels_and_accelerators PASSED [ 1%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accelerator_keys_not_in_sentence XFAIL [ 1%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_exclude_entity_includes PASSED [ 1%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_linewraps PASSED [ 1%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_merging_with_new_untranslated PASSED [ 1%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_merge_without_template PASSED [ 1%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_simpleentity PASSED [ 1%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_convertdtd PASSED [ 1%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_apos PASSED [ 1%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_quotes PASSED [ 1%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_emptyentity PASSED [ 1%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_two_empty_entities PASSED [ 1%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_emptyentity_translated PASSED [ 2%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_localisaton_note_simple PASSED [ 2%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_localisation_note_merge PASSED [ 2%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_simple PASSED [ 2%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_label PASSED [ 2%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_onlyentity PASSED [ 2%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_commentedout PASSED [ 2%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_spaces_at_start_of_dtd_lines PASSED [ 2%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accesskeys_folding PASSED [ 2%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accesskeys_mismatch PASSED [ 2%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_carriage_return_in_multiline_dtd PASSED [ 2%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_multiline_with_blankline PASSED [ 2%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_multiline_closing_quotes PASSED [ 2%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_preserving_spaces PASSED [ 2%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_escaping_newline_tabs PASSED [ 2%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_abandoned_accelerator PASSED [ 2%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_unassociable_accelerator PASSED [ 2%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_changed_labels_and_accelerators PASSED [ 2%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accelerator_keys_not_in_sentence XFAIL [ 2%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_exclude_entity_includes PASSED [ 2%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_linewraps PASSED [ 2%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_merging_with_new_untranslated PASSED [ 2%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_merge_without_template PASSED [ 2%] 450s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_help PASSED [ 2%] 450s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_defaults PASSED [ 2%] 450s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_root_name PASSED [ 2%] 450s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_value_name PASSED [ 2%] 450s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_key PASSED [ 2%] 450s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_default_namespace PASSED [ 2%] 450s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_namespace_prefix PASSED [ 2%] 450s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_all_parameters PASSED [ 2%] 450s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_empty_file_is_empty_store PASSED [ 2%] 450s tests/translate/convert/test_flatxml2po.py::TestFlatXML2POCommand::test_help PASSED [ 2%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_extract_lang_attribute_from_html_tag PASSED [ 2%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_do_not_extract_lang_attribute_from_tags_other_than_html PASSED [ 2%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_title PASSED [ 2%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_title_with_linebreak PASSED [ 2%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta PASSED [ 2%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p PASSED [ 2%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_br PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_linebreak PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_linebreak_and_embedded_br PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_uppercase_html PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_div PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_div_with_linebreaks PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_a PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_a_with_linebreak PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_sequence_of_anchor_elements PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_img PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_img_empty PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_img_inside_a PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_table_summary PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_simple PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_complex PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_empty PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_address PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_headings PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_headings_with_linebreaks PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_dt PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_dd PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_span PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_ul PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_nested_lists PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_duplicates PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_multiline_reflow PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_nested_tags PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_carriage_return PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_encoding_latin1 PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_strip_html PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_entityrefs_in_text PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_entityrefs_in_attributes PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_charrefs PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_multiple_php PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php_multiline PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php_with_embedded_html PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_comments PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_attribute_without_value PASSED [ 3%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_data_translate_ignore_attribute PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_translate_comment_directives PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta_social_media_tags PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta_non_translatable_tags_not_extracted PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta_mixed_translatable_and_non_translatable PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_data_translate_comment_attribute PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_data_translate_comment_without_keepcomments PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2PO::test_text_after_empty_tags PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_extract_lang_attribute_from_html_tag PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_do_not_extract_lang_attribute_from_tags_other_than_html PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_title PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_title_with_linebreak PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_br PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_linebreak PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_linebreak_and_embedded_br PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_uppercase_html PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_div PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_div_with_linebreaks PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_a PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_a_with_linebreak PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_sequence_of_anchor_elements PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_img PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_img_empty PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_img_inside_a PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_table_summary PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_simple PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_complex PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_empty PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_address PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_headings PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_headings_with_linebreaks PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_dt PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_dd PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_span PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_ul PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_nested_lists PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_duplicates PASSED [ 4%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multiline_reflow PASSED [ 5%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_nested_tags PASSED [ 5%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_carriage_return PASSED [ 5%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_encoding_latin1 PASSED [ 5%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_strip_html PASSED [ 5%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_entityrefs_in_text PASSED [ 5%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_entityrefs_in_attributes PASSED [ 5%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_charrefs PASSED [ 5%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php PASSED [ 5%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multiple_php PASSED [ 5%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php_multiline PASSED [ 5%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php_with_embedded_html PASSED [ 5%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_comments PASSED [ 5%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_attribute_without_value PASSED [ 5%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_data_translate_ignore_attribute PASSED [ 5%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_translate_comment_directives PASSED [ 5%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta_social_media_tags PASSED [ 5%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta_non_translatable_tags_not_extracted PASSED [ 5%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta_mixed_translatable_and_non_translatable PASSED [ 5%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_data_translate_comment_attribute PASSED [ 5%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_data_translate_comment_without_keepcomments PASSED [ 5%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_text_after_empty_tags PASSED [ 5%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_help PASSED [ 5%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_single PASSED [ 5%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_onefile PASSED [ 5%] 450s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_onefile_to_stdout PASSED [ 5%] 450s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_convert_empty_file PASSED [ 5%] 450s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_no_translations PASSED [ 5%] 450s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_summary PASSED [ 5%] 450s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_description PASSED [ 5%] 450s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_location PASSED [ 5%] 450s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_comment PASSED [ 5%] 450s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_no_template_duplicate_style PASSED [ 5%] 450s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge PASSED [ 5%] 450s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_misaligned_files PASSED [ 5%] 450s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_blank_msgstr PASSED [ 5%] 450s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_duplicate_style PASSED [ 5%] 450s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_convert_empty_file PASSED [ 5%] 450s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_no_translations PASSED [ 5%] 450s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_summary PASSED [ 6%] 450s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_description PASSED [ 6%] 450s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_location PASSED [ 6%] 450s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_comment PASSED [ 6%] 450s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_no_template_duplicate_style PASSED [ 6%] 450s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge PASSED [ 6%] 450s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_misaligned_files PASSED [ 6%] 450s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_blank_msgstr PASSED [ 6%] 450s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_duplicate_style PASSED [ 6%] 450s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_help PASSED [ 6%] 450s tests/translate/convert/test_idml2po.py::TestIDML2POCommand::test_help PASSED [ 6%] 450s tests/translate/convert/test_idml2po.py::TestIDML2POCommand::test_convert PASSED [ 6%] 450s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_empty_file PASSED [ 6%] 450s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_no_translation PASSED [ 6%] 450s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_simple PASSED [ 6%] 450s tests/translate/convert/test_ini2po.py::TestIni2PO::test_no_duplicates PASSED [ 6%] 450s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_simple PASSED [ 6%] 450s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_misaligned_files PASSED [ 6%] 450s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_blank_msgstr PASSED [ 6%] 450s tests/translate/convert/test_ini2po.py::TestIni2PO::test_dialects_inno PASSED [ 6%] 450s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_empty_file PASSED [ 6%] 450s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_no_translation PASSED [ 6%] 450s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_simple PASSED [ 6%] 450s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_no_duplicates PASSED [ 6%] 450s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_simple PASSED [ 6%] 450s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_misaligned_files PASSED [ 6%] 450s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_blank_msgstr PASSED [ 6%] 450s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_dialects_inno PASSED [ 6%] 450s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_help PASSED [ 6%] 450s tests/translate/convert/test_json2po.py::TestJson2PO::test_simple PASSED [ 6%] 450s tests/translate/convert/test_json2po.py::TestJson2PO::test_three_same_keys PASSED [ 6%] 450s tests/translate/convert/test_json2po.py::TestJson2PO::test_filter PASSED [ 6%] 450s tests/translate/convert/test_json2po.py::TestJson2PO::test_multiple_units PASSED [ 6%] 450s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_simple PASSED [ 6%] 450s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_three_same_keys PASSED [ 6%] 450s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_filter PASSED [ 6%] 450s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_multiple_units PASSED [ 6%] 450s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_help PASSED [ 6%] 450s tests/translate/convert/test_md2po.py::TestMD2PO::test_help PASSED [ 6%] 450s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_file_with_multifile_single PASSED [ 7%] 450s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_file_with_multifile_onefile PASSED [ 7%] 450s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_directory_with_multifile_single PASSED [ 7%] 450s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_directory_with_multifile_onefile PASSED [ 7%] 450s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_frontmatter PASSED [ 7%] 450s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_translation_ignore_sections PASSED [ 7%] 450s tests/translate/convert/test_moz2po.py::TestMoz2PO::test_duplicate_locations PASSED [ 7%] 450s tests/translate/convert/test_moz2po.py::TestMoz2POCommand::test_duplicate_locations PASSED [ 7%] 450s tests/translate/convert/test_moz2po.py::TestMoz2POCommand::test_help PASSED [ 7%] 450s tests/translate/convert/test_mozfunny2prop.py::TestInc2PO::test_simpleentry PASSED [ 7%] 450s tests/translate/convert/test_mozfunny2prop.py::TestInc2PO::test_uncomment_contributors PASSED [ 7%] 450s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_convert_empty PASSED [ 7%] 450s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_string PASSED [ 7%] 450s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_merge PASSED [ 7%] 450s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_entry PASSED [ 7%] 450s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_comment PASSED [ 7%] 450s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_meta_tags PASSED [ 7%] 450s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_keep_duplicates PASSED [ 7%] 450s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_drop_duplicates PASSED [ 7%] 450s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_convert_empty PASSED [ 7%] 450s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_string PASSED [ 7%] 450s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_merge PASSED [ 7%] 450s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_entry PASSED [ 7%] 450s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_comment PASSED [ 7%] 450s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_meta_tags PASSED [ 7%] 450s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_keep_duplicates PASSED [ 7%] 450s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_drop_duplicates PASSED [ 7%] 450s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_help PASSED [ 7%] 450s tests/translate/convert/test_ods2xliff.py::TestODF2XLIFFCommand::test_help PASSED [ 7%] 450s tests/translate/convert/test_ods2xliff.py::TestODF2XLIFFCommand::test_convert PASSED [ 7%] 450s tests/translate/convert/test_oo2po.py::TestOO2PO::test_simpleentity PASSED [ 7%] 450s tests/translate/convert/test_oo2po.py::TestOO2PO::test_escapes PASSED [ 7%] 450s tests/translate/convert/test_oo2po.py::TestOO2PO::test_roundtrip_escape PASSED [ 7%] 450s tests/translate/convert/test_oo2po.py::TestOO2PO::test_roundtrip_whitespaceonly PASSED [ 7%] 450s tests/translate/convert/test_oo2po.py::TestOO2PO::test_double_escapes PASSED [ 7%] 450s tests/translate/convert/test_oo2po.py::TestOO2PO::test_escapes_helpcontent2 PASSED [ 7%] 450s tests/translate/convert/test_oo2po.py::TestOO2PO::test_msgid_bug_error_address PASSED [ 7%] 450s tests/translate/convert/test_oo2po.py::TestOO2PO::test_x_comment_inclusion PASSED [ 7%] 450s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simpleentity PASSED [ 7%] 450s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_escapes PASSED [ 8%] 450s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_roundtrip_escape PASSED [ 8%] 450s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_roundtrip_whitespaceonly PASSED [ 8%] 450s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_double_escapes PASSED [ 8%] 450s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_escapes_helpcontent2 PASSED [ 8%] 450s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_msgid_bug_error_address PASSED [ 8%] 450s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_x_comment_inclusion PASSED [ 8%] 450s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_help PASSED [ 8%] 450s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_preserve_filename PASSED [ 8%] 450s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_pot PASSED [ 8%] 450s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_po PASSED [ 8%] 450s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_onefile_nonrecursive PASSED [ 8%] 450s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_remove_duplicates PASSED [ 8%] 450s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_simpleentity PASSED [ 8%] 450s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_escapes PASSED [ 8%] 450s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_roundtrip_escape PASSED [ 8%] 450s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_roundtrip_whitespaceonly PASSED [ 8%] 450s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_double_escapes PASSED [ 8%] 450s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_escapes_helpcontent2 PASSED [ 8%] 450s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_x_comment_inclusion PASSED [ 8%] 450s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_msgid_bug_error_address PASSED [ 8%] 450s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simpleentity PASSED [ 8%] 450s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_escapes PASSED [ 8%] 450s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_roundtrip_escape PASSED [ 8%] 450s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_roundtrip_whitespaceonly PASSED [ 8%] 450s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_double_escapes PASSED [ 8%] 450s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_escapes_helpcontent2 PASSED [ 8%] 450s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_x_comment_inclusion PASSED [ 8%] 450s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_msgid_bug_error_address PASSED [ 8%] 450s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_help PASSED [ 8%] 450s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_preserve_filename PASSED [ 8%] 450s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_xlf PASSED [ 8%] 450s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_po PASSED [ 8%] 450s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_onefile_nonrecursive PASSED [ 8%] 450s tests/translate/convert/test_php2po.py::TestPhp2PO::test_simpleentry PASSED [ 8%] 450s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphp PASSED [ 8%] 450s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphptemplate PASSED [ 8%] 450s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphpmissing PASSED [ 8%] 450s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphpempty PASSED [ 8%] 450s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unicode PASSED [ 9%] 450s tests/translate/convert/test_php2po.py::TestPhp2PO::test_multiline PASSED [ 9%] 450s tests/translate/convert/test_php2po.py::TestPhp2PO::test_comments_before PASSED [ 9%] 450s tests/translate/convert/test_php2po.py::TestPhp2PO::test_emptyentry PASSED [ 9%] 450s tests/translate/convert/test_php2po.py::TestPhp2PO::test_hash_comment_with_equals PASSED [ 9%] 451s tests/translate/convert/test_php2po.py::TestPhp2PO::test_emptyentry_translated PASSED [ 9%] 451s tests/translate/convert/test_php2po.py::TestPhp2PO::test_newlines_in_value PASSED [ 9%] 451s tests/translate/convert/test_php2po.py::TestPhp2PO::test_spaces_in_name PASSED [ 9%] 451s tests/translate/convert/test_php2po.py::TestPhp2PO::test_named_array PASSED [ 9%] 451s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unnamed_array PASSED [ 9%] 451s tests/translate/convert/test_php2po.py::TestPhp2PO::test_named_nested_arrays PASSED [ 9%] 451s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unnamed_nested_arrays PASSED [ 9%] 451s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_simpleentry PASSED [ 9%] 451s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphp PASSED [ 9%] 451s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphptemplate PASSED [ 9%] 451s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphpmissing PASSED [ 9%] 451s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphpempty PASSED [ 9%] 451s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unicode PASSED [ 9%] 451s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_multiline PASSED [ 9%] 451s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_comments_before PASSED [ 9%] 451s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_emptyentry PASSED [ 9%] 451s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_hash_comment_with_equals PASSED [ 9%] 451s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_emptyentry_translated PASSED [ 9%] 451s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_newlines_in_value PASSED [ 9%] 451s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_spaces_in_name PASSED [ 9%] 451s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_named_array PASSED [ 9%] 451s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unnamed_array PASSED [ 9%] 451s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_named_nested_arrays PASSED [ 9%] 451s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unnamed_nested_arrays PASSED [ 9%] 451s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_help PASSED [ 9%] 451s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_simpleentity PASSED [ 9%] 451s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_multiline PASSED [ 9%] 451s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapednewlines PASSED [ 9%] 451s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedtabs PASSED [ 9%] 451s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedquotes PASSED [ 9%] 451s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedescape PASSED [ 9%] 451s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_singlequotes PASSED [ 9%] 451s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_empties PASSED [ 9%] 451s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_kdecomments PASSED [ 9%] 451s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_simpleentity PASSED [ 10%] 451s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_multiline PASSED [ 10%] 451s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapednewlines PASSED [ 10%] 451s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedtabs PASSED [ 10%] 451s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedquotes PASSED [ 10%] 451s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedescape PASSED [ 10%] 451s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_singlequotes PASSED [ 10%] 451s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_empties PASSED [ 10%] 451s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_kdecomments PASSED [ 10%] 451s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_help PASSED [ 10%] 451s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder PASSED [ 10%] 451s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_context PASSED [ 10%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_joinlines PASSED [ 10%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_escapedstr PASSED [ 10%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_missingaccesskey PASSED [ 10%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskeycase PASSED [ 10%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_types PASSED [ 10%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing PASSED [ 10%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey PASSED [ 10%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_source_no_amp_in_target PASSED [ 10%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_both_amp_and_accesskey PASSED [ 10%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey PASSED [ 10%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_entities_two PASSED [ 10%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_entities PASSED [ 10%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_comments_translator PASSED [ 10%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_retains_hashprefix PASSED [ 10%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_convertdtd PASSED [ 10%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_untranslated_with_template PASSED [ 10%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_untranslated_without_template PASSED [ 10%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_blank_source PASSED [ 10%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_newlines_escapes PASSED [ 10%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_simple PASSED [ 10%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_escape PASSED [ 10%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_quotes PASSED [ 10%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_amp PASSED [ 10%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_merging_entries_with_spaces_removed PASSED [ 10%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_preserving_spaces PASSED [ 10%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_preserving_spaces_after_value PASSED [ 10%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_comments PASSED [ 10%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_duplicates PASSED [ 11%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_joinlines PASSED [ 11%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_escapedstr PASSED [ 11%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_missingaccesskey PASSED [ 11%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskeycase PASSED [ 11%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_types PASSED [ 11%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing PASSED [ 11%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey PASSED [ 11%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_source_no_amp_in_target PASSED [ 11%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_both_amp_and_accesskey PASSED [ 11%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_amp_no_accesskey PASSED [ 11%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_entities_two PASSED [ 11%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_entities PASSED [ 11%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_comments_translator PASSED [ 11%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_retains_hashprefix PASSED [ 11%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_convertdtd PASSED [ 11%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_untranslated_with_template PASSED [ 11%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_untranslated_without_template PASSED [ 11%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_blank_source PASSED [ 11%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_newlines_escapes PASSED [ 11%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_simple PASSED [ 11%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_escape PASSED [ 11%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_quotes PASSED [ 11%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_amp PASSED [ 11%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_merging_entries_with_spaces_removed PASSED [ 11%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_preserving_spaces PASSED [ 11%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_preserving_spaces_after_value PASSED [ 11%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_comments PASSED [ 11%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_duplicates PASSED [ 11%] 451s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_help PASSED [ 11%] 451s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_defaults PASSED [ 11%] 451s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_root_name PASSED [ 11%] 451s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_value_name PASSED [ 11%] 451s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_key PASSED [ 11%] 451s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_default_namespace PASSED [ 11%] 451s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_namespace_prefix PASSED [ 11%] 451s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_indent_eight PASSED [ 11%] 451s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_noindent PASSED [ 11%] 451s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXMLCommand::test_help PASSED [ 11%] 451s tests/translate/convert/test_po2html.py::TestPO2Html::test_simple PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2Html::test_linebreaks PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2Html::test_replace_substrings PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_outside_translatable_content PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_within_translatable_content_not_embedded PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_embedded_within_translatable_content PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_without_value PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2Html::test_entities PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2Html::test_entities_template_vs_po_mismatch PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2Html::test_utf8_non_ascii_characters PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2Html::test_custom_entities_preserved PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2Html::test_escapes PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_auto_rtl PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_auto_ltr PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_added_when_missing PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_not_changed_without_lang_translation PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_translated PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_untranslated PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_fuzzy PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2Html::test_untranslated_attributes PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2Html::test_button_translation PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2Html::test_lang_attribute_only_on_html_tag PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2Html::test_data_translate_ignore_preserved PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2Html::test_translate_comment_directives_preserved PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2Html::test_data_translate_ignore_with_translation_in_po PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2Html::test_translate_comment_with_translation_in_po PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2Html::test_meta_social_media_tags_translation PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2Html::test_meta_non_translatable_tags_preserved PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_simple PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_linebreaks PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_replace_substrings PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_outside_translatable_content PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_within_translatable_content_not_embedded PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_embedded_within_translatable_content PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_without_value PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_entities PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_entities_template_vs_po_mismatch PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_utf8_non_ascii_characters PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_custom_entities_preserved PASSED [ 12%] 451s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_escapes PASSED [ 13%] 451s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_auto_rtl PASSED [ 13%] 451s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_auto_ltr PASSED [ 13%] 451s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_added_when_missing PASSED [ 13%] 451s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_not_changed_without_lang_translation PASSED [ 13%] 451s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_translated PASSED [ 13%] 451s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_untranslated PASSED [ 13%] 451s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_fuzzy PASSED [ 13%] 451s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_untranslated_attributes PASSED [ 13%] 451s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_button_translation PASSED [ 13%] 451s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_lang_attribute_only_on_html_tag PASSED [ 13%] 451s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_data_translate_ignore_preserved PASSED [ 13%] 451s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_translate_comment_directives_preserved PASSED [ 13%] 451s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_data_translate_ignore_with_translation_in_po PASSED [ 13%] 451s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_translate_comment_with_translation_in_po PASSED [ 13%] 451s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_meta_social_media_tags_translation PASSED [ 13%] 451s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_meta_non_translatable_tags_preserved PASSED [ 13%] 451s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_help PASSED [ 13%] 451s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_individual_files PASSED [ 13%] 451s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_fully_recursive PASSED [ 13%] 451s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_input_specified PASSED [ 13%] 451s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified PASSED [ 13%] 451s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_output_specified PASSED [ 13%] 451s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file PASSED [ 13%] 451s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file_and_templates_overwritten PASSED [ 13%] 451s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_empty_file PASSED [ 13%] 451s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_summary PASSED [ 13%] 451s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_description PASSED [ 13%] 451s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_location PASSED [ 13%] 451s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_comment PASSED [ 13%] 451s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_complex_icalendar PASSED [ 13%] 451s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_skip_fuzzy PASSED [ 13%] 451s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_include_fuzzy PASSED [ 13%] 451s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_no_template PASSED [ 13%] 451s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_template_location_not_in_source_file PASSED [ 13%] 451s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_completion_below_threshold PASSED [ 13%] 451s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_completion_above_threshold PASSED [ 13%] 451s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_empty_file PASSED [ 13%] 451s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_summary PASSED [ 13%] 451s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_description PASSED [ 14%] 451s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_location PASSED [ 14%] 451s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_comment PASSED [ 14%] 451s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_complex_icalendar PASSED [ 14%] 451s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_skip_fuzzy PASSED [ 14%] 451s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_include_fuzzy PASSED [ 14%] 451s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_no_template PASSED [ 14%] 451s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_template_location_not_in_source_file PASSED [ 14%] 451s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_completion_below_threshold PASSED [ 14%] 451s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_completion_above_threshold PASSED [ 14%] 451s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_help PASSED [ 14%] 451s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_help PASSED [ 14%] 451s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_convert PASSED [ 14%] 451s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_no_templates PASSED [ 14%] 451s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_simple PASSED [ 14%] 451s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_space_preservation PASSED [ 14%] 451s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_blank_entries PASSED [ 14%] 451s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_fuzzy PASSED [ 14%] 451s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_propertyless_template PASSED [ 14%] 451s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_empty_value PASSED [ 14%] 451s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_dialects_inno PASSED [ 14%] 451s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_misaligned_files PASSED [ 14%] 451s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_completion_below_threshold PASSED [ 14%] 451s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_completion_above_threshold PASSED [ 14%] 451s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_no_fuzzy PASSED [ 14%] 451s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_allow_fuzzy PASSED [ 14%] 451s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_missing_source PASSED [ 14%] 451s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_repeated_locations PASSED [ 14%] 451s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_no_templates PASSED [ 14%] 451s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_simple PASSED [ 14%] 451s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_space_preservation PASSED [ 14%] 451s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_blank_entries PASSED [ 14%] 451s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_fuzzy PASSED [ 14%] 451s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_propertyless_template PASSED [ 14%] 451s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_empty_value PASSED [ 14%] 451s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_dialects_inno PASSED [ 14%] 451s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_misaligned_files PASSED [ 14%] 451s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_completion_below_threshold PASSED [ 14%] 451s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_completion_above_threshold PASSED [ 14%] 451s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_no_fuzzy PASSED [ 15%] 451s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_allow_fuzzy PASSED [ 15%] 451s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_missing_source PASSED [ 15%] 451s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_repeated_locations PASSED [ 15%] 451s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_help PASSED [ 15%] 451s tests/translate/convert/test_po2json.py::TestPO2JSON::test_basic PASSED [ 15%] 451s tests/translate/convert/test_po2json.py::TestPO2JSON::test_ordering_serialize PASSED [ 15%] 451s tests/translate/convert/test_po2json.py::TestPO2JSON::test_dont_use_empty_translation PASSED [ 15%] 451s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_false_remove_untranslated_false PASSED [ 15%] 451s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_false_remove_untranslated_true PASSED [ 15%] 451s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_true_remove_untranslated_false PASSED [ 15%] 451s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_true_remove_untranslated_true PASSED [ 15%] 451s tests/translate/convert/test_po2md.py::TestPO2MD::test_help PASSED [ 15%] 451s tests/translate/convert/test_po2md.py::TestPO2MD::test_single_markdown_file_with_single_po PASSED [ 15%] 451s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_with_single_po PASSED [ 15%] 451s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_and_directory_of_po_files PASSED [ 15%] 451s tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_table XFAIL [ 15%] 451s tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_frontmatter PASSED [ 15%] 451s tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_translation_ignore_sections PASSED [ 15%] 451s tests/translate/convert/test_po2moz.py::TestPO2MozCommand::test_help PASSED [ 15%] 451s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_empty PASSED [ 15%] 451s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_simple PASSED [ 15%] 451s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_comment PASSED [ 15%] 451s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_ok_marker PASSED [ 15%] 451s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_completion_below_threshold PASSED [ 15%] 451s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_completion_above_threshold PASSED [ 15%] 451s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_skip_non_translatable_input PASSED [ 15%] 451s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_no_fuzzy PASSED [ 15%] 451s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_allow_fuzzy PASSED [ 15%] 451s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_mark_active PASSED [ 15%] 451s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_empty PASSED [ 15%] 451s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_simple PASSED [ 15%] 451s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_comment PASSED [ 15%] 451s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_ok_marker PASSED [ 15%] 451s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_completion_below_threshold PASSED [ 15%] 451s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_completion_above_threshold PASSED [ 15%] 451s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_skip_non_translatable_input PASSED [ 15%] 451s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_no_fuzzy PASSED [ 15%] 451s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_allow_fuzzy PASSED [ 15%] 451s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_mark_active PASSED [ 16%] 451s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_help PASSED [ 16%] 451s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_help PASSED [ 16%] 451s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert PASSED [ 16%] 451s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert_with_multiple_units PASSED [ 16%] 451s tests/translate/convert/test_po2oo.py::TestPO2OO::test_convertoo PASSED [ 16%] 451s tests/translate/convert/test_po2oo.py::TestPO2OO::test_pofilter PASSED [ 16%] 451s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_simple PASSED [ 16%] 451s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_escape PASSED [ 16%] 451s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_quotes PASSED [ 16%] 451s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_spaces PASSED [ 16%] 451s tests/translate/convert/test_po2oo.py::TestPO2OO::test_default_timestamp PASSED [ 16%] 451s tests/translate/convert/test_po2oo.py::TestPO2OO::test_escape_conversion PASSED [ 16%] 451s tests/translate/convert/test_po2oo.py::TestPO2OO::test_helpcontent_escapes PASSED [ 16%] 451s tests/translate/convert/test_po2oo.py::TestPO2OO::test_helpcontent_escapes2 PASSED [ 16%] 451s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_convertoo PASSED [ 16%] 451s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_pofilter PASSED [ 16%] 451s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_simple PASSED [ 16%] 451s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_escape PASSED [ 16%] 451s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_quotes PASSED [ 16%] 451s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_spaces PASSED [ 16%] 451s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_default_timestamp PASSED [ 16%] 451s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_escape_conversion PASSED [ 16%] 451s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_helpcontent_escapes PASSED [ 16%] 451s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_helpcontent_escapes2 PASSED [ 16%] 451s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_help PASSED [ 16%] 451s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp PASSED [ 16%] 451s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp_notemplate PASSED [ 16%] 451s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp_empty_template PASSED [ 16%] 451s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_simple PASSED [ 16%] 451s tests/translate/convert/test_po2php.py::TestPO2Php::test_space_preservation PASSED [ 16%] 451s tests/translate/convert/test_po2php.py::TestPO2Php::test_preserve_unused_statement PASSED [ 16%] 451s tests/translate/convert/test_po2php.py::TestPO2Php::test_not_translated_multiline PASSED [ 16%] 451s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_blank_entries PASSED [ 16%] 451s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_fuzzy PASSED [ 16%] 451s tests/translate/convert/test_po2php.py::TestPO2Php::test_locations_with_spaces PASSED [ 16%] 451s tests/translate/convert/test_po2php.py::TestPO2Php::test_inline_comments PASSED [ 16%] 451s tests/translate/convert/test_po2php.py::TestPO2Php::test_block_comments PASSED [ 16%] 451s tests/translate/convert/test_po2php.py::TestPO2Php::test_named_variables PASSED [ 16%] 451s tests/translate/convert/test_po2php.py::TestPO2Php::test_multiline PASSED [ 17%] 451s tests/translate/convert/test_po2php.py::TestPO2Php::test_hash_comment PASSED [ 17%] 451s tests/translate/convert/test_po2php.py::TestPO2Php::test_arrays PASSED [ 17%] 451s tests/translate/convert/test_po2php.py::TestPO2Php::test_named_nested_array PASSED [ 17%] 451s tests/translate/convert/test_po2php.py::TestPO2Php::test_unnamed_nested_arrays PASSED [ 17%] 451s tests/translate/convert/test_po2php.py::TestPO2Php::test_return_array_with_comments PASSED [ 17%] 451s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_propertyless_template XFAIL [ 17%] 451s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp PASSED [ 17%] 451s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp_notemplate PASSED [ 17%] 451s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp_empty_template PASSED [ 17%] 451s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_simple PASSED [ 17%] 451s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_space_preservation PASSED [ 17%] 451s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_preserve_unused_statement PASSED [ 17%] 451s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_not_translated_multiline PASSED [ 17%] 451s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_blank_entries PASSED [ 17%] 451s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_fuzzy PASSED [ 17%] 451s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_locations_with_spaces PASSED [ 17%] 451s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_inline_comments PASSED [ 17%] 451s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_block_comments PASSED [ 17%] 451s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_named_variables PASSED [ 17%] 451s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_multiline PASSED [ 17%] 451s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_hash_comment PASSED [ 17%] 451s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_arrays PASSED [ 17%] 451s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_named_nested_array PASSED [ 17%] 451s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_unnamed_nested_arrays PASSED [ 17%] 451s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_return_array_with_comments PASSED [ 17%] 451s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_propertyless_template XFAIL [ 17%] 451s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_help PASSED [ 17%] 451s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_simple PASSED [ 17%] 451s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated PASSED [ 17%] 451s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_hard_newlines_preserved PASSED [ 17%] 451s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_space_preservation PASSED [ 17%] 451s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_no_value PASSED [ 17%] 451s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_no_separator PASSED [ 17%] 451s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_value_no_key PASSED [ 17%] 451s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_blank_entries PASSED [ 17%] 451s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_fuzzy PASSED [ 17%] 451s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys PASSED [ 17%] 451s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey PASSED [ 17%] 451s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_margin_whitespace PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_all_whitespace PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_propertyless_template PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_delimiters PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_empty_value PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_personalities PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_simple PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_multiline PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_multiline2 PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_comments PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_unchanged PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_blank PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_gaia_plurals PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_duplicates PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_gwt_plurals PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_utf16_with_empty_lines PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_simple PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_hard_newlines_preserved PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_space_preservation PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_no_value PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_no_separator PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_value_no_key PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_blank_entries PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_fuzzy PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys_missing_accesskey PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_margin_whitespace PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_all_whitespace PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_propertyless_template PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_delimiters PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_empty_value PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_personalities PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_simple PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_multiline PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_multiline2 PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_comments PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_unchanged PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_blank PASSED [ 18%] 451s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_gaia_plurals PASSED [ 19%] 451s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_duplicates PASSED [ 19%] 451s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_gwt_plurals PASSED [ 19%] 451s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_utf16_with_empty_lines PASSED [ 19%] 451s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_help PASSED [ 19%] 451s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_help PASSED [ 19%] 451s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert PASSED [ 19%] 451s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_quotes PASSED [ 19%] 451s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment PASSED [ 19%] 451s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment_dos_eol PASSED [ 19%] 451s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_double_string PASSED [ 19%] 451s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_popup PASSED [ 19%] 451s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_discardable PASSED [ 19%] 451s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_menuex PASSED [ 19%] 451s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_newlines PASSED [ 19%] 451s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment_after PASSED [ 19%] 451s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_block_language PASSED [ 19%] 451s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_output_encoding PASSED [ 19%] 451s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_quotes_strintable PASSED [ 19%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_simpleunit PASSED [ 19%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_basic PASSED [ 19%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_multiline PASSED [ 19%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapednewlines PASSED [ 19%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapedtabs PASSED [ 19%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapedquotes PASSED [ 19%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_exclusions PASSED [ 19%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments PASSED [ 19%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingcomment PASSED [ 19%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingduplicatecomment PASSED [ 19%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingduplicatecommentwithwhitespace PASSED [ 19%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments PASSED [ 19%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments_existingcomment PASSED [ 19%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments_existingduplicatecomment PASSED [ 19%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments PASSED [ 19%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments_existingduplicatecomment PASSED [ 19%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments_existingcomment PASSED [ 19%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_existingcomments PASSED [ 19%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_plus_in_resourcekey PASSED [ 19%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_special_chars_in_resourcekey PASSED [ 19%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_simpleunit PASSED [ 20%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_basic PASSED [ 20%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_multiline PASSED [ 20%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapednewlines PASSED [ 20%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapedtabs PASSED [ 20%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapedquotes PASSED [ 20%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_exclusions PASSED [ 20%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments PASSED [ 20%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingcomment PASSED [ 20%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingduplicatecomment PASSED [ 20%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingduplicatecommentwithwhitespace PASSED [ 20%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments PASSED [ 20%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments_existingcomment PASSED [ 20%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments_existingduplicatecomment PASSED [ 20%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments PASSED [ 20%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments_existingduplicatecomment PASSED [ 20%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments_existingcomment PASSED [ 20%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_existingcomments PASSED [ 20%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_plus_in_resourcekey PASSED [ 20%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_special_chars_in_resourcekey PASSED [ 20%] 451s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_help PASSED [ 20%] 451s tests/translate/convert/test_po2sub.py::TestPO2Sub::test_subrip PASSED [ 20%] 451s tests/translate/convert/test_po2sub.py::TestPO2SubCommand::test_subrip PASSED [ 20%] 451s tests/translate/convert/test_po2sub.py::TestPO2SubCommand::test_help PASSED [ 20%] 451s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert_empty PASSED [ 20%] 451s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert PASSED [ 20%] 451s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert_marked_untranslated PASSED [ 20%] 451s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert_empty PASSED [ 20%] 451s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert PASSED [ 20%] 451s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert_marked_untranslated PASSED [ 20%] 451s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_help PASSED [ 20%] 451s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_basic PASSED [ 20%] 451s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_sourcelanguage PASSED [ 20%] 451s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_targetlanguage PASSED [ 20%] 451s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_multiline PASSED [ 20%] 451s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapednewlines PASSED [ 20%] 451s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapedtabs PASSED [ 20%] 451s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapedquotes PASSED [ 20%] 451s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_exclusions PASSED [ 20%] 451s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_nonascii PASSED [ 21%] 451s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_nonecomments PASSED [ 21%] 451s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_otherscomments PASSED [ 21%] 451s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_sourcecomments PASSED [ 21%] 451s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_typecomments PASSED [ 21%] 451s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_basic PASSED [ 21%] 451s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_sourcelanguage PASSED [ 21%] 451s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_targetlanguage PASSED [ 21%] 451s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_multiline PASSED [ 21%] 451s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapednewlines PASSED [ 21%] 451s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapedtabs PASSED [ 21%] 451s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapedquotes PASSED [ 21%] 451s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_exclusions PASSED [ 21%] 451s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_nonascii PASSED [ 21%] 451s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_nonecomments PASSED [ 21%] 451s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_otherscomments PASSED [ 21%] 451s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_sourcecomments PASSED [ 21%] 451s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_typecomments PASSED [ 21%] 451s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_help PASSED [ 21%] 451s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_context PASSED [ 21%] 451s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_simple_convert PASSED [ 21%] 451s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_nested_convert PASSED [ 21%] 451s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_template_required PASSED [ 21%] 451s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_untranslated_uses_source PASSED [ 21%] 451s tests/translate/convert/test_po2ts.py::TestPO2TS::test_simpleunit PASSED [ 21%] 451s tests/translate/convert/test_po2ts.py::TestPO2TS::test_simple_unicode_unit PASSED [ 21%] 451s tests/translate/convert/test_po2ts.py::TestPO2TS::test_fullunit PASSED [ 21%] 451s tests/translate/convert/test_po2ts.py::TestPO2TS::test_fuzzyunit PASSED [ 21%] 451s tests/translate/convert/test_po2ts.py::TestPO2TS::test_obsolete PASSED [ 21%] 451s tests/translate/convert/test_po2ts.py::TestPO2TS::test_duplicates PASSED [ 21%] 451s tests/translate/convert/test_po2ts.py::TestPO2TS::test_linebreak PASSED [ 21%] 451s tests/translate/convert/test_po2ts.py::TestPO2TS::test_linebreak_consecutive PASSED [ 21%] 451s tests/translate/convert/test_po2ts.py::TestPO2TS::test_plural PASSED [ 21%] 451s tests/translate/convert/test_po2ts.py::TestPO2TS::test_plural_fuzzy PASSED [ 21%] 451s tests/translate/convert/test_po2ts.py::TestPO2TS::test_unit_without_location PASSED [ 21%] 451s tests/translate/convert/test_po2ts.py::TestPO2TS::test_mixed_units_with_and_without_location PASSED [ 21%] 451s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_simpleunit PASSED [ 21%] 451s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_simple_unicode_unit PASSED [ 21%] 451s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_fullunit PASSED [ 21%] 451s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_fuzzyunit PASSED [ 22%] 451s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_obsolete PASSED [ 22%] 451s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_duplicates PASSED [ 22%] 451s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_linebreak PASSED [ 22%] 451s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_linebreak_consecutive PASSED [ 22%] 451s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_plural PASSED [ 22%] 451s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_plural_fuzzy PASSED [ 22%] 451s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_unit_without_location PASSED [ 22%] 451s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_mixed_units_with_and_without_location PASSED [ 22%] 451s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_help PASSED [ 22%] 451s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_basic PASSED [ 22%] 451s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_nonascii PASSED [ 22%] 451s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_blank_handling PASSED [ 22%] 451s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_fuzzy_handling PASSED [ 22%] 451s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_obsolete_ignore PASSED [ 22%] 451s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_header_ignore PASSED [ 22%] 451s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_convert_completion_below_threshold PASSED [ 22%] 451s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_convert_completion_above_threshold PASSED [ 22%] 451s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_substring_replacement PASSED [ 22%] 451s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_duplicate_text_segment_based_replacement PASSED [ 22%] 451s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_dokuwiki_flavour_segmentation PASSED [ 22%] 451s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_basic PASSED [ 22%] 452s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_nonascii PASSED [ 22%] 452s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_blank_handling PASSED [ 22%] 452s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_fuzzy_handling PASSED [ 22%] 452s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_obsolete_ignore PASSED [ 22%] 452s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_header_ignore PASSED [ 22%] 452s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_convert_completion_below_threshold PASSED [ 22%] 452s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_convert_completion_above_threshold PASSED [ 22%] 452s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_substring_replacement PASSED [ 22%] 452s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_duplicate_text_segment_based_replacement PASSED [ 22%] 452s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_dokuwiki_flavour_segmentation PASSED [ 22%] 452s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_help PASSED [ 22%] 452s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_basic PASSED [ 22%] 452s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_unicode PASSED [ 22%] 452s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_ordering_serialize PASSED [ 22%] 452s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_markmin PASSED [ 22%] 452s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_minimal PASSED [ 22%] 452s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_basic PASSED [ 22%] 452s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_multiline PASSED [ 23%] 452s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapednewlines PASSED [ 23%] 452s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapedtabs PASSED [ 23%] 452s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapedquotes PASSED [ 23%] 452s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_locationcomments PASSED [ 23%] 452s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_othercomments PASSED [ 23%] 452s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_automaticcomments PASSED [ 23%] 452s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_header PASSED [ 23%] 452s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_fuzzy PASSED [ 23%] 452s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_germanic_plurals PASSED [ 23%] 452s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_funny_plurals PASSED [ 23%] 452s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_language_tags PASSED [ 23%] 452s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_variables PASSED [ 23%] 452s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_approved PASSED [ 23%] 452s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_empty_PO PASSED [ 23%] 452s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_no_templates PASSED [ 23%] 452s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_simple_output PASSED [ 23%] 452s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_simple PASSED [ 23%] 452s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_translated PASSED [ 23%] 452s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_no_fuzzy PASSED [ 23%] 452s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_allow_fuzzy PASSED [ 23%] 452s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_nested PASSED [ 23%] 452s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_completion_below_threshold PASSED [ 23%] 452s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_completion_above_threshold PASSED [ 23%] 452s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_empty_PO PASSED [ 23%] 452s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_no_templates PASSED [ 23%] 452s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_simple_output PASSED [ 23%] 452s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_simple PASSED [ 23%] 452s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_translated PASSED [ 23%] 452s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_no_fuzzy PASSED [ 23%] 452s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_allow_fuzzy PASSED [ 23%] 452s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_nested PASSED [ 23%] 452s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_completion_below_threshold PASSED [ 23%] 452s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_completion_above_threshold PASSED [ 23%] 452s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_help PASSED [ 23%] 452s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_convertpot_blank PASSED [ 23%] 452s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_convertpot_blank_plurals PASSED [ 23%] 452s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_simple PASSED [ 23%] 452s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_messages_marked_fuzzy PASSED [ 23%] 452s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_plurals_with_fuzzy_matching PASSED [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_change XFAIL [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_change PASSED [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_and_whitespace_change PASSED [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_ambiguous_with_disambiguous PASSED [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_accelerator_changes XFAIL [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_lines_cut_differently XFAIL [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_automatic_comments_dont_duplicate PASSED [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_automatic_comments_new_overrides_old PASSED [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_comments_with_blank_comment_lines PASSED [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_empty_commentlines PASSED [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgidcomments PASSED [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_with_msgidcomment PASSED [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_plurals PASSED [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_obsoleting_messages PASSED [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_not_obsoleting_empty_messages PASSED [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_new_before_obsolete PASSED [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_resurrect_obsolete_messages PASSED [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_resurrect_obsolete_messages_into_msgidcomment PASSED [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_header_initialisation PASSED [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_comments PASSED [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_typecomments PASSED [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgctxt PASSED [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgctxt_multiline PASSED [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgid_merge_on_location PASSED [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgid_merge_on_id PASSED [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_empty_msgid PASSED [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_migrate_msgidcomment_to_msgctxt PASSED [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_obsolete_msgctxt PASSED [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_small_strings PASSED [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_convertpot_blank PASSED [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_convertpot_blank_plurals PASSED [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_simple PASSED [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_messages_marked_fuzzy PASSED [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_plurals_with_fuzzy_matching PASSED [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_change XFAIL [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_change PASSED [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_and_whitespace_change PASSED [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_ambiguous_with_disambiguous PASSED [ 24%] 452s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_accelerator_changes XFAIL [ 25%] 452s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_lines_cut_differently XFAIL [ 25%] 452s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_automatic_comments_dont_duplicate PASSED [ 25%] 452s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_automatic_comments_new_overrides_old PASSED [ 25%] 452s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_comments_with_blank_comment_lines PASSED [ 25%] 452s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_empty_commentlines PASSED [ 25%] 452s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgidcomments PASSED [ 25%] 452s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_with_msgidcomment PASSED [ 25%] 452s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_plurals PASSED [ 25%] 452s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_obsoleting_messages PASSED [ 25%] 452s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_not_obsoleting_empty_messages PASSED [ 25%] 452s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_new_before_obsolete PASSED [ 25%] 452s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_resurrect_obsolete_messages PASSED [ 25%] 452s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_resurrect_obsolete_messages_into_msgidcomment PASSED [ 25%] 452s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_header_initialisation PASSED [ 25%] 452s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_comments PASSED [ 25%] 452s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_typecomments PASSED [ 25%] 452s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgctxt PASSED [ 25%] 452s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgctxt_multiline PASSED [ 25%] 452s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgid_merge_on_location PASSED [ 25%] 452s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgid_merge_on_id PASSED [ 25%] 452s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_empty_msgid PASSED [ 25%] 452s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_migrate_msgidcomment_to_msgctxt PASSED [ 25%] 452s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_obsolete_msgctxt PASSED [ 25%] 452s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_small_strings PASSED [ 25%] 452s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_help PASSED [ 25%] 452s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_no_endlines_added PASSED [ 25%] 452s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_uncomment_contributors PASSED [ 25%] 452s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_multiline_comment_newlines PASSED [ 25%] 452s tests/translate/convert/test_prop2po.py::TestProp2PO::test_simpleentry PASSED [ 25%] 452s tests/translate/convert/test_prop2po.py::TestProp2PO::test_convertprop PASSED [ 25%] 452s tests/translate/convert/test_prop2po.py::TestProp2PO::test_no_value_entry PASSED [ 25%] 452s tests/translate/convert/test_prop2po.py::TestProp2PO::test_no_separator_entry PASSED [ 25%] 452s tests/translate/convert/test_prop2po.py::TestProp2PO::test_value_no_key_entry PASSED [ 25%] 452s tests/translate/convert/test_prop2po.py::TestProp2PO::test_tab_at_end_of_string PASSED [ 25%] 452s tests/translate/convert/test_prop2po.py::TestProp2PO::test_tab_at_start_of_value PASSED [ 25%] 452s tests/translate/convert/test_prop2po.py::TestProp2PO::test_unicode PASSED [ 25%] 452s tests/translate/convert/test_prop2po.py::TestProp2PO::test_multiline_escaping PASSED [ 25%] 452s tests/translate/convert/test_prop2po.py::TestProp2PO::test_comments PASSED [ 25%] 452s tests/translate/convert/test_prop2po.py::TestProp2PO::test_multiline_comments PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2PO::test_folding_accesskeys PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2PO::test_dont_translate PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2PO::test_duplicate_locations_mozilla PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2PO::test_emptyproperty PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2PO::test_emptyproperty_translated PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2PO::test_newlines_in_value PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2PO::test_header_comments PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2PO::test_unassociated_comment_order PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2PO::test_x_header PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2PO::test_gaia_plurals PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2PO::test_successive_gaia_plurals PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2PO::test_duplicate_keys PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2PO::test_gwt_plurals PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2PO::test_strings_bilingual_simple PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2PO::test_strings_bilingual_multiline PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_simpleentry PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_convertprop PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_no_value_entry PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_no_separator_entry PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_value_no_key_entry PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_tab_at_end_of_string PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_tab_at_start_of_value PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_unicode PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_multiline_escaping PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_comments PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_multiline_comments PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_folding_accesskeys PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_dont_translate PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_duplicate_locations_mozilla PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_emptyproperty PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_emptyproperty_translated PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_newlines_in_value PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_header_comments PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_unassociated_comment_order PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_x_header PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_gaia_plurals PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_successive_gaia_plurals PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_duplicate_keys PASSED [ 26%] 452s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_gwt_plurals PASSED [ 27%] 452s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_strings_bilingual_simple PASSED [ 27%] 452s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_strings_bilingual_multiline PASSED [ 27%] 452s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_help PASSED [ 27%] 452s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_help PASSED [ 27%] 452s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert PASSED [ 27%] 452s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf16 PASSED [ 27%] 452s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong PASSED [ 27%] 452s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf8 PASSED [ 27%] 452s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_menuex PASSED [ 27%] 452s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_simple PASSED [ 27%] 452s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_multiple_units PASSED [ 27%] 452s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_automaticcomments PASSED [ 27%] 452s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_translatorcomments PASSED [ 27%] 452s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_locations PASSED [ 27%] 452s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple PASSED [ 27%] 452s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_multiple_units PASSED [ 27%] 452s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_automaticcomments PASSED [ 27%] 452s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_translatorcomments PASSED [ 27%] 452s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_locations PASSED [ 27%] 452s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_help PASSED [ 27%] 452s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_pot PASSED [ 27%] 452s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_po PASSED [ 27%] 452s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_remove_duplicates PASSED [ 27%] 452s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_convert_empty PASSED [ 27%] 452s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_converttiki_defaults PASSED [ 27%] 452s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_converttiki_includeunused PASSED [ 27%] 452s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_convert_empty PASSED [ 27%] 452s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_converttiki_defaults PASSED [ 27%] 452s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_converttiki_includeunused PASSED [ 27%] 452s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_help PASSED [ 27%] 452s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_simple_convert PASSED [ 27%] 452s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_nested_convert PASSED [ 27%] 452s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_comment_extraction PASSED [ 27%] 452s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_merge_with_template PASSED [ 27%] 452s tests/translate/convert/test_ts2po.py::TestTS2PO::test_blank PASSED [ 27%] 452s tests/translate/convert/test_ts2po.py::TestTS2PO::test_basic PASSED [ 27%] 452s tests/translate/convert/test_ts2po.py::TestTS2PO::test_unfinished PASSED [ 27%] 452s tests/translate/convert/test_ts2po.py::TestTS2PO::test_multiline PASSED [ 27%] 452s tests/translate/convert/test_ts2po.py::TestTS2PO::test_obsolete PASSED [ 28%] 452s tests/translate/convert/test_ts2po.py::TestTS2PO::test_comment PASSED [ 28%] 452s tests/translate/convert/test_ts2po.py::TestTS2PO::test_extracomment PASSED [ 28%] 452s tests/translate/convert/test_ts2po.py::TestTS2PO::test_emptycontext PASSED [ 28%] 452s tests/translate/convert/test_ts2po.py::TestTS2PO::test_plural PASSED [ 28%] 452s tests/translate/convert/test_ts2po.py::TestTS2PO::test_plural_unfinished PASSED [ 28%] 452s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_blank PASSED [ 28%] 452s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_basic PASSED [ 28%] 452s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_unfinished PASSED [ 28%] 452s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_multiline PASSED [ 28%] 452s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_obsolete PASSED [ 28%] 452s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_comment PASSED [ 28%] 452s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_extracomment PASSED [ 28%] 452s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_emptycontext PASSED [ 28%] 452s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_plural PASSED [ 28%] 452s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_plural_unfinished PASSED [ 28%] 452s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_help PASSED [ 28%] 452s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_convert_empty PASSED [ 28%] 452s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_keep_duplicates PASSED [ 28%] 452s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_drop_duplicates PASSED [ 28%] 452s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_simple PASSED [ 28%] 452s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_multiple_units PASSED [ 28%] 452s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_carriage_return PASSED [ 28%] 452s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_merge PASSED [ 28%] 452s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_no_segmentation PASSED [ 28%] 452s tests/translate/convert/test_txt2po.py::TestDoku2po::test_convert_empty PASSED [ 28%] 452s tests/translate/convert/test_txt2po.py::TestDoku2po::test_keep_duplicates PASSED [ 28%] 452s tests/translate/convert/test_txt2po.py::TestDoku2po::test_drop_duplicates PASSED [ 28%] 452s tests/translate/convert/test_txt2po.py::TestDoku2po::test_basic PASSED [ 28%] 452s tests/translate/convert/test_txt2po.py::TestDoku2po::test_bullet_list PASSED [ 28%] 452s tests/translate/convert/test_txt2po.py::TestDoku2po::test_numbered_list PASSED [ 28%] 452s tests/translate/convert/test_txt2po.py::TestDoku2po::test_spacing PASSED [ 28%] 452s tests/translate/convert/test_txt2po.py::TestDoku2po::test_merge PASSED [ 28%] 452s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_convert_empty PASSED [ 28%] 452s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_keep_duplicates PASSED [ 28%] 452s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_drop_duplicates PASSED [ 28%] 452s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_simple PASSED [ 28%] 452s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_multiple_units PASSED [ 28%] 452s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_carriage_return PASSED [ 28%] 452s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_merge PASSED [ 29%] 452s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_no_segmentation PASSED [ 29%] 452s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_help PASSED [ 29%] 452s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_basic PASSED [ 29%] 452s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_unicode PASSED [ 29%] 452s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_markmin PASSED [ 29%] 452s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_help PASSED [ 29%] 452s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert PASSED [ 29%] 452s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_minimal PASSED [ 29%] 452s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_basic PASSED [ 29%] 452s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_translatorcomments PASSED [ 29%] 452s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_autocomment PASSED [ 29%] 452s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_locations PASSED [ 29%] 452s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_fuzzy PASSED [ 29%] 452s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_plurals PASSED [ 29%] 452s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_minimal PASSED [ 29%] 452s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_basic PASSED [ 29%] 452s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_translatorcomments PASSED [ 29%] 452s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_autocomment PASSED [ 29%] 452s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_locations PASSED [ 29%] 452s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_fuzzy PASSED [ 29%] 452s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_plurals PASSED [ 29%] 452s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_help PASSED [ 29%] 452s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_simple_convert PASSED [ 29%] 452s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_minimal PASSED [ 29%] 452s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_basic PASSED [ 29%] 452s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_translatorcomments PASSED [ 29%] 452s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_autocomment PASSED [ 29%] 452s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_locations PASSED [ 29%] 452s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_fuzzy PASSED [ 29%] 452s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_plurals PASSED [ 29%] 452s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_help PASSED [ 29%] 452s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_preserve_filename PASSED [ 29%] 452s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_pot PASSED [ 29%] 452s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_po PASSED [ 29%] 452s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_remove_duplicates PASSED [ 29%] 452s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_convert_empty_YAML PASSED [ 29%] 452s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_simple_output PASSED [ 29%] 452s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_simple PASSED [ 29%] 452s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_nested PASSED [ 30%] 452s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_no_duplicates XFAIL [ 30%] 452s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_convert_with_template PASSED [ 30%] 452s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_comment_extraction PASSED [ 30%] 452s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_comment_extraction_nested PASSED [ 30%] 452s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_convert_empty_YAML PASSED [ 30%] 452s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_simple_output PASSED [ 30%] 452s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_simple PASSED [ 30%] 452s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_nested PASSED [ 30%] 452s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_no_duplicates XFAIL [ 30%] 452s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_convert_with_template PASSED [ 30%] 452s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_comment_extraction PASSED [ 30%] 452s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_comment_extraction_nested PASSED [ 30%] 452s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_help PASSED [ 30%] 452s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_empty_target PASSED [ 30%] 452s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_ellipsis PASSED [ 30%] 452s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_spacestart_spaceend PASSED [ 30%] 452s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_start_capitals PASSED [ 30%] 452s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_end_punc PASSED [ 30%] 452s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_combinations PASSED [ 30%] 452s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_nothing_to_do PASSED [ 30%] 452s tests/translate/filters/test_checks.py::test_defaults PASSED [ 30%] 452s tests/translate/filters/test_checks.py::test_construct PASSED [ 30%] 452s tests/translate/filters/test_checks.py::test_accelerator_markers PASSED [ 30%] 452s tests/translate/filters/test_checks.py::test_messages PASSED [ 30%] 452s tests/translate/filters/test_checks.py::test_accelerators PASSED [ 30%] 452s tests/translate/filters/test_checks.py::test_acceleratedvariables XFAIL [ 30%] 452s tests/translate/filters/test_checks.py::test_acronyms PASSED [ 30%] 452s tests/translate/filters/test_checks.py::test_blank PASSED [ 30%] 452s tests/translate/filters/test_checks.py::test_brackets PASSED [ 30%] 452s tests/translate/filters/test_checks.py::test_compendiumconflicts PASSED [ 30%] 452s tests/translate/filters/test_checks.py::test_doublequoting PASSED [ 30%] 452s tests/translate/filters/test_checks.py::test_doublespacing PASSED [ 30%] 452s tests/translate/filters/test_checks.py::test_doublewords PASSED [ 30%] 452s tests/translate/filters/test_checks.py::test_endpunc PASSED [ 30%] 452s tests/translate/filters/test_checks.py::test_endwhitespace PASSED [ 30%] 452s tests/translate/filters/test_checks.py::test_escapes PASSED [ 30%] 452s tests/translate/filters/test_checks.py::test_newlines PASSED [ 30%] 452s tests/translate/filters/test_checks.py::test_tabs PASSED [ 30%] 452s tests/translate/filters/test_checks.py::test_filepaths PASSED [ 31%] 452s tests/translate/filters/test_checks.py::test_kdecomments PASSED [ 31%] 452s tests/translate/filters/test_checks.py::test_long PASSED [ 31%] 452s tests/translate/filters/test_checks.py::test_musttranslatewords XFAIL [ 31%] 452s tests/translate/filters/test_checks.py::test_notranslatewords PASSED [ 31%] 452s tests/translate/filters/test_checks.py::test_numbers PASSED [ 31%] 452s tests/translate/filters/test_checks.py::test_persian_numbers PASSED [ 31%] 452s tests/translate/filters/test_checks.py::test_bengali_numbers PASSED [ 31%] 452s tests/translate/filters/test_checks.py::test_arabic_numbers PASSED [ 31%] 452s tests/translate/filters/test_checks.py::test_assamese_numbers PASSED [ 31%] 452s tests/translate/filters/test_checks.py::test_options PASSED [ 31%] 452s tests/translate/filters/test_checks.py::test_printf PASSED [ 31%] 452s tests/translate/filters/test_checks.py::test_pythonbraceformat PASSED [ 31%] 452s tests/translate/filters/test_checks.py::test_puncspacing PASSED [ 31%] 452s tests/translate/filters/test_checks.py::test_purepunc PASSED [ 31%] 452s tests/translate/filters/test_checks.py::test_sentencecount PASSED [ 31%] 452s tests/translate/filters/test_checks.py::test_short PASSED [ 31%] 452s tests/translate/filters/test_checks.py::test_singlequoting PASSED [ 31%] 452s tests/translate/filters/test_checks.py::test_vietnamese_singlequoting PASSED [ 31%] 452s tests/translate/filters/test_checks.py::test_persian_single_and_double_quote_fail_at_the_same_time XFAIL [ 31%] 452s tests/translate/filters/test_checks.py::test_persian_quoting PASSED [ 31%] 452s tests/translate/filters/test_checks.py::test_simplecaps PASSED [ 31%] 452s tests/translate/filters/test_checks.py::test_spellcheck SKIPPED (Spe...) [ 31%] 452s tests/translate/filters/test_checks.py::test_startcaps PASSED [ 31%] 452s tests/translate/filters/test_checks.py::test_startpunc PASSED [ 31%] 452s tests/translate/filters/test_checks.py::test_startwhitespace PASSED [ 31%] 452s tests/translate/filters/test_checks.py::test_unchanged PASSED [ 31%] 452s tests/translate/filters/test_checks.py::test_untranslated PASSED [ 31%] 452s tests/translate/filters/test_checks.py::test_validchars PASSED [ 31%] 452s tests/translate/filters/test_checks.py::test_minimalchecker PASSED [ 31%] 452s tests/translate/filters/test_checks.py::test_reducedchecker PASSED [ 31%] 452s tests/translate/filters/test_checks.py::test_variables_kde PASSED [ 31%] 452s tests/translate/filters/test_checks.py::test_variables_gnome PASSED [ 31%] 452s tests/translate/filters/test_checks.py::test_variables_mozilla PASSED [ 31%] 452s tests/translate/filters/test_checks.py::test_variables_openoffice PASSED [ 31%] 452s tests/translate/filters/test_checks.py::test_variables_cclicense PASSED [ 31%] 452s tests/translate/filters/test_checks.py::test_variables_ios PASSED [ 31%] 452s tests/translate/filters/test_checks.py::test_xmltags PASSED [ 31%] 452s tests/translate/filters/test_checks.py::test_bengali_mozilla_inverted_xmltags XFAIL [ 31%] 452s tests/translate/filters/test_checks.py::test_ooxmltags PASSED [ 32%] 452s tests/translate/filters/test_checks.py::test_functions PASSED [ 32%] 452s tests/translate/filters/test_checks.py::test_emails PASSED [ 32%] 452s tests/translate/filters/test_checks.py::test_urls PASSED [ 32%] 452s tests/translate/filters/test_checks.py::test_simpleplurals PASSED [ 32%] 452s tests/translate/filters/test_checks.py::test_nplurals PASSED [ 32%] 452s tests/translate/filters/test_checks.py::test_credits PASSED [ 32%] 452s tests/translate/filters/test_checks.py::test_gconf PASSED [ 32%] 452s tests/translate/filters/test_checks.py::test_validxml PASSED [ 32%] 452s tests/translate/filters/test_checks.py::test_hassuggestion PASSED [ 32%] 452s tests/translate/filters/test_checks.py::test_dialogsizes PASSED [ 32%] 452s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers PASSED [ 32%] 452s tests/translate/filters/test_checks.py::test_mozilla_no_accelerators_for_indic PASSED [ 32%] 452s tests/translate/filters/test_checks.py::test_noaccelerators_only_in_mozilla_checker PASSED [ 32%] 452s tests/translate/filters/test_checks.py::test_ensure_accelerators_not_in_target_if_not_in_source PASSED [ 32%] 452s tests/translate/filters/test_checks.py::test_ensure_bengali_languages_script_is_correct PASSED [ 32%] 452s tests/translate/filters/test_checks.py::test_category PASSED [ 32%] 452s tests/translate/filters/test_decoration.py::test_spacestart PASSED [ 32%] 452s tests/translate/filters/test_decoration.py::test_isvalidaccelerator PASSED [ 32%] 452s tests/translate/filters/test_decoration.py::test_find_marked_variables PASSED [ 32%] 452s tests/translate/filters/test_decoration.py::test_getnumbers PASSED [ 32%] 452s tests/translate/filters/test_decoration.py::test_getfunctions PASSED [ 32%] 452s tests/translate/filters/test_pofilter.py::TestPOFilter::test_simplepass PASSED [ 32%] 452s tests/translate/filters/test_pofilter.py::TestPOFilter::test_simplefail PASSED [ 32%] 452s tests/translate/filters/test_pofilter.py::TestPOFilter::test_variables_across_lines PASSED [ 32%] 452s tests/translate/filters/test_pofilter.py::TestPOFilter::test_ignore_if_already_marked PASSED [ 32%] 452s tests/translate/filters/test_pofilter.py::TestPOFilter::test_non_existent_check PASSED [ 32%] 452s tests/translate/filters/test_pofilter.py::TestPOFilter::test_list_all_tests PASSED [ 32%] 452s tests/translate/filters/test_pofilter.py::TestPOFilter::test_test_against_fuzzy PASSED [ 32%] 452s tests/translate/filters/test_pofilter.py::TestPOFilter::test_test_against_review PASSED [ 32%] 452s tests/translate/filters/test_pofilter.py::TestPOFilter::test_isfuzzy PASSED [ 32%] 452s tests/translate/filters/test_pofilter.py::TestPOFilter::test_isreview PASSED [ 32%] 452s tests/translate/filters/test_pofilter.py::TestPOFilter::test_notes PASSED [ 32%] 452s tests/translate/filters/test_pofilter.py::TestPOFilter::test_unicode PASSED [ 32%] 452s tests/translate/filters/test_pofilter.py::TestPOFilter::test_preconditions PASSED [ 32%] 452s tests/translate/filters/test_pofilter.py::TestPOFilter::test_msgid_comments PASSED [ 32%] 452s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_simplepass PASSED [ 32%] 452s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_simplefail PASSED [ 32%] 452s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_variables_across_lines PASSED [ 32%] 452s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_ignore_if_already_marked PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_non_existent_check PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_list_all_tests PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_test_against_fuzzy PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_test_against_review PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_isfuzzy PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_isreview PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_notes PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_unicode PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_preconditions PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_simplepass PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_simplefail PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_variables_across_lines PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_ignore_if_already_marked PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_non_existent_check PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_list_all_tests PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_notes PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_unicode PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_preconditions PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_test_against_fuzzy PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_test_against_review PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_isfuzzy PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_isreview PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_simplepass PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_simplefail PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_variables_across_lines PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_ignore_if_already_marked PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_non_existent_check PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_list_all_tests PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_test_against_fuzzy PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_test_against_review PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_isfuzzy PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_isreview PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_notes PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_unicode PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_preconditions PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_msgid_comments PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_cedillas PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_niciun PASSED [ 33%] 452s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_nicio PASSED [ 34%] 452s tests/translate/filters/test_prefilters.py::test_removekdecomments PASSED [ 34%] 452s tests/translate/filters/test_prefilters.py::test_filterwordswithpunctuation PASSED [ 34%] 452s tests/translate/lang/test_af.py::test_sentences PASSED [ 34%] 452s tests/translate/lang/test_af.py::test_capsstart PASSED [ 34%] 452s tests/translate/lang/test_af.py::test_transliterate_cyrillic PASSED [ 34%] 452s tests/translate/lang/test_am.py::test_punctranslate PASSED [ 34%] 452s tests/translate/lang/test_am.py::test_sentences PASSED [ 34%] 452s tests/translate/lang/test_ar.py::test_punctranslate PASSED [ 34%] 452s tests/translate/lang/test_ar.py::test_sentences PASSED [ 34%] 452s tests/translate/lang/test_common.py::test_characters PASSED [ 34%] 452s tests/translate/lang/test_common.py::test_words PASSED [ 34%] 452s tests/translate/lang/test_common.py::test_word_khmer PASSED [ 34%] 452s tests/translate/lang/test_common.py::test_sentences PASSED [ 34%] 452s tests/translate/lang/test_common.py::test_capsstart PASSED [ 34%] 452s tests/translate/lang/test_common.py::test_numstart PASSED [ 34%] 452s tests/translate/lang/test_common.py::test_punctranslate PASSED [ 34%] 452s tests/translate/lang/test_common.py::test_length_difference PASSED [ 34%] 452s tests/translate/lang/test_common.py::test_alter_length PASSED [ 34%] 452s tests/translate/lang/test_data.py::test_normalise_code PASSED [ 34%] 452s tests/translate/lang/test_data.py::test_simplify_to_common PASSED [ 34%] 452s tests/translate/lang/test_data.py::test_is_rtl PASSED [ 34%] 452s tests/translate/lang/test_el.py::test_punctranslate PASSED [ 34%] 452s tests/translate/lang/test_el.py::test_sentences PASSED [ 34%] 452s tests/translate/lang/test_es.py::test_punctranslate PASSED [ 34%] 452s tests/translate/lang/test_es.py::test_sentences PASSED [ 34%] 452s tests/translate/lang/test_fa.py::test_punctranslate PASSED [ 34%] 452s tests/translate/lang/test_fa.py::test_sentences PASSED [ 34%] 452s tests/translate/lang/test_factory.py::test_getlanguage PASSED [ 34%] 452s tests/translate/lang/test_factory.py::test_get_all_languages PASSED [ 34%] 452s tests/translate/lang/test_fr.py::test_punctranslate PASSED [ 34%] 452s tests/translate/lang/test_fr.py::test_sentences PASSED [ 34%] 452s tests/translate/lang/test_hy.py::test_punctranslate PASSED [ 34%] 452s tests/translate/lang/test_hy.py::test_sentences PASSED [ 34%] 452s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_identify_lang PASSED [ 34%] 452s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_identify_store PASSED [ 34%] 452s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_bad_init_data PASSED [ 34%] 452s tests/translate/lang/test_ja.py::test_punctranslate PASSED [ 34%] 452s tests/translate/lang/test_ja.py::test_sentences PASSED [ 34%] 452s tests/translate/lang/test_km.py::test_punctranslate PASSED [ 35%] 452s tests/translate/lang/test_km.py::test_sentences PASSED [ 35%] 452s tests/translate/lang/test_ko.py::test_punctranslate PASSED [ 35%] 452s tests/translate/lang/test_ko.py::test_sentences PASSED [ 35%] 452s tests/translate/lang/test_ne.py::test_punctranslate PASSED [ 35%] 452s tests/translate/lang/test_ne.py::test_sentences PASSED [ 35%] 452s tests/translate/lang/test_nqo.py::test_punctranslate PASSED [ 35%] 452s tests/translate/lang/test_nqo.py::test_sentences PASSED [ 35%] 452s tests/translate/lang/test_or.py::test_punctranslate PASSED [ 35%] 452s tests/translate/lang/test_or.py::test_country_code PASSED [ 35%] 452s tests/translate/lang/test_or.py::test_sentences PASSED [ 35%] 452s tests/translate/lang/test_poedit.py::test_isocode PASSED [ 35%] 452s tests/translate/lang/test_ro.py::test_cedillas PASSED [ 35%] 452s tests/translate/lang/test_ro.py::test_niciun PASSED [ 35%] 452s tests/translate/lang/test_scn.py::test_italianisms PASSED [ 35%] 452s tests/translate/lang/test_scn.py::test_vocalism PASSED [ 35%] 452s tests/translate/lang/test_scn.py::test_suffixes PASSED [ 35%] 452s tests/translate/lang/test_team.py::test_simple PASSED [ 35%] 452s tests/translate/lang/test_th.py::test_punctranslate PASSED [ 35%] 452s tests/translate/lang/test_th.py::test_sentences PASSED [ 35%] 452s tests/translate/lang/test_tr.py::test_sentences PASSED [ 35%] 452s tests/translate/lang/test_uk.py::test_sentences PASSED [ 35%] 452s tests/translate/lang/test_vi.py::test_punctranslate PASSED [ 35%] 452s tests/translate/lang/test_vi.py::test_sentences PASSED [ 35%] 452s tests/translate/lang/test_zh.py::test_punctranslate PASSED [ 35%] 452s tests/translate/lang/test_zh.py::test_sentences PASSED [ 35%] 452s tests/translate/misc/test_deprecation.py::TestDeprecation::test_deprecated_decorator PASSED [ 35%] 452s tests/translate/misc/test_deprecation.py::TestDeprecation::test_no_deprecated_decorator PASSED [ 35%] 452s tests/translate/misc/test_dictutils.py::test_cidict_has_key PASSED [ 35%] 452s tests/translate/misc/test_dictutils.py::test_cidict_pop PASSED [ 35%] 452s tests/translate/misc/test_dictutils.py::test_cidict_getitem PASSED [ 35%] 452s tests/translate/misc/test_dictutils.py::test_cidict_setitem PASSED [ 35%] 452s tests/translate/misc/test_dictutils.py::test_cidict_delitem PASSED [ 35%] 452s tests/translate/misc/test_multistring.py::TestMultistring::test_constructor PASSED [ 35%] 452s tests/translate/misc/test_multistring.py::TestMultistring::test_constructor_validation PASSED [ 35%] 452s tests/translate/misc/test_multistring.py::TestMultistring::test_repr PASSED [ 35%] 452s tests/translate/misc/test_multistring.py::TestMultistring::test_replace PASSED [ 35%] 452s tests/translate/misc/test_multistring.py::TestMultistring::test_comparison PASSED [ 35%] 452s tests/translate/misc/test_multistring.py::TestMultistring::test_coercion PASSED [ 35%] 452s tests/translate/misc/test_multistring.py::TestMultistring::test_unicode_coercion PASSED [ 36%] 452s tests/translate/misc/test_multistring.py::TestMultistring::test_list_coercion PASSED [ 36%] 452s tests/translate/misc/test_multistring.py::TestMultistring::test_multistring_hash PASSED [ 36%] 452s tests/translate/misc/test_multistring.py::TestMultistring::test_bool PASSED [ 36%] 452s tests/translate/misc/test_optrecurse.py::TestRecursiveOptionParser::test_splitext PASSED [ 36%] 452s tests/translate/misc/test_optrecurse.py::TestRecursiveOptionParser::test_outputfile_receives_bytes PASSED [ 36%] 452s tests/translate/misc/test_progressbar.py::test_hashprogressbar PASSED [ 36%] 452s tests/translate/misc/test_quote.py::test_find_all PASSED [ 36%] 452s tests/translate/misc/test_quote.py::test_extract PASSED [ 36%] 452s tests/translate/misc/test_quote.py::test_extractwithoutquotes PASSED [ 36%] 452s tests/translate/misc/test_quote.py::test_extractwithoutquotes_passfunc PASSED [ 36%] 452s tests/translate/misc/test_quote.py::test_stripcomment PASSED [ 36%] 452s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode PASSED [ 36%] 452s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode_iso_8859_1 PASSED [ 36%] 452s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode_ascii PASSED [ 36%] 452s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode_unicode_range PASSED [ 36%] 452s tests/translate/misc/test_quote.py::TestEncoding::test_java_utf8_properties_encode PASSED [ 36%] 452s tests/translate/misc/test_quote.py::TestEncoding::test_escapespace PASSED [ 36%] 452s tests/translate/misc/test_quote.py::TestEncoding::test_mozillaescapemarginspaces PASSED [ 36%] 452s tests/translate/misc/test_quote.py::TestEncoding::test_mozilla_control_escapes PASSED [ 36%] 452s tests/translate/misc/test_quote.py::TestEncoding::test_propertiesdecode PASSED [ 36%] 452s tests/translate/misc/test_quote.py::TestEncoding::test_controlchars PASSED [ 36%] 452s tests/translate/misc/test_quote.py::TestEncoding::test_properties_decode_slashu PASSED [ 36%] 452s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding PASSED [ 36%] 452s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_existing_entities PASSED [ 36%] 452s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_passthrough PASSED [ 36%] 452s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_nonentities PASSED [ 36%] 452s tests/translate/misc/test_xml_helpers.py::TestReindent::test_indent_four_spaces PASSED [ 36%] 452s tests/translate/misc/test_xml_helpers.py::TestReindent::test_indent_tab PASSED [ 36%] 452s tests/translate/search/test_lshtein.py::TestLevenshtein::test_basic_distance PASSED [ 36%] 452s tests/translate/search/test_lshtein.py::TestLevenshtein::test_basic_similarity PASSED [ 36%] 452s tests/translate/search/test_lshtein.py::TestLevenshtein::test_long_similarity PASSED [ 36%] 452s tests/translate/search/test_match.py::TestMatch::test_matching PASSED [ 36%] 452s tests/translate/search/test_match.py::TestMatch::test_multiple_store PASSED [ 36%] 452s tests/translate/search/test_match.py::TestMatch::test_extendtm PASSED [ 36%] 452s tests/translate/search/test_match.py::TestMatch::test_terminology PASSED [ 36%] 452s tests/translate/search/test_match.py::TestMatch::test_brackets PASSED [ 36%] 452s tests/translate/search/test_match.py::TestMatch::test_past_tences PASSED [ 36%] 452s tests/translate/search/test_match.py::TestMatch::test_space_mismatch PASSED [ 36%] 452s tests/translate/search/test_match.py::TestMatch::test_hyphen_mismatch PASSED [ 37%] 452s tests/translate/search/test_terminology.py::TestTerminology::test_basic PASSED [ 37%] 452s tests/translate/services/test_tmserver.py::TestTMServer::test_import PASSED [ 37%] 453s tests/translate/services/test_tmserver.py::TestTMServer::test_server PASSED [ 37%] 453s tests/translate/storage/placeables/test_base.py::TestStringElem::test_parse PASSED [ 37%] 453s tests/translate/storage/placeables/test_base.py::TestStringElem::test_tree PASSED [ 37%] 453s tests/translate/storage/placeables/test_base.py::TestStringElem::test_add PASSED [ 37%] 453s tests/translate/storage/placeables/test_base.py::TestStringElem::test_contains PASSED [ 37%] 453s tests/translate/storage/placeables/test_base.py::TestStringElem::test_getitem PASSED [ 37%] 453s tests/translate/storage/placeables/test_base.py::TestStringElem::test_getslice PASSED [ 37%] 453s tests/translate/storage/placeables/test_base.py::TestStringElem::test_iter PASSED [ 37%] 453s tests/translate/storage/placeables/test_base.py::TestStringElem::test_len PASSED [ 37%] 453s tests/translate/storage/placeables/test_base.py::TestStringElem::test_mul PASSED [ 37%] 453s tests/translate/storage/placeables/test_base.py::TestStringElem::test_elem_offset PASSED [ 37%] 453s tests/translate/storage/placeables/test_base.py::TestStringElem::test_elem_at_offset PASSED [ 37%] 453s tests/translate/storage/placeables/test_base.py::TestStringElem::test_find PASSED [ 37%] 453s tests/translate/storage/placeables/test_base.py::TestStringElem::test_find_elems_with PASSED [ 37%] 453s tests/translate/storage/placeables/test_base.py::TestStringElem::test_flatten PASSED [ 37%] 453s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case1 PASSED [ 37%] 453s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case2 PASSED [ 37%] 453s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case3 PASSED [ 37%] 453s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case4 PASSED [ 37%] 453s tests/translate/storage/placeables/test_base.py::TestStringElem::test_insert PASSED [ 37%] 453s tests/translate/storage/placeables/test_base.py::TestStringElem::test_isleaf PASSED [ 37%] 453s tests/translate/storage/placeables/test_base.py::TestStringElem::test_prune PASSED [ 37%] 453s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_base_placeables PASSED [ 37%] 453s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_general_placeables XFAIL [ 37%] 453s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_xliff_placeables XFAIL [ 37%] 453s tests/translate/storage/placeables/test_general.py::test_placeable_numbers PASSED [ 37%] 453s tests/translate/storage/placeables/test_general.py::test_placeable_newline PASSED [ 37%] 453s tests/translate/storage/placeables/test_general.py::test_placeable_alt_attr PASSED [ 37%] 453s tests/translate/storage/placeables/test_general.py::test_placeable_qt_formatting PASSED [ 37%] 453s tests/translate/storage/placeables/test_general.py::test_placeable_camelcase PASSED [ 37%] 453s tests/translate/storage/placeables/test_general.py::test_placeable_space PASSED [ 37%] 453s tests/translate/storage/placeables/test_general.py::test_placeable_punctuation PASSED [ 37%] 453s tests/translate/storage/placeables/test_general.py::test_placeable_xml_entity PASSED [ 37%] 453s tests/translate/storage/placeables/test_general.py::test_placeable_xml_tag PASSED [ 37%] 453s tests/translate/storage/placeables/test_general.py::test_placeable_option PASSED [ 37%] 453s tests/translate/storage/placeables/test_general.py::test_placeable_file PASSED [ 37%] 453s tests/translate/storage/placeables/test_general.py::test_placeable_email PASSED [ 38%] 453s tests/translate/storage/placeables/test_general.py::test_placeable_caps PASSED [ 38%] 453s tests/translate/storage/placeables/test_general.py::test_placeable_formatting PASSED [ 38%] 453s tests/translate/storage/placeables/test_general.py::test_placeable_doubleat PASSED [ 38%] 453s tests/translate/storage/placeables/test_general.py::test_placeable_brace PASSED [ 38%] 453s tests/translate/storage/placeables/test_general.py::test_python_placeable PASSED [ 38%] 453s tests/translate/storage/placeables/test_lisa.py::test_xml_to_strelem PASSED [ 38%] 453s tests/translate/storage/placeables/test_lisa.py::test_xml_space PASSED [ 38%] 453s tests/translate/storage/placeables/test_lisa.py::test_chunk_list PASSED [ 38%] 453s tests/translate/storage/placeables/test_lisa.py::test_set_strelem_to_xml PASSED [ 38%] 453s tests/translate/storage/placeables/test_lisa.py::test_unknown_xml_placeable PASSED [ 38%] 453s tests/translate/storage/placeables/test_terminology.py::TestTerminologyPlaceable::test_simple_terminology PASSED [ 38%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_isfuzzy PASSED [ 38%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_create PASSED [ 38%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_eq PASSED [ 38%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escapes PASSED [ 38%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_difficult_escapes PASSED [ 38%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_note_sanity PASSED [ 38%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_line_number_default PASSED [ 38%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_target PASSED [ 38%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_rich_get PASSED [ 38%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_rich_set PASSED [ 38%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_message_with_newline PASSED [ 38%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quotes_with_newline PASSED [ 38%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_message_with_newline_in_xml PASSED [ 38%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_twitter PASSED [ 38%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quote PASSED [ 38%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_question PASSED [ 38%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_double_space PASSED [ 38%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_leading_space PASSED [ 38%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_tailing_space PASSED [ 38%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_xml_entities PASSED [ 38%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code PASSED [ 38%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code_quote PASSED [ 38%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code_quote_newline PASSED [ 38%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_arrows PASSED [ 38%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_link PASSED [ 38%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_link_and_text PASSED [ 38%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_blank_string PASSED [ 38%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_escape_message_with_newline PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_invalid_lang PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_quote PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_leading_space PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_trailing_space PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_with_ampersand PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_double_space PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_deep_double_space PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_complex_xml PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quoted_newlines PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_message_with_newline PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_message_with_newline_in_xml PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_twitter PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_question PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quote PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_double_space PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_space PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_newlines PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_xml_entities PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_code PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_arrows PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_link PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_link_and_text PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_blank_string PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_space PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_spaces PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_escaped_newline PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_escaped_newline PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_spaces PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_newline PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_many_quotes PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_blank_string_again PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_double_quotes_string PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_newline_in_string PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_not_translatable_string PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_parse_message_with_newline PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_parse_message_with_comments PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_quote PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_leading_space PASSED [ 39%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_leading_space_quoted PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_trailing_space PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_trailing_space_quoted PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_with_ampersand PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_double_space_quoted PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_deep_double_space_quoted PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_complex_xml PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_unicode PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_unescaped PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_escaped_alone PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_escaped_full PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_escaped_percent PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_percent PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_quote PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_unparied_quote PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escape_slash PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escape_ignored PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escaped_quote_end PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_xml PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_create_blank PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_add PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_remove PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_find PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_parse PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_files PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_save PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_extensions PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_mimetypes PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_translate PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_nonascii PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_default_handlings PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_filename PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_filename_default_language PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_invalid_filename PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_namespaces PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_serialize PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_add_formatting PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity PASSED [ 40%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_invalid_entity PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_indent PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_markup PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_parse_decimal_plurals PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_to_plurals PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity_add_edit PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity_add_noedit PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_remove PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_set PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_others PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_quotes_set PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_xliff_g PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_xliff_namespace PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_zh_hk PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_b_zh_hk PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_missing_plural PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_empty_missing_plural_tag PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_removeunit PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_cdata PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_cdata_text PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_prefix PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_rtl PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_tail PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_translatable_marking PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_escaping PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_isfuzzy PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_create PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_eq PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_escapes PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_difficult_escapes PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_note_sanity PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_line_number_default PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_target PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_rich_get PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_rich_set PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_escape_quote PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_create_blank PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_add PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_remove PASSED [ 41%] 453s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_find PASSED [ 42%] 453s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_parse PASSED [ 42%] 453s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_files PASSED [ 42%] 453s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_save PASSED [ 42%] 453s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_extensions PASSED [ 42%] 453s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_mimetypes PASSED [ 42%] 453s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_translate PASSED [ 42%] 453s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_markup PASSED [ 42%] 453s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_nonascii PASSED [ 42%] 453s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_plural PASSED [ 42%] 453s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_isfuzzy PASSED [ 42%] 453s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_create PASSED [ 42%] 453s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_eq PASSED [ 42%] 453s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_escapes PASSED [ 42%] 453s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_difficult_escapes PASSED [ 42%] 453s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_note_sanity PASSED [ 42%] 453s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_line_number_default PASSED [ 42%] 453s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_target PASSED [ 42%] 453s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_rich_get PASSED [ 42%] 453s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_rich_set PASSED [ 42%] 453s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_escape_quote PASSED [ 42%] 453s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_create_blank PASSED [ 42%] 453s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_add PASSED [ 42%] 453s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_remove PASSED [ 42%] 453s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_find PASSED [ 42%] 453s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_parse PASSED [ 42%] 453s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_files PASSED [ 42%] 453s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_save PASSED [ 42%] 453s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_extensions PASSED [ 42%] 453s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_mimetypes PASSED [ 42%] 453s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_translate PASSED [ 42%] 453s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_markup PASSED [ 42%] 453s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_nonascii PASSED [ 42%] 453s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_quote_escape PASSED [ 42%] 453s tests/translate/storage/test_base.py::TestTranslationUnit::test_isfuzzy PASSED [ 42%] 453s tests/translate/storage/test_base.py::TestTranslationUnit::test_create PASSED [ 42%] 453s tests/translate/storage/test_base.py::TestTranslationUnit::test_eq PASSED [ 42%] 453s tests/translate/storage/test_base.py::TestTranslationUnit::test_target PASSED [ 42%] 453s tests/translate/storage/test_base.py::TestTranslationUnit::test_escapes PASSED [ 42%] 453s tests/translate/storage/test_base.py::TestTranslationUnit::test_difficult_escapes PASSED [ 43%] 453s tests/translate/storage/test_base.py::TestTranslationUnit::test_note_sanity PASSED [ 43%] 453s tests/translate/storage/test_base.py::TestTranslationUnit::test_line_number_default PASSED [ 43%] 453s tests/translate/storage/test_base.py::TestTranslationUnit::test_rich_get PASSED [ 43%] 453s tests/translate/storage/test_base.py::TestTranslationUnit::test_rich_set PASSED [ 43%] 453s tests/translate/storage/test_base.py::TestTranslationStore::test_create_blank PASSED [ 43%] 453s tests/translate/storage/test_base.py::TestTranslationStore::test_add PASSED [ 43%] 453s tests/translate/storage/test_base.py::TestTranslationStore::test_remove PASSED [ 43%] 453s tests/translate/storage/test_base.py::TestTranslationStore::test_find PASSED [ 43%] 453s tests/translate/storage/test_base.py::TestTranslationStore::test_translate PASSED [ 43%] 453s tests/translate/storage/test_base.py::TestTranslationStore::test_parse PASSED [ 43%] 453s tests/translate/storage/test_base.py::TestTranslationStore::test_files PASSED [ 43%] 453s tests/translate/storage/test_base.py::TestTranslationStore::test_save PASSED [ 43%] 453s tests/translate/storage/test_base.py::TestTranslationStore::test_markup PASSED [ 43%] 453s tests/translate/storage/test_base.py::TestTranslationStore::test_nonascii PASSED [ 43%] 453s tests/translate/storage/test_base.py::TestTranslationStore::test_extensions PASSED [ 43%] 453s tests/translate/storage/test_base.py::TestTranslationStore::test_mimetypes PASSED [ 43%] 453s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_create_empty_bundle PASSED [ 43%] 453s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_create_bundle_from_nonexistent_file PASSED [ 43%] 453s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_save_bundle PASSED [ 43%] 453s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_cross_device_save PASSED [ 43%] 453s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_replace_project_zip PASSED [ 43%] 453s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle PASSED [ 43%] 453s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_update_file_in_bundle PASSED [ 43%] 453s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle PASSED [ 43%] 453s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_invalid_bundle_error PASSED [ 43%] 453s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_isfuzzy PASSED [ 43%] 453s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_create PASSED [ 43%] 453s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_eq PASSED [ 43%] 453s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_target PASSED [ 43%] 453s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_escapes PASSED [ 43%] 453s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_line_number_default PASSED [ 43%] 453s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_rich_get PASSED [ 43%] 453s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_rich_set PASSED [ 43%] 453s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_difficult_escapes PASSED [ 43%] 453s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_newlines PASSED [ 43%] 453s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_istranslated PASSED [ 43%] 453s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_note_sanity PASSED [ 43%] 453s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_create_blank PASSED [ 43%] 453s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_add PASSED [ 44%] 453s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_remove PASSED [ 44%] 453s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_find PASSED [ 44%] 453s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_translate PASSED [ 44%] 453s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_parse PASSED [ 44%] 453s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_files PASSED [ 44%] 453s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_save PASSED [ 44%] 453s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_markup PASSED [ 44%] 453s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_nonascii PASSED [ 44%] 453s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_extensions PASSED [ 44%] 453s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_mimetypes PASSED [ 44%] 453s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_checksum PASSED [ 44%] 453s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_isfuzzy PASSED [ 44%] 453s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_create PASSED [ 44%] 453s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_eq PASSED [ 44%] 453s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_target PASSED [ 44%] 453s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_escapes PASSED [ 44%] 453s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_difficult_escapes PASSED [ 44%] 453s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_note_sanity PASSED [ 44%] 453s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_line_number_default PASSED [ 44%] 453s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_rich_get PASSED [ 44%] 453s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_rich_set PASSED [ 44%] 453s tests/translate/storage/test_csvl10n.py::TestCSV::test_create_blank PASSED [ 44%] 453s tests/translate/storage/test_csvl10n.py::TestCSV::test_add PASSED [ 44%] 453s tests/translate/storage/test_csvl10n.py::TestCSV::test_remove PASSED [ 44%] 453s tests/translate/storage/test_csvl10n.py::TestCSV::test_find PASSED [ 44%] 453s tests/translate/storage/test_csvl10n.py::TestCSV::test_translate PASSED [ 44%] 453s tests/translate/storage/test_csvl10n.py::TestCSV::test_parse PASSED [ 44%] 453s tests/translate/storage/test_csvl10n.py::TestCSV::test_files PASSED [ 44%] 453s tests/translate/storage/test_csvl10n.py::TestCSV::test_save PASSED [ 44%] 453s tests/translate/storage/test_csvl10n.py::TestCSV::test_markup PASSED [ 44%] 453s tests/translate/storage/test_csvl10n.py::TestCSV::test_nonascii PASSED [ 44%] 453s tests/translate/storage/test_csvl10n.py::TestCSV::test_extensions PASSED [ 44%] 453s tests/translate/storage/test_csvl10n.py::TestCSV::test_mimetypes PASSED [ 44%] 453s tests/translate/storage/test_csvl10n.py::TestCSV::test_singlequoting PASSED [ 44%] 453s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8 PASSED [ 44%] 453s tests/translate/storage/test_csvl10n.py::TestCSV::test_dialect PASSED [ 44%] 453s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8_sig PASSED [ 44%] 453s tests/translate/storage/test_csvl10n.py::TestCSV::test_default PASSED [ 44%] 453s tests/translate/storage/test_csvl10n.py::TestCSV::test_location_is_parsed PASSED [ 45%] 453s tests/translate/storage/test_csvl10n.py::TestCSV::test_context_is_parsed PASSED [ 45%] 453s tests/translate/storage/test_csvl10n.py::TestCSV::test_newline PASSED [ 45%] 453s tests/translate/storage/test_csvl10n.py::TestCSV::test_parse_sample PASSED [ 45%] 453s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8_detection PASSED [ 45%] 453s tests/translate/storage/test_csvl10n.py::TestCSV::test_encoding PASSED [ 45%] 453s tests/translate/storage/test_csvl10n.py::TestCSV::test_corrupt PASSED [ 45%] 453s tests/translate/storage/test_csvl10n.py::TestCSV::test_encoding_save PASSED [ 45%] 453s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_id_target PASSED [ 45%] 453s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_context_target PASSED [ 45%] 453s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_key_translation PASSED [ 45%] 453s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_roundtrip PASSED [ 45%] 453s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_context_roundtrip PASSED [ 45%] 453s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_id_context_roundtrip PASSED [ 45%] 453s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_target_only_roundtrip PASSED [ 45%] 453s tests/translate/storage/test_csvl10n.py::TestCSV::test_quote_nonnumeric_handling PASSED [ 45%] 453s tests/translate/storage/test_csvl10n.py::TestCSV::test_quote_nonnumeric_with_single_quotes PASSED [ 45%] 453s tests/translate/storage/test_csvl10n.py::TestCSV::test_line_number PASSED [ 45%] 453s tests/translate/storage/test_dtd.py::test_roundtrip_quoting PASSED [ 45%] 453s tests/translate/storage/test_dtd.py::test_quotefordtd_unimplemented_cases XFAIL [ 45%] 453s tests/translate/storage/test_dtd.py::test_quotefordtd PASSED [ 45%] 453s tests/translate/storage/test_dtd.py::test_unquotefromdtd_unimplemented_cases XFAIL [ 45%] 453s tests/translate/storage/test_dtd.py::test_unquotefromdtd PASSED [ 45%] 453s tests/translate/storage/test_dtd.py::test_android_roundtrip_quoting PASSED [ 45%] 453s tests/translate/storage/test_dtd.py::test_quoteforandroid PASSED [ 45%] 453s tests/translate/storage/test_dtd.py::test_unquotefromandroid PASSED [ 45%] 453s tests/translate/storage/test_dtd.py::test_removeinvalidamp PASSED [ 45%] 453s tests/translate/storage/test_dtd.py::TestDTDUnit::test_isfuzzy PASSED [ 45%] 453s tests/translate/storage/test_dtd.py::TestDTDUnit::test_create PASSED [ 45%] 453s tests/translate/storage/test_dtd.py::TestDTDUnit::test_eq PASSED [ 45%] 453s tests/translate/storage/test_dtd.py::TestDTDUnit::test_escapes PASSED [ 45%] 453s tests/translate/storage/test_dtd.py::TestDTDUnit::test_difficult_escapes PASSED [ 45%] 453s tests/translate/storage/test_dtd.py::TestDTDUnit::test_note_sanity PASSED [ 45%] 453s tests/translate/storage/test_dtd.py::TestDTDUnit::test_line_number_default PASSED [ 45%] 453s tests/translate/storage/test_dtd.py::TestDTDUnit::test_target PASSED [ 45%] 453s tests/translate/storage/test_dtd.py::TestDTDUnit::test_rich_get PASSED [ 45%] 453s tests/translate/storage/test_dtd.py::TestDTDUnit::test_rich_set PASSED [ 45%] 453s tests/translate/storage/test_dtd.py::TestDTD::test_create_blank PASSED [ 45%] 453s tests/translate/storage/test_dtd.py::TestDTD::test_add PASSED [ 45%] 453s tests/translate/storage/test_dtd.py::TestDTD::test_remove PASSED [ 46%] 453s tests/translate/storage/test_dtd.py::TestDTD::test_find PASSED [ 46%] 453s tests/translate/storage/test_dtd.py::TestDTD::test_parse PASSED [ 46%] 453s tests/translate/storage/test_dtd.py::TestDTD::test_files PASSED [ 46%] 453s tests/translate/storage/test_dtd.py::TestDTD::test_save PASSED [ 46%] 453s tests/translate/storage/test_dtd.py::TestDTD::test_extensions PASSED [ 46%] 453s tests/translate/storage/test_dtd.py::TestDTD::test_mimetypes PASSED [ 46%] 453s tests/translate/storage/test_dtd.py::TestDTD::test_translate PASSED [ 46%] 453s tests/translate/storage/test_dtd.py::TestDTD::test_markup PASSED [ 46%] 453s tests/translate/storage/test_dtd.py::TestDTD::test_nonascii PASSED [ 46%] 453s tests/translate/storage/test_dtd.py::TestDTD::test_simpleentity PASSED [ 46%] 453s tests/translate/storage/test_dtd.py::TestDTD::test_blanklines PASSED [ 46%] 453s tests/translate/storage/test_dtd.py::TestDTD::test_simpleentity_source PASSED [ 46%] 453s tests/translate/storage/test_dtd.py::TestDTD::test_hashcomment_source PASSED [ 46%] 453s tests/translate/storage/test_dtd.py::TestDTD::test_commentclosing PASSED [ 46%] 453s tests/translate/storage/test_dtd.py::TestDTD::test_commententity PASSED [ 46%] 453s tests/translate/storage/test_dtd.py::TestDTD::test_newlines_in_entity PASSED [ 46%] 453s tests/translate/storage/test_dtd.py::TestDTD::test_conflate_comments PASSED [ 46%] 453s tests/translate/storage/test_dtd.py::TestDTD::test_localisation_notes PASSED [ 46%] 453s tests/translate/storage/test_dtd.py::TestDTD::test_entitityreference_in_source PASSED [ 46%] 453s tests/translate/storage/test_dtd.py::TestDTD::test_entitityreference_order_in_source PASSED [ 46%] 453s tests/translate/storage/test_dtd.py::TestDTD::test_comment_following XFAIL [ 46%] 453s tests/translate/storage/test_dtd.py::TestDTD::test_comment_newline_space_closing PASSED [ 46%] 453s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting XFAIL [ 46%] 453s tests/translate/storage/test_dtd.py::TestDTD::test_missing_quotes PASSED [ 46%] 453s tests/translate/storage/test_dtd.py::TestDTD::test_entity_escaping PASSED [ 46%] 453s tests/translate/storage/test_dtd.py::TestDTD::test_entity_escaping_roundtrip PASSED [ 46%] 453s tests/translate/storage/test_dtd.py::TestDTD::test_multiple_blank_lines PASSED [ 46%] 453s tests/translate/storage/test_dtd.py::TestDTD::test_entity_with_extra_spaces PASSED [ 46%] 453s tests/translate/storage/test_dtd.py::TestDTD::test_mixed_content_preservation PASSED [ 46%] 453s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_create_blank PASSED [ 46%] 453s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_add PASSED [ 46%] 453s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_remove PASSED [ 46%] 453s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_find PASSED [ 46%] 453s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_parse PASSED [ 46%] 453s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_files PASSED [ 46%] 453s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_save PASSED [ 46%] 453s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_extensions PASSED [ 46%] 453s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_mimetypes PASSED [ 46%] 453s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_translate PASSED [ 47%] 453s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_markup PASSED [ 47%] 453s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_nonascii PASSED [ 47%] 453s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_single_quote_escape PASSED [ 47%] 453s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_single_quote_escape_parse_and_convert_back PASSED [ 47%] 453s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_double_quote_escape PASSED [ 47%] 453s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_double_quote_escape_parse_and_convert_back PASSED [ 47%] 453s tests/translate/storage/test_factory.py::TestPOFactory::test_getclass PASSED [ 47%] 453s tests/translate/storage/test_factory.py::TestPOFactory::test_getobject_store PASSED [ 47%] 453s tests/translate/storage/test_factory.py::TestPOFactory::test_getobject PASSED [ 47%] 453s tests/translate/storage/test_factory.py::TestPOFactory::test_get_noname_object PASSED [ 47%] 453s tests/translate/storage/test_factory.py::TestPOFactory::test_gzfile PASSED [ 47%] 453s tests/translate/storage/test_factory.py::TestPOFactory::test_bz2file PASSED [ 47%] 453s tests/translate/storage/test_factory.py::TestPOFactory::test_directory PASSED [ 47%] 453s tests/translate/storage/test_factory.py::TestXliffFactory::test_getclass PASSED [ 47%] 453s tests/translate/storage/test_factory.py::TestXliffFactory::test_getobject_store PASSED [ 47%] 453s tests/translate/storage/test_factory.py::TestXliffFactory::test_getobject PASSED [ 47%] 453s tests/translate/storage/test_factory.py::TestXliffFactory::test_get_noname_object PASSED [ 47%] 453s tests/translate/storage/test_factory.py::TestXliffFactory::test_gzfile PASSED [ 47%] 453s tests/translate/storage/test_factory.py::TestXliffFactory::test_bz2file PASSED [ 47%] 453s tests/translate/storage/test_factory.py::TestXliffFactory::test_directory PASSED [ 47%] 453s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getclass PASSED [ 47%] 453s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getobject_store PASSED [ 47%] 453s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getobject PASSED [ 47%] 453s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_get_noname_object PASSED [ 47%] 453s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_gzfile PASSED [ 47%] 453s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_bz2file PASSED [ 47%] 453s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_directory PASSED [ 47%] 453s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getclass PASSED [ 47%] 453s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getobject_store PASSED [ 47%] 453s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getobject PASSED [ 47%] 453s tests/translate/storage/test_factory.py::TestWordfastFactory::test_get_noname_object PASSED [ 47%] 453s tests/translate/storage/test_factory.py::TestWordfastFactory::test_gzfile PASSED [ 47%] 453s tests/translate/storage/test_factory.py::TestWordfastFactory::test_bz2file PASSED [ 47%] 453s tests/translate/storage/test_factory.py::TestWordfastFactory::test_directory PASSED [ 47%] 453s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_isfuzzy PASSED [ 47%] 453s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_create PASSED [ 47%] 453s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_eq PASSED [ 47%] 453s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_escapes PASSED [ 47%] 453s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_difficult_escapes PASSED [ 48%] 453s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_note_sanity PASSED [ 48%] 453s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_line_number_default PASSED [ 48%] 453s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_target PASSED [ 48%] 453s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_rich_get PASSED [ 48%] 453s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_rich_set PASSED [ 48%] 453s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_create_blank PASSED [ 48%] 453s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_add PASSED [ 48%] 453s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_remove PASSED [ 48%] 453s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_find PASSED [ 48%] 453s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_parse PASSED [ 48%] 453s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_files PASSED [ 48%] 453s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_save PASSED [ 48%] 453s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_extensions PASSED [ 48%] 453s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_mimetypes PASSED [ 48%] 453s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_translate PASSED [ 48%] 453s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_markup PASSED [ 48%] 453s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_nonascii PASSED [ 48%] 453s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_root_config_detect PASSED [ 48%] 453s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_value_config_detect PASSED [ 48%] 453s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_key_config_detect PASSED [ 48%] 453s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_value_config_mixed_ok PASSED [ 48%] 453s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_namespace_config_detect PASSED [ 48%] 453s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_four_spaces PASSED [ 48%] 453s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_tab PASSED [ 48%] 453s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_none_linearizes PASSED [ 48%] 453s tests/translate/storage/test_html.py::test_guess_encoding PASSED [ 48%] 453s tests/translate/storage/test_html.py::TestHTMLParsing::test_mismatched_tags PASSED [ 48%] 453s tests/translate/storage/test_html.py::TestHTMLParsing::test_self_closing_tags PASSED [ 48%] 453s tests/translate/storage/test_html.py::TestHTMLParsing::test_escaping_script_and_pre PASSED [ 48%] 453s tests/translate/storage/test_html.py::TestHTMLExtraction::test_strip_html PASSED [ 48%] 453s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_tag_figcaption PASSED [ 48%] 453s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_tag_caption_td_th PASSED [ 48%] 453s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_attr_alt PASSED [ 48%] 453s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_attr_title PASSED [ 48%] 453s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_pre PASSED [ 48%] 453s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_pre_code PASSED [ 48%] 453s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_button PASSED [ 48%] 453s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_lang_attribute PASSED [ 48%] 453s tests/translate/storage/test_html.py::TestHTMLExtraction::test_dir_attribute_not_extracted PASSED [ 49%] 453s tests/translate/storage/test_html.py::TestHTMLExtraction::test_data_translate_ignore_attribute PASSED [ 49%] 453s tests/translate/storage/test_html.py::TestHTMLExtraction::test_translate_comment_directives PASSED [ 49%] 453s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_meta_social_media_tags PASSED [ 49%] 453s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_meta_non_translatable_tags PASSED [ 49%] 453s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_meta_mixed_translatable_and_non_translatable PASSED [ 49%] 453s tests/translate/storage/test_html.py::TestHTMLExtraction::test_data_translate_comment_attribute PASSED [ 49%] 453s tests/translate/storage/test_html_context.py::test_html_context_basic PASSED [ 49%] 453s tests/translate/storage/test_html_context.py::test_html_context_attribute PASSED [ 49%] 453s tests/translate/storage/test_html_context.py::test_html_context_attribute_with_id PASSED [ 49%] 453s tests/translate/storage/test_html_context.py::test_html_context_same_source_different_contexts PASSED [ 49%] 453s tests/translate/storage/test_html_context.py::test_html_context_nested_outer_wins PASSED [ 49%] 453s tests/translate/storage/test_html_context.py::test_html_context_absent PASSED [ 49%] 453s tests/translate/storage/test_html_context.py::test_html_context_id_overridden_by_explicit PASSED [ 49%] 453s tests/translate/storage/test_html_context.py::test_html_context_id_not_used_when_no_duplicates PASSED [ 49%] 453s tests/translate/storage/test_html_context.py::test_html_context_id_not_used_when_data_translate_context_identical PASSED [ 49%] 453s tests/translate/storage/test_html_context.py::test_html_context_disambiguates_duplicates_with_id PASSED [ 49%] 453s tests/translate/storage/test_html_context.py::test_html_context_disambiguates_duplicates_with_ancestor_id PASSED [ 49%] 453s tests/translate/storage/test_ini.py::TestINIUnit::test_isfuzzy PASSED [ 49%] 453s tests/translate/storage/test_ini.py::TestINIUnit::test_create PASSED [ 49%] 453s tests/translate/storage/test_ini.py::TestINIUnit::test_eq PASSED [ 49%] 453s tests/translate/storage/test_ini.py::TestINIUnit::test_escapes PASSED [ 49%] 453s tests/translate/storage/test_ini.py::TestINIUnit::test_difficult_escapes PASSED [ 49%] 453s tests/translate/storage/test_ini.py::TestINIUnit::test_note_sanity PASSED [ 49%] 453s tests/translate/storage/test_ini.py::TestINIUnit::test_line_number_default PASSED [ 49%] 453s tests/translate/storage/test_ini.py::TestINIUnit::test_target PASSED [ 49%] 453s tests/translate/storage/test_ini.py::TestINIUnit::test_rich_get PASSED [ 49%] 453s tests/translate/storage/test_ini.py::TestINIUnit::test_rich_set PASSED [ 49%] 453s tests/translate/storage/test_ini.py::TestINIStore::test_create_blank PASSED [ 49%] 453s tests/translate/storage/test_ini.py::TestINIStore::test_add PASSED [ 49%] 453s tests/translate/storage/test_ini.py::TestINIStore::test_remove PASSED [ 49%] 453s tests/translate/storage/test_ini.py::TestINIStore::test_find PASSED [ 49%] 453s tests/translate/storage/test_ini.py::TestINIStore::test_parse PASSED [ 49%] 453s tests/translate/storage/test_ini.py::TestINIStore::test_files PASSED [ 49%] 453s tests/translate/storage/test_ini.py::TestINIStore::test_save PASSED [ 49%] 453s tests/translate/storage/test_ini.py::TestINIStore::test_extensions PASSED [ 49%] 453s tests/translate/storage/test_ini.py::TestINIStore::test_mimetypes PASSED [ 49%] 453s tests/translate/storage/test_ini.py::TestINIStore::test_translate PASSED [ 49%] 453s tests/translate/storage/test_ini.py::TestINIStore::test_markup PASSED [ 49%] 453s tests/translate/storage/test_ini.py::TestINIStore::test_nonascii PASSED [ 50%] 453s tests/translate/storage/test_ini.py::TestINIStore::test_serialize PASSED [ 50%] 453s tests/translate/storage/test_ini.py::TestINIStore::test_rem PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_isfuzzy PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_create PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_eq PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_escapes PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_difficult_escapes PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_note_sanity PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_line_number_default PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_target PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_rich_get PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_rich_set PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_create_blank PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_remove PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_find PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_parse PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_files PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_save PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_extensions PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_mimetypes PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_translate PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_markup PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_nonascii PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_serialize PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_can_not_detect PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_error PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_filter PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_ordering PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_args PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_bom PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_complex PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_complex_array PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add_list_like PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add_blank PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_types PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_null PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_isfuzzy PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_create PASSED [ 50%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_eq PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_escapes PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_difficult_escapes PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_note_sanity PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_line_number_default PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_target PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_rich_get PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_rich_set PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_serialize PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_ordering PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_array PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_index PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_index_nested PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_nested_list_mixed PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_list_to_dict PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_complex_keys PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_other PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[0]-expected0] PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[test[0]-expected1] PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[test[0][1][2][3]-expected2] PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[test]selection-expected3] PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[test][0]selection-expected4] PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[0][test]selection-expected5] PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[-expected6] PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_dot_keys PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_isfuzzy PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_create PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_eq PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_escapes PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_difficult_escapes PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_note_sanity PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_line_number_default PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_target PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_rich_get PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_rich_set PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_create_blank PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_add PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_remove PASSED [ 51%] 453s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_find PASSED [ 52%] 453s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_parse PASSED [ 52%] 453s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_files PASSED [ 52%] 453s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_save PASSED [ 52%] 453s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_extensions PASSED [ 52%] 453s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_mimetypes PASSED [ 52%] 453s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_translate PASSED [ 52%] 453s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_markup PASSED [ 52%] 453s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_nonascii PASSED [ 52%] 453s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_serialize PASSED [ 52%] 453s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_dot_keys PASSED [ 52%] 454s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_leading_dot_keys PASSED [ 52%] 454s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_serialize_no_description PASSED [ 52%] 454s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_set_target PASSED [ 52%] 454s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_placeholders PASSED [ 52%] 454s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_comments PASSED [ 52%] 454s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_create_blank PASSED [ 52%] 454s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_add PASSED [ 52%] 454s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_remove PASSED [ 52%] 454s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_find PASSED [ 52%] 454s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_parse PASSED [ 52%] 454s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_files PASSED [ 52%] 454s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_save PASSED [ 52%] 454s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_extensions PASSED [ 52%] 454s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_mimetypes PASSED [ 52%] 454s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_translate PASSED [ 52%] 454s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_markup PASSED [ 52%] 454s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_nonascii PASSED [ 52%] 454s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_serialize PASSED [ 52%] 454s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_units PASSED [ 52%] 454s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_plurals PASSED [ 52%] 454s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_nested_array PASSED [ 52%] 454s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_new_plural PASSED [ 52%] 454s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_new_plural_id PASSED [ 52%] 454s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_create_blank PASSED [ 52%] 454s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_add PASSED [ 52%] 454s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_remove PASSED [ 52%] 454s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_find PASSED [ 52%] 454s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_parse PASSED [ 52%] 454s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_files PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_save PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_extensions PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_mimetypes PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_translate PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_markup PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_nonascii PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_plurals PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_plurals_missing PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_case_no_msg PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_complex_id PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_create_blank PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_add PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_remove PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_find PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_parse PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_files PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_save PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_extensions PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_mimetypes PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_translate PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_markup PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_nonascii PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_serialize PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_units PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_plurals PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_nested_array PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_new_plural PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_ru PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_create_blank PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_add PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_remove PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_find PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_parse PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_files PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_save PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_extensions PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_mimetypes PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_translate PASSED [ 53%] 454s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_markup PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_nonascii PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_serialize PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_units PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_plurals PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_nested_array PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_new_plural PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_ru PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_create_blank PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_add PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_remove PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_find PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_parse PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_files PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_save PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_extensions PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_mimetypes PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_translate PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_markup PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_nonascii PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_plurals PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_plurals_missing PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_invalid PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_dot_keys PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_create_blank PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_add PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_remove PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_find PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_parse PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_files PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_save PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_extensions PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_mimetypes PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_translate PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_markup PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_nonascii PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_1 PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_2 PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_blank PASSED [ 54%] 454s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_missing PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_simplification PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_invalid PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_dot_keys PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_create_blank PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_add PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_remove PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_find PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_parse PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_files PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_save PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_extensions PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_mimetypes PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_translate PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_markup PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_nonascii PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_roundtrip PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_leading_dot_keys PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_invalid_nesting PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_empty_metadata_not_stored PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_create_blank PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_add PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_remove PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_find PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_parse PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_files PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_save PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_extensions PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_mimetypes PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_translate PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_markup PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_nonascii PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_roundtrip PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_leading_dot_keys PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_invalid PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_isfuzzy PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_create PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_eq PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_escapes PASSED [ 55%] 454s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_difficult_escapes PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_note_sanity PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_line_number_default PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_target PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_rich_get PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_rich_set PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_source_property_maps_to_id PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_source_roundtrip PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_create_blank PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_add PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_remove PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_find PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_parse PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_files PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_save PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_extensions PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_mimetypes PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_translate PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_markup PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_nonascii PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_parse_simple PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_serialize_simple PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_parse_with_plurals PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_preserve_plural_form PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_roundtrip_with_plurals PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_ignore_non_translations_keys PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_preserve_other_metadata PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_add_unit PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_add_plural_unit PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_empty_translations PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_create_blank PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_add PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_remove PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_find PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_parse PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_files PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_save PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_extensions PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_mimetypes PASSED [ 56%] 454s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_translate PASSED [ 57%] 454s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_markup PASSED [ 57%] 454s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_nonascii PASSED [ 57%] 454s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_roundtrip PASSED [ 57%] 454s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_basic_parsing PASSED [ 57%] 454s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_multiple_metadata PASSED [ 57%] 454s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_no_metadata PASSED [ 57%] 454s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_edit_target PASSED [ 57%] 454s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_edit_notes PASSED [ 57%] 454s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_keys_with_dots PASSED [ 57%] 454s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_leading_dot_keys PASSED [ 57%] 454s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_invalid_nesting PASSED [ 57%] 454s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_source_property_get_set PASSED [ 57%] 454s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_source_property_persists PASSED [ 57%] 454s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_getcontext_returns_id PASSED [ 57%] 454s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_parsing_preserves_order PASSED [ 57%] 454s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_metadata_without_translation PASSED [ 57%] 454s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_complex_keys_with_multiple_dots PASSED [ 57%] 454s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_source_empty_string PASSED [ 57%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_atx_heading PASSED [ 57%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_autolink PASSED [ 57%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_block_quote PASSED [ 57%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_code_block PASSED [ 57%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_code_span PASSED [ 57%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_atx_heading PASSED [ 57%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_document PASSED [ 57%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_list_item PASSED [ 57%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_escaped_character PASSED [ 57%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_hard_line_break PASSED [ 57%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_block PASSED [ 57%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_character_entities PASSED [ 57%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_span PASSED [ 57%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_image_embedded_in_link PASSED [ 57%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_collapsed_reference_link PASSED [ 57%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_full_reference_link PASSED [ 57%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_shortcut_reference_link PASSED [ 57%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_merging_of_adjacent_placeholders PASSED [ 57%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_nested_block_tokens PASSED [ 57%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_nested_list PASSED [ 57%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_paragraph_with_basic_markup PASSED [ 58%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_paragraph_with_only_whitespace_and_placeholders PASSED [ 58%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_placeholder_trimming PASSED [ 58%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_image PASSED [ 58%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_image_no_title PASSED [ 58%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_link PASSED [ 58%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_text_paragraph PASSED [ 58%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_remove_placeholders_from_both_ends_of_translation_units PASSED [ 58%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_setext_heading PASSED [ 58%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_table_with_header PASSED [ 58%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_thematic_break PASSED [ 58%] 454s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_hard_line_break_in_translation_unit PASSED [ 58%] 454s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_missing_placeholder PASSED [ 58%] 454s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_duplicate_placeholder PASSED [ 58%] 454s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_extraneous_placeholder PASSED [ 58%] 454s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_reordered_placeholders PASSED [ 58%] 454s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_invalid_markdown_in_translation PASSED [ 58%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_section_basic PASSED [ 58%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_section_with_markup PASSED [ 58%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_section_with_code_block PASSED [ 58%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_multiple_ignore_sections PASSED [ 58%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_at_start PASSED [ 58%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_at_end PASSED [ 58%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_nested_structures_in_ignore PASSED [ 58%] 454s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_link_references_in_ignore PASSED [ 58%] 454s tests/translate/storage/test_mo.py::TestMOUnit::test_isfuzzy PASSED [ 58%] 454s tests/translate/storage/test_mo.py::TestMOUnit::test_create PASSED [ 58%] 454s tests/translate/storage/test_mo.py::TestMOUnit::test_eq PASSED [ 58%] 454s tests/translate/storage/test_mo.py::TestMOUnit::test_target PASSED [ 58%] 454s tests/translate/storage/test_mo.py::TestMOUnit::test_escapes PASSED [ 58%] 454s tests/translate/storage/test_mo.py::TestMOUnit::test_difficult_escapes PASSED [ 58%] 454s tests/translate/storage/test_mo.py::TestMOUnit::test_note_sanity PASSED [ 58%] 454s tests/translate/storage/test_mo.py::TestMOUnit::test_line_number_default PASSED [ 58%] 454s tests/translate/storage/test_mo.py::TestMOUnit::test_rich_get PASSED [ 58%] 454s tests/translate/storage/test_mo.py::TestMOUnit::test_rich_set PASSED [ 58%] 454s tests/translate/storage/test_mo.py::TestMOUnit::test_context PASSED [ 58%] 454s tests/translate/storage/test_mo.py::TestMOFile::test_create_blank PASSED [ 58%] 454s tests/translate/storage/test_mo.py::TestMOFile::test_add PASSED [ 58%] 454s tests/translate/storage/test_mo.py::TestMOFile::test_remove PASSED [ 58%] 454s tests/translate/storage/test_mo.py::TestMOFile::test_find PASSED [ 59%] 454s tests/translate/storage/test_mo.py::TestMOFile::test_translate PASSED [ 59%] 454s tests/translate/storage/test_mo.py::TestMOFile::test_parse PASSED [ 59%] 454s tests/translate/storage/test_mo.py::TestMOFile::test_files PASSED [ 59%] 454s tests/translate/storage/test_mo.py::TestMOFile::test_save PASSED [ 59%] 454s tests/translate/storage/test_mo.py::TestMOFile::test_markup PASSED [ 59%] 454s tests/translate/storage/test_mo.py::TestMOFile::test_nonascii PASSED [ 59%] 454s tests/translate/storage/test_mo.py::TestMOFile::test_extensions PASSED [ 59%] 454s tests/translate/storage/test_mo.py::TestMOFile::test_mimetypes PASSED [ 59%] 454s tests/translate/storage/test_mo.py::TestMOFile::test_language PASSED [ 59%] 454s tests/translate/storage/test_mo.py::TestMOFile::test_context PASSED [ 59%] 454s tests/translate/storage/test_mo.py::TestMOFile::test_output PASSED [ 59%] 454s tests/translate/storage/test_mo.py::TestMOFile::test_endian_version_parsing PASSED [ 59%] 454s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_isfuzzy PASSED [ 59%] 454s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_create PASSED [ 59%] 454s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_eq PASSED [ 59%] 454s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_escapes PASSED [ 59%] 454s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_difficult_escapes PASSED [ 59%] 454s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_note_sanity PASSED [ 59%] 454s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_line_number_default PASSED [ 59%] 454s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_target PASSED [ 59%] 454s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_rich_get PASSED [ 59%] 454s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_rich_set PASSED [ 59%] 454s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_create_blank PASSED [ 59%] 454s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_add PASSED [ 59%] 454s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_remove PASSED [ 59%] 454s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_find PASSED [ 59%] 454s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_parse PASSED [ 59%] 454s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_files PASSED [ 59%] 454s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_save PASSED [ 59%] 454s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_extensions PASSED [ 59%] 454s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_mimetypes PASSED [ 59%] 454s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_translate PASSED [ 59%] 454s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_markup PASSED [ 59%] 454s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_nonascii PASSED [ 59%] 454s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[-] PASSED [ 59%] 454s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String-String] PASSED [ 59%] 454s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok}-String] PASSED [ 59%] 454s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {OK}-String] PASSED [ 59%] 454s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[\u015e\u0167\u0159\u012b\u019e\u0260 {ok}-\u015e\u0167\u0159\u012b\u019e\u0260] PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String{ok}-String] PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String{OK}-String] PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok}-String] PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok} -String] PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_isfuzzy PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_create PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_eq PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_target PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_escapes PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_difficult_escapes PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_note_sanity PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_line_number_default PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_rich_get PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_rich_set PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_translate_but_same PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_untranslated PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_comments PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_copy_target PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_create_blank PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_add PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_remove PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_find PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_translate PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_parse PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_files PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_save PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_markup PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_extensions PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_mimetypes PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_nonascii PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_format_layout PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_crlf PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_active_flag PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_multiline_comments PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_template PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[--False] PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ -Source -True] PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ {ok}-Source-True] PASSED [ 60%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ {ok} -Source-True] PASSED [ 61%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[{ok}-Source-True] PASSED [ 61%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_headers PASSED [ 61%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_not_headers PASSED [ 61%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[0] PASSED [ 61%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[1] PASSED [ 61%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[2] PASSED [ 61%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[3] PASSED [ 61%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_tag_comments PASSED [ 61%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_maxlength PASSED [ 61%] 454s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_line_number PASSED [ 61%] 454s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_isfuzzy PASSED [ 61%] 454s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_create PASSED [ 61%] 454s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_eq PASSED [ 61%] 454s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_target PASSED [ 61%] 454s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_escapes PASSED [ 61%] 454s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_difficult_escapes PASSED [ 61%] 454s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_note_sanity PASSED [ 61%] 454s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_line_number_default PASSED [ 61%] 454s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_rich_get PASSED [ 61%] 454s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_rich_set PASSED [ 61%] 454s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_create_blank PASSED [ 61%] 454s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_add PASSED [ 61%] 454s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_remove PASSED [ 61%] 454s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_find PASSED [ 61%] 454s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_translate PASSED [ 61%] 454s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_parse PASSED [ 61%] 454s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_files PASSED [ 61%] 454s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_save PASSED [ 61%] 454s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_markup PASSED [ 61%] 454s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_nonascii PASSED [ 61%] 454s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_mimetypes PASSED [ 61%] 454s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_extensions XFAIL [ 61%] 454s tests/translate/storage/test_oo.py::test_makekey PASSED [ 61%] 454s tests/translate/storage/test_oo.py::test_escape_help_text PASSED [ 61%] 454s tests/translate/storage/test_oo.py::TestOO::test_simpleentry PASSED [ 61%] 454s tests/translate/storage/test_oo.py::TestOO::test_simpleentry_quickhelptest PASSED [ 61%] 454s tests/translate/storage/test_oo.py::TestOO::test_simpleentry_title PASSED [ 61%] 454s tests/translate/storage/test_oo.py::TestOO::test_blankline PASSED [ 61%] 454s tests/translate/storage/test_oo.py::TestOO::test_fieldlength PASSED [ 62%] 454s tests/translate/storage/test_oo.py::TestOO::test_escapes PASSED [ 62%] 454s tests/translate/storage/test_php.py::test_php_escaping_single_quote PASSED [ 62%] 454s tests/translate/storage/test_php.py::test_php_escaping_double_quote PASSED [ 62%] 454s tests/translate/storage/test_php.py::TestPhpUnit::test_isfuzzy PASSED [ 62%] 454s tests/translate/storage/test_php.py::TestPhpUnit::test_create PASSED [ 62%] 454s tests/translate/storage/test_php.py::TestPhpUnit::test_eq PASSED [ 62%] 454s tests/translate/storage/test_php.py::TestPhpUnit::test_escapes PASSED [ 62%] 454s tests/translate/storage/test_php.py::TestPhpUnit::test_note_sanity PASSED [ 62%] 454s tests/translate/storage/test_php.py::TestPhpUnit::test_line_number_default PASSED [ 62%] 454s tests/translate/storage/test_php.py::TestPhpUnit::test_target PASSED [ 62%] 454s tests/translate/storage/test_php.py::TestPhpUnit::test_rich_get PASSED [ 62%] 454s tests/translate/storage/test_php.py::TestPhpUnit::test_rich_set PASSED [ 62%] 454s tests/translate/storage/test_php.py::TestPhpUnit::test_difficult_escapes PASSED [ 62%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_create_blank PASSED [ 62%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_add PASSED [ 62%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_remove PASSED [ 62%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_find PASSED [ 62%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_parse PASSED [ 62%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_files PASSED [ 62%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_save PASSED [ 62%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_extensions PASSED [ 62%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_mimetypes PASSED [ 62%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_translate PASSED [ 62%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_markup PASSED [ 62%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_nonascii PASSED [ 62%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition PASSED [ 62%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition_source PASSED [ 62%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_spaces_in_name PASSED [ 62%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_comment_definition PASSED [ 62%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_comment_blocks PASSED [ 62%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_comment_output PASSED [ 62%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_comment_add PASSED [ 62%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_multiline PASSED [ 62%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays PASSED [ 62%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_array_no_array_syntax PASSED [ 62%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_spaces PASSED [ 62%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_quotes PASSED [ 62%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_number_as_value PASSED [ 62%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_non_textual PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_define PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_define_with_spaces_before_key PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_after_equal_delimiter PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_after_equal_delimiter_and_before_key PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_no_spaces_after_equal_delimiter PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_no_spaces_after_equaldel_but_before_key PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_entries_with_quotes PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_comments_at_entry_line_end PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_double_slash_comments_before_entries PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_before_end_delimiter PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simpledefinition_spaces_before_end_delimiter PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_no_trailing_comma PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_space_before_comma PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_space_before_array_declaration PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_declared_in_a_single_line PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_no_keys PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_no_keys_assigned_to_array PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_no_keys PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_assignment_in_line_where_multiline_comment_ends PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_using_short_array_syntax PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_space_before_array_declaration PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_unnamed_nested_arrays PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_array_declaration_in_next_line PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_array_with_newline_after_delimiter PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_blank_entries PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_slashstar_in_string PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_heredoc_syntax PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition_after_define PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_quotes PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_concatenation PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_serialize PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_space_before_comma PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_equals_in_id PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_comma_in_string PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_nowdoc PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_plain_concatenation PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_array_keys PASSED [ 63%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_double_var PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_return_array PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_with_spaces PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_with_comments PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_short PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_short_quotes PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestPhpFile::test_addunit PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_isfuzzy PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_create PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_eq PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_escapes PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_difficult_escapes PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_note_sanity PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_line_number_default PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_target PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_rich_get PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_rich_set PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_create_blank PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_remove PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_find PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_parse PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_files PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_save PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_extensions PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_mimetypes PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_translate PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_markup PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_nonascii PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_plurals PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_key_stripping PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_key_stripping_array_syntax PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_key_stripping_numeric_keys PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_roundtrip_short_array PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_roundtrip_array_syntax PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_setid_preserves_structure PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_setid_with_array_syntax PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_addunit_with_setid PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_unit_to_short_array_file PASSED [ 64%] 454s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_unit_to_array_function_file PASSED [ 65%] 454s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_multiple_units_to_short_array PASSED [ 65%] 454s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_multiple_units_to_array_function PASSED [ 65%] 454s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_numeric_keys_no_quotes PASSED [ 65%] 454s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_empty_string_key PASSED [ 65%] 454s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_setid_with_non_string_value PASSED [ 65%] 454s tests/translate/storage/test_po.py::test_roundtrip_quoting PASSED [ 65%] 454s tests/translate/storage/test_po.py::TestPOUnit::test_isfuzzy PASSED [ 65%] 454s tests/translate/storage/test_po.py::TestPOUnit::test_create PASSED [ 65%] 454s tests/translate/storage/test_po.py::TestPOUnit::test_eq PASSED [ 65%] 454s tests/translate/storage/test_po.py::TestPOUnit::test_target PASSED [ 65%] 454s tests/translate/storage/test_po.py::TestPOUnit::test_escapes PASSED [ 65%] 454s tests/translate/storage/test_po.py::TestPOUnit::test_difficult_escapes PASSED [ 65%] 454s tests/translate/storage/test_po.py::TestPOUnit::test_note_sanity PASSED [ 65%] 454s tests/translate/storage/test_po.py::TestPOUnit::test_line_number_default PASSED [ 65%] 454s tests/translate/storage/test_po.py::TestPOUnit::test_rich_get PASSED [ 65%] 454s tests/translate/storage/test_po.py::TestPOUnit::test_rich_set PASSED [ 65%] 454s tests/translate/storage/test_po.py::TestPOUnit::test_istranslatable PASSED [ 65%] 454s tests/translate/storage/test_po.py::TestPOUnit::test_locations PASSED [ 65%] 454s tests/translate/storage/test_po.py::TestPOUnit::test_nongettext_location PASSED [ 65%] 454s tests/translate/storage/test_po.py::TestPOUnit::test_adding_empty_note PASSED [ 65%] 454s tests/translate/storage/test_po.py::TestPOUnit::test_markreview PASSED [ 65%] 454s tests/translate/storage/test_po.py::TestPOUnit::test_errors PASSED [ 65%] 454s tests/translate/storage/test_po.py::TestPOUnit::test_no_plural_settarget PASSED [ 65%] 454s tests/translate/storage/test_po.py::TestPOUnit::test_wrapping_bug PASSED [ 65%] 454s tests/translate/storage/test_po.py::TestPOUnit::test_extract_msgidcomments_from_text PASSED [ 65%] 454s tests/translate/storage/test_po.py::TestPOUnit::test_isheader PASSED [ 65%] 454s tests/translate/storage/test_po.py::TestPOUnit::test_buildfromunit PASSED [ 65%] 454s tests/translate/storage/test_po.py::TestPOFile::test_create_blank PASSED [ 65%] 454s tests/translate/storage/test_po.py::TestPOFile::test_add PASSED [ 65%] 454s tests/translate/storage/test_po.py::TestPOFile::test_remove PASSED [ 65%] 454s tests/translate/storage/test_po.py::TestPOFile::test_find PASSED [ 65%] 454s tests/translate/storage/test_po.py::TestPOFile::test_translate PASSED [ 65%] 454s tests/translate/storage/test_po.py::TestPOFile::test_parse PASSED [ 65%] 454s tests/translate/storage/test_po.py::TestPOFile::test_files PASSED [ 65%] 454s tests/translate/storage/test_po.py::TestPOFile::test_save PASSED [ 65%] 454s tests/translate/storage/test_po.py::TestPOFile::test_markup PASSED [ 65%] 454s tests/translate/storage/test_po.py::TestPOFile::test_nonascii PASSED [ 65%] 454s tests/translate/storage/test_po.py::TestPOFile::test_extensions PASSED [ 65%] 454s tests/translate/storage/test_po.py::TestPOFile::test_mimetypes PASSED [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_context_only PASSED [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_simpleentry PASSED [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_copy PASSED [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_parse_source_string PASSED [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_parse_file PASSED [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_unicode PASSED [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_plurals PASSED [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_plural_unicode PASSED [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_nongettext_location PASSED [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_percent_location PASSED [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_kde_plurals XFAIL [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_empty_lines_notes PASSED [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_fuzzy PASSED [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_untranslated XFAIL [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_merging_automaticcomments PASSED [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_malformed_units PASSED [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_invalid_keyword PASSED [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_malformed_obsolete_units PASSED [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_uniforum_po PASSED [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_obsolete PASSED [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_obsolete_with_prev_msgid PASSED [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_header_escapes PASSED [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete PASSED [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_plural PASSED [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_msgctxt PASSED [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_msgidcomments PASSED [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_multiline_obsolete PASSED [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_merge_duplicates PASSED [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_merge_mixed_sources PASSED [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_parse_context PASSED [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_parse_advanced_context PASSED [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_kde_context PASSED [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_broken_kde_context PASSED [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_id PASSED [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_non_ascii_header_comments PASSED [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_non_ascii_header_comments_2 PASSED [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_final_slash PASSED [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_unfinished_lines PASSED [ 66%] 454s tests/translate/storage/test_po.py::TestPOFile::test_encoding_change PASSED [ 67%] 454s tests/translate/storage/test_po.py::TestPOFile::test_istranslated PASSED [ 67%] 454s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_spaces PASSED [ 67%] 454s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long PASSED [ 67%] 454s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_fit PASSED [ 67%] 454s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_overflow PASSED [ 67%] 454s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_multiline PASSED [ 67%] 454s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_escapes PASSED [ 67%] 454s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_cjk PASSED [ 67%] 454s tests/translate/storage/test_po.py::TestPOFile::test_wrap_emoji PASSED [ 67%] 454s tests/translate/storage/test_po.py::TestPOFile::test_wrap_parenthesis PASSED [ 67%] 454s tests/translate/storage/test_po.py::TestPOFile::test_wrap_escape_line PASSED [ 67%] 454s tests/translate/storage/test_po.py::TestPOFile::test_wrap_parenthesis_long PASSED [ 67%] 454s tests/translate/storage/test_po.py::TestPOFile::test_wrap_gettext PASSED [ 67%] 454s tests/translate/storage/test_po.py::TestPOFile::test_wrap_wide_stop PASSED [ 67%] 454s tests/translate/storage/test_po.py::TestPOFile::test_wrap_escape PASSED [ 67%] 454s tests/translate/storage/test_po.py::TestPOFile::test_msgidcomments PASSED [ 67%] 454s tests/translate/storage/test_po.py::TestPOFile::test_unicode_ids PASSED [ 67%] 454s tests/translate/storage/test_po.py::TestPOFile::test_syntax_error PASSED [ 67%] 454s tests/translate/storage/test_po.py::TestPOFile::test_invalid PASSED [ 67%] 454s tests/translate/storage/test_po.py::TestPOFile::test_c_style_comment_error_reporting PASSED [ 67%] 454s tests/translate/storage/test_po.py::TestPOFile::test_wrapped_msgid PASSED [ 67%] 454s tests/translate/storage/test_po.py::TestPOFile::test_missing_plural PASSED [ 67%] 454s tests/translate/storage/test_po.py::TestPOFile::test_unusual_line_endings PASSED [ 67%] 454s tests/translate/storage/test_po.py::TestPOFile::test_charset_with_space PASSED [ 67%] 454s tests/translate/storage/test_po.py::TestPOFile::test_duplicate_msgid_error PASSED [ 67%] 454s tests/translate/storage/test_pocommon.py::test_roundtrip_quote_plus PASSED [ 67%] 454s tests/translate/storage/test_poheader.py::test_parseheaderstring PASSED [ 67%] 454s tests/translate/storage/test_poheader.py::test_update PASSED [ 67%] 454s tests/translate/storage/test_poheader.py::test_po_dates PASSED [ 67%] 454s tests/translate/storage/test_poheader.py::test_timezones PASSED [ 67%] 454s tests/translate/storage/test_poheader.py::test_header_blank PASSED [ 67%] 454s tests/translate/storage/test_poheader.py::test_plural_equation PASSED [ 67%] 454s tests/translate/storage/test_poheader.py::test_plural_equation_across_lines PASSED [ 67%] 454s tests/translate/storage/test_poheader.py::test_updatecontributor PASSED [ 67%] 454s tests/translate/storage/test_poheader.py::test_updatecontributor_header PASSED [ 67%] 454s tests/translate/storage/test_poheader.py::test_language PASSED [ 67%] 454s tests/translate/storage/test_poheader.py::test_project PASSED [ 67%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_isfuzzy PASSED [ 67%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_create PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_eq PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_target PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_escapes PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_difficult_escapes PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_note_sanity PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_line_number_default PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_rich_get PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_rich_set PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_markreview PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_errors PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_accepted_control_chars PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_unaccepted_control_chars PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_plurals PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_ids PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_create_blank PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_remove PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_find PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_translate PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_files PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_save PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_markup PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_nonascii PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_extensions PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_mimetypes PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_basic PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_namespace PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_rich_source PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_rich_target PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_source PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_target PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_sourcelanguage PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_targetlanguage PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_targetlanguage_multi PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_alttrans PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_fuzzy PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_xml_space PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parsing PASSED [ 68%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_marktranslatable PASSED [ 69%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_entities PASSED [ 69%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_multiple_filenodes PASSED [ 69%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_groups_when_adding_units PASSED [ 69%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_multiple_files_and_groups PASSED [ 69%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_unit_to_existing_group PASSED [ 69%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_unit_to_different_file PASSED [ 69%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_mixed_groups_and_body PASSED [ 69%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_addunit_with_new_false PASSED [ 69%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_namespace_preservation_across_versions PASSED [ 69%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_units_between_different_files PASSED [ 69%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_group_preservation_across_different_namespaces PASSED [ 69%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_cross_namespace_group_and_file_preservation PASSED [ 69%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_indent PASSED [ 69%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_target PASSED [ 69%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve PASSED [ 69%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_closing_tags PASSED [ 69%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_context_groups PASSED [ 69%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_getlocations PASSED [ 69%] 454s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_addlocation PASSED [ 69%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_huge PASSED [ 69%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_add PASSED [ 69%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parse PASSED [ 69%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parse_plural_alpha_id PASSED [ 69%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_notes PASSED [ 69%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_plural PASSED [ 69%] 455s tests/translate/storage/test_properties.py::test_find_delimiter_pos_simple PASSED [ 69%] 455s tests/translate/storage/test_properties.py::test_find_delimiter_pos_multiple PASSED [ 69%] 455s tests/translate/storage/test_properties.py::test_find_delimiter_pos_none PASSED [ 69%] 455s tests/translate/storage/test_properties.py::test_find_delimiter_pos_whitespace PASSED [ 69%] 455s tests/translate/storage/test_properties.py::test_find_delimiter_pos_escapes PASSED [ 69%] 455s tests/translate/storage/test_properties.py::test_find_delimiter_pos_empty_and_whitespace PASSED [ 69%] 455s tests/translate/storage/test_properties.py::test_find_delimiter_pos_tabs PASSED [ 69%] 455s tests/translate/storage/test_properties.py::test_is_line_continuation PASSED [ 69%] 455s tests/translate/storage/test_properties.py::test_key_strip PASSED [ 69%] 455s tests/translate/storage/test_properties.py::test_get_comment_one_line PASSED [ 69%] 455s tests/translate/storage/test_properties.py::test_get_comment_start PASSED [ 69%] 455s tests/translate/storage/test_properties.py::test_get_comment_end PASSED [ 69%] 455s tests/translate/storage/test_properties.py::TestPropUnit::test_isfuzzy PASSED [ 69%] 455s tests/translate/storage/test_properties.py::TestPropUnit::test_create PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestPropUnit::test_eq PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestPropUnit::test_escapes PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestPropUnit::test_difficult_escapes PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestPropUnit::test_note_sanity PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestPropUnit::test_line_number_default PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestPropUnit::test_target PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestPropUnit::test_rich_get PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestPropUnit::test_rich_set PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestGwtProp::test_create_blank PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestGwtProp::test_add PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestGwtProp::test_remove PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestGwtProp::test_find PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestGwtProp::test_parse PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestGwtProp::test_files PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestGwtProp::test_save PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestGwtProp::test_extensions PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestGwtProp::test_mimetypes PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestGwtProp::test_translate PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestGwtProp::test_markup PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestGwtProp::test_nonascii PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestGwtProp::test_quotes PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestGwtProp::test_simpledefinition PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestGwtProp::test_doubledefinition PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestGwtProp::test_doubledefinition_source PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestGwtProp::test_reduce PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestGwtProp::test_increase PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestGwtProp::test_extra_plurals PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestGwtProp::test_non_plurals PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestGwtProp::test_encoding PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestGwtProp::test_other_plurals PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestProp::test_create_blank PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestProp::test_add PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestProp::test_remove PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestProp::test_find PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestProp::test_parse PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestProp::test_files PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestProp::test_save PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestProp::test_extensions PASSED [ 70%] 455s tests/translate/storage/test_properties.py::TestProp::test_mimetypes PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_translate PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_markup PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_nonascii PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_simpledefinition PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_simpledefinition_source PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_controlutf8_source PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_control_source PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_unicode_escaping PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_newlines_startend PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_space PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_whitespace_handling PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_key_value_delimiters_simple PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_tab_delimiter_parsing PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_comments PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_latin1 PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_fullspec_delimiters PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_fullspec_escaped_key PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_fullspec_line_continuation PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_fullspec_key_without_value PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_mac_strings PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_utf_16_save PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_mac_multiline_strings PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_unicode PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_utf8 PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_newlines PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comments PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_multilines_comments PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comments_dropping PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_inline_comments PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_inline_comments_nested PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_inline_comment_with_spaces PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_before_entry PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_between_key_and_equals PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_between_equals_and_value PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_after_value_before_semicolon PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_multiple_inline_comments PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_nested_comment PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_inside_value PASSED [ 71%] 455s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_trailing_whitespace_after_semicolon PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_quotes PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_equals PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_serialization PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_double_backslashes PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestProp::test_override_encoding PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestProp::test_trailing_comments PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestProp::test_utf16_byte_order_mark PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestProp::test_raise_ioerror_if_cannot_detect_encoding PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestProp::test_utf8_byte_order_mark PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestProp::test_utf16_bom_no_warning PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestProp::test_joomla_set_target PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestProp::test_joomla PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestProp::test_joomla_escape PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestProp::test_serialize_missing_delimiter PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestProp::test_serialize_missing_value PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestProp::test_multi_comments PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestProp::test_serialize_note PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestProp::test_serialize_long_note PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestProp::test_trailing_newlines PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestXWiki::test_create_blank PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestXWiki::test_add PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestXWiki::test_remove PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestXWiki::test_find PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestXWiki::test_parse PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestXWiki::test_files PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestXWiki::test_save PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestXWiki::test_extensions PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestXWiki::test_mimetypes PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestXWiki::test_translate PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestXWiki::test_markup PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestXWiki::test_nonascii PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestXWiki::test_simpledefinition PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestXWiki::test_missing_definition PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestXWiki::test_missing_definition_source PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestXWiki::test_definition_with_simple_quote PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestXWiki::test_definition_with_simple_quote_and_argument PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestXWiki::test_header_preserved PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestXWiki::test_blank_line_before_comment_preserved PASSED [ 72%] 455s tests/translate/storage/test_properties.py::TestXWiki::test_deprecated_comments_preserved PASSED [ 73%] 455s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_create_blank PASSED [ 73%] 455s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_add PASSED [ 73%] 455s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_remove PASSED [ 73%] 455s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_find PASSED [ 73%] 455s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_parse PASSED [ 73%] 455s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_files PASSED [ 73%] 455s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_save PASSED [ 73%] 455s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_extensions PASSED [ 73%] 455s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_mimetypes PASSED [ 73%] 455s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_translate PASSED [ 73%] 455s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_markup PASSED [ 73%] 455s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_nonascii PASSED [ 73%] 455s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_simpledefinition PASSED [ 73%] 455s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_missing_definition PASSED [ 73%] 455s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_missing_definition_source PASSED [ 73%] 455s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_simple_quote PASSED [ 73%] 455s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_simple_quote_and_argument PASSED [ 73%] 455s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_encoded_html PASSED [ 73%] 455s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_cleaning_attributes PASSED [ 73%] 455s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_translate_source PASSED [ 73%] 455s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_create_blank PASSED [ 73%] 455s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_add PASSED [ 73%] 455s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_find PASSED [ 73%] 455s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_extensions PASSED [ 73%] 455s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_mimetypes PASSED [ 73%] 455s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_translate PASSED [ 73%] 455s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_markup PASSED [ 73%] 455s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_nonascii PASSED [ 73%] 455s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_simpledefinition PASSED [ 73%] 455s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_parse PASSED [ 73%] 455s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_files PASSED [ 73%] 455s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_save PASSED [ 73%] 455s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_cleaning_attributes PASSED [ 73%] 455s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_remove XFAIL [ 73%] 455s tests/translate/storage/test_pypo.py::TestHelpers::test_unescape PASSED [ 73%] 455s tests/translate/storage/test_pypo.py::TestHelpers::test_quoteforpo PASSED [ 73%] 455s tests/translate/storage/test_pypo.py::TestHelpers::test_quoteforpo_escaped_quotes PASSED [ 73%] 455s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_isfuzzy PASSED [ 73%] 455s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_create PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_eq PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_target PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_escapes PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_difficult_escapes PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_note_sanity PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_line_number_default PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_rich_get PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_rich_set PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_istranslatable PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_locations PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_nongettext_location PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_adding_empty_note PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_markreview PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_errors PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_no_plural_settarget PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrapping_bug PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_extract_msgidcomments_from_text PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_isheader PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_buildfromunit PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_plurals PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_plural_reduction PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes_withcomments PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes_with_blank_lines PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_firstlines PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_newlines PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_max_line_length PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_slash PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_spacing_max_line PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_create_blank PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_add PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_remove PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_find PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_translate PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_files PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_save PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_markup PASSED [ 74%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_nonascii PASSED [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_extensions PASSED [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mimetypes PASSED [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_context_only PASSED [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_simpleentry PASSED [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_copy PASSED [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_source_string PASSED [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_file PASSED [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode PASSED [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_plurals PASSED [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_plural_unicode PASSED [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_nongettext_location PASSED [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_percent_location PASSED [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_plurals XFAIL [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_empty_lines_notes PASSED [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_fuzzy PASSED [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_untranslated XFAIL [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merging_automaticcomments PASSED [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_malformed_units PASSED [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_invalid_keyword PASSED [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_malformed_obsolete_units PASSED [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_uniforum_po PASSED [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_obsolete PASSED [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_obsolete_with_prev_msgid PASSED [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_header_escapes PASSED [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete PASSED [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_plural PASSED [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_msgctxt PASSED [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_msgidcomments PASSED [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_multiline_obsolete PASSED [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_duplicates PASSED [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_mixed_sources PASSED [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_context PASSED [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_advanced_context PASSED [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_context PASSED [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_broken_kde_context PASSED [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_id PASSED [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_non_ascii_header_comments PASSED [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_non_ascii_header_comments_2 PASSED [ 75%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_final_slash PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unfinished_lines PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_encoding_change PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_istranslated PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_spaces PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_fit PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_overflow PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_multiline PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_escapes PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_cjk PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_emoji PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_parenthesis PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_escape_line PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_parenthesis_long PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_gettext PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_wide_stop PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_escape PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_msgidcomments PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode_ids PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_syntax_error PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_c_style_comment_error_reporting PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapped_msgid PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_missing_plural PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unusual_line_endings PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_charset_with_space PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_duplicate_msgid_error PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_combine_msgidcomments PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_duplicates_msgctxt PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_blanks PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_output_str_unicode PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_posections PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_typecomments PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_future_flags PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unassociated_comments PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode_header PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_prevmsgid_parse PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_newlines PASSED [ 76%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unix_newlines PASSED [ 77%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines PASSED [ 77%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mac_newlines PASSED [ 77%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines PASSED [ 77%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_header PASSED [ 77%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_comment PASSED [ 77%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_bom PASSED [ 77%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_long_msgidcomments PASSED [ 77%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_incomplete PASSED [ 77%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_invalid PASSED [ 77%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines_write PASSED [ 77%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_typecomment XFAIL [ 77%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines_typecomment PASSED [ 77%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_custom PASSED [ 77%] 455s tests/translate/storage/test_pypo.py::TestPYPOFile::test_line_number PASSED [ 77%] 455s tests/translate/storage/test_qm.py::TestQtUnit::test_isfuzzy PASSED [ 77%] 455s tests/translate/storage/test_qm.py::TestQtUnit::test_create PASSED [ 77%] 455s tests/translate/storage/test_qm.py::TestQtUnit::test_eq PASSED [ 77%] 455s tests/translate/storage/test_qm.py::TestQtUnit::test_target PASSED [ 77%] 455s tests/translate/storage/test_qm.py::TestQtUnit::test_escapes PASSED [ 77%] 455s tests/translate/storage/test_qm.py::TestQtUnit::test_difficult_escapes PASSED [ 77%] 455s tests/translate/storage/test_qm.py::TestQtUnit::test_note_sanity PASSED [ 77%] 455s tests/translate/storage/test_qm.py::TestQtUnit::test_line_number_default PASSED [ 77%] 455s tests/translate/storage/test_qm.py::TestQtUnit::test_rich_get PASSED [ 77%] 455s tests/translate/storage/test_qm.py::TestQtUnit::test_rich_set PASSED [ 77%] 455s tests/translate/storage/test_qm.py::TestQtFile::test_create_blank PASSED [ 77%] 455s tests/translate/storage/test_qm.py::TestQtFile::test_find PASSED [ 77%] 455s tests/translate/storage/test_qm.py::TestQtFile::test_translate PASSED [ 77%] 455s tests/translate/storage/test_qm.py::TestQtFile::test_markup PASSED [ 77%] 455s tests/translate/storage/test_qm.py::TestQtFile::test_extensions PASSED [ 77%] 455s tests/translate/storage/test_qm.py::TestQtFile::test_mimetypes PASSED [ 77%] 455s tests/translate/storage/test_qm.py::TestQtFile::test_parse PASSED [ 77%] 455s tests/translate/storage/test_qm.py::TestQtFile::test_save PASSED [ 77%] 455s tests/translate/storage/test_qm.py::TestQtFile::test_files PASSED [ 77%] 455s tests/translate/storage/test_qm.py::TestQtFile::test_nonascii PASSED [ 77%] 455s tests/translate/storage/test_qm.py::TestQtFile::test_add PASSED [ 77%] 455s tests/translate/storage/test_qm.py::TestQtFile::test_remove PASSED [ 77%] 455s tests/translate/storage/test_qph.py::TestQphUnit::test_isfuzzy PASSED [ 77%] 455s tests/translate/storage/test_qph.py::TestQphUnit::test_create PASSED [ 77%] 455s tests/translate/storage/test_qph.py::TestQphUnit::test_eq PASSED [ 78%] 455s tests/translate/storage/test_qph.py::TestQphUnit::test_target PASSED [ 78%] 455s tests/translate/storage/test_qph.py::TestQphUnit::test_escapes PASSED [ 78%] 455s tests/translate/storage/test_qph.py::TestQphUnit::test_difficult_escapes PASSED [ 78%] 455s tests/translate/storage/test_qph.py::TestQphUnit::test_note_sanity PASSED [ 78%] 455s tests/translate/storage/test_qph.py::TestQphUnit::test_line_number_default PASSED [ 78%] 455s tests/translate/storage/test_qph.py::TestQphUnit::test_rich_get PASSED [ 78%] 455s tests/translate/storage/test_qph.py::TestQphUnit::test_rich_set PASSED [ 78%] 455s tests/translate/storage/test_qph.py::TestQphFile::test_create_blank PASSED [ 78%] 455s tests/translate/storage/test_qph.py::TestQphFile::test_add PASSED [ 78%] 455s tests/translate/storage/test_qph.py::TestQphFile::test_remove PASSED [ 78%] 455s tests/translate/storage/test_qph.py::TestQphFile::test_find PASSED [ 78%] 455s tests/translate/storage/test_qph.py::TestQphFile::test_translate PASSED [ 78%] 455s tests/translate/storage/test_qph.py::TestQphFile::test_parse PASSED [ 78%] 455s tests/translate/storage/test_qph.py::TestQphFile::test_files PASSED [ 78%] 455s tests/translate/storage/test_qph.py::TestQphFile::test_save PASSED [ 78%] 455s tests/translate/storage/test_qph.py::TestQphFile::test_markup PASSED [ 78%] 455s tests/translate/storage/test_qph.py::TestQphFile::test_nonascii PASSED [ 78%] 455s tests/translate/storage/test_qph.py::TestQphFile::test_extensions PASSED [ 78%] 455s tests/translate/storage/test_qph.py::TestQphFile::test_mimetypes PASSED [ 78%] 455s tests/translate/storage/test_qph.py::TestQphFile::test_basic PASSED [ 78%] 455s tests/translate/storage/test_qph.py::TestQphFile::test_source PASSED [ 78%] 455s tests/translate/storage/test_qph.py::TestQphFile::test_target PASSED [ 78%] 455s tests/translate/storage/test_qph.py::TestQphFile::test_language PASSED [ 78%] 455s tests/translate/storage/test_rc.py::test_escaping PASSED [ 78%] 455s tests/translate/storage/test_rc.py::TestRcFile::test_parse_only_comments PASSED [ 78%] 455s tests/translate/storage/test_rc.py::TestRcFile::test_parse_only_textinclude PASSED [ 78%] 455s tests/translate/storage/test_rc.py::TestRcFile::test_parse_dialog PASSED [ 78%] 455s tests/translate/storage/test_rc.py::TestRcFile::test_parse_stringtable PASSED [ 78%] 455s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_lf PASSED [ 78%] 455s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_crlf PASSED [ 78%] 455s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_cr PASSED [ 78%] 455s tests/translate/storage/test_rc.py::TestRcFile::test_parse_no_language PASSED [ 78%] 455s tests/translate/storage/test_rc.py::TestRcFile::test_textinclude PASSED [ 78%] 455s tests/translate/storage/test_rc.py::TestRcFile::test_multiline PASSED [ 78%] 455s tests/translate/storage/test_rc.py::TestRcFile::test_str PASSED [ 78%] 455s tests/translate/storage/test_rc.py::TestRcFile::test_empty PASSED [ 78%] 455s tests/translate/storage/test_rc.py::TestRcFile::test_utf_8 PASSED [ 78%] 455s tests/translate/storage/test_rc.py::TestRcFile::test_utf_16 PASSED [ 78%] 455s tests/translate/storage/test_rc.py::TestRcFile::test_comment PASSED [ 79%] 455s tests/translate/storage/test_rc.py::TestRcFile::test_stringtables PASSED [ 79%] 455s tests/translate/storage/test_rc.py::TestRcFile::test_textinclude_appstudio PASSED [ 79%] 455s tests/translate/storage/test_rc.py::TestRcFile::test_id_whitespace PASSED [ 79%] 455s tests/translate/storage/test_rc.py::TestRcFile::test_menu_comment PASSED [ 79%] 455s tests/translate/storage/test_rc.py::TestRcFile::test_decompiled PASSED [ 79%] 455s tests/translate/storage/test_rc.py::TestRcFile::test_quotes PASSED [ 79%] 455s tests/translate/storage/test_rc.py::TestRcFile::test_utf16_pragma_code_page PASSED [ 79%] 455s tests/translate/storage/test_rc.py::TestRcFile::test_utf8_pragma_code_page PASSED [ 79%] 455s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_isfuzzy PASSED [ 79%] 455s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_create PASSED [ 79%] 455s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_eq PASSED [ 79%] 455s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_escapes PASSED [ 79%] 455s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_difficult_escapes PASSED [ 79%] 455s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_note_sanity PASSED [ 79%] 455s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_line_number_default PASSED [ 79%] 455s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_target PASSED [ 79%] 455s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_rich_get PASSED [ 79%] 455s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_rich_set PASSED [ 79%] 455s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_create_blank PASSED [ 79%] 455s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_add PASSED [ 79%] 455s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_remove PASSED [ 79%] 455s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_find PASSED [ 79%] 455s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_parse PASSED [ 79%] 455s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_files PASSED [ 79%] 455s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_save PASSED [ 79%] 455s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_extensions PASSED [ 79%] 455s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_mimetypes PASSED [ 79%] 455s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_translate PASSED [ 79%] 455s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_markup PASSED [ 79%] 455s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_nonascii PASSED [ 79%] 455s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_roundtrip PASSED [ 79%] 455s tests/translate/storage/test_resx.py::TestRESXUnit::test_isfuzzy PASSED [ 79%] 455s tests/translate/storage/test_resx.py::TestRESXUnit::test_create PASSED [ 79%] 455s tests/translate/storage/test_resx.py::TestRESXUnit::test_eq PASSED [ 79%] 455s tests/translate/storage/test_resx.py::TestRESXUnit::test_escapes PASSED [ 79%] 455s tests/translate/storage/test_resx.py::TestRESXUnit::test_difficult_escapes PASSED [ 79%] 455s tests/translate/storage/test_resx.py::TestRESXUnit::test_note_sanity PASSED [ 79%] 455s tests/translate/storage/test_resx.py::TestRESXUnit::test_line_number_default PASSED [ 79%] 455s tests/translate/storage/test_resx.py::TestRESXUnit::test_target PASSED [ 80%] 455s tests/translate/storage/test_resx.py::TestRESXUnit::test_rich_get PASSED [ 80%] 455s tests/translate/storage/test_resx.py::TestRESXUnit::test_rich_set PASSED [ 80%] 455s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_isfuzzy PASSED [ 80%] 455s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_create PASSED [ 80%] 455s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_eq PASSED [ 80%] 455s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_escapes PASSED [ 80%] 455s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_difficult_escapes PASSED [ 80%] 455s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_note_sanity PASSED [ 80%] 455s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_line_number_default PASSED [ 80%] 455s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_target PASSED [ 80%] 455s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_rich_get PASSED [ 80%] 455s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_rich_set PASSED [ 80%] 455s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_newunit PASSED [ 80%] 455s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_newunit_comment PASSED [ 80%] 455s tests/translate/storage/test_resx.py::TestRESXfile::test_create_blank PASSED [ 80%] 455s tests/translate/storage/test_resx.py::TestRESXfile::test_add PASSED [ 80%] 455s tests/translate/storage/test_resx.py::TestRESXfile::test_remove PASSED [ 80%] 455s tests/translate/storage/test_resx.py::TestRESXfile::test_find PASSED [ 80%] 455s tests/translate/storage/test_resx.py::TestRESXfile::test_parse PASSED [ 80%] 455s tests/translate/storage/test_resx.py::TestRESXfile::test_files PASSED [ 80%] 455s tests/translate/storage/test_resx.py::TestRESXfile::test_save PASSED [ 80%] 455s tests/translate/storage/test_resx.py::TestRESXfile::test_extensions PASSED [ 80%] 455s tests/translate/storage/test_resx.py::TestRESXfile::test_mimetypes PASSED [ 80%] 455s tests/translate/storage/test_resx.py::TestRESXfile::test_translate PASSED [ 80%] 455s tests/translate/storage/test_resx.py::TestRESXfile::test_markup PASSED [ 80%] 455s tests/translate/storage/test_resx.py::TestRESXfile::test_nonascii PASSED [ 80%] 455s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_isfuzzy PASSED [ 80%] 455s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_create PASSED [ 80%] 455s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_eq PASSED [ 80%] 455s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_escapes PASSED [ 80%] 455s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_difficult_escapes PASSED [ 80%] 455s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_note_sanity PASSED [ 80%] 455s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_line_number_default PASSED [ 80%] 455s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_target PASSED [ 80%] 455s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_rich_get PASSED [ 80%] 455s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_rich_set PASSED [ 80%] 455s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_source PASSED [ 80%] 455s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_eq_formatvaluetype PASSED [ 80%] 455s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_innerkey PASSED [ 81%] 455s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_create_blank PASSED [ 81%] 455s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_add PASSED [ 81%] 455s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_remove PASSED [ 81%] 455s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_find PASSED [ 81%] 455s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_parse PASSED [ 81%] 455s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_files PASSED [ 81%] 455s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_save PASSED [ 81%] 455s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_extensions PASSED [ 81%] 455s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_mimetypes PASSED [ 81%] 455s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_translate PASSED [ 81%] 455s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_markup PASSED [ 81%] 455s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_nonascii PASSED [ 81%] 455s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_serialize PASSED [ 81%] 455s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_default_handlings PASSED [ 81%] 455s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_filename PASSED [ 81%] 455s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_base_filename PASSED [ 81%] 455s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_filename_default_language PASSED [ 81%] 455s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_plural_zero_always_set PASSED [ 81%] 455s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_add_unit PASSED [ 81%] 455s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_create_blank PASSED [ 81%] 455s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_add PASSED [ 81%] 455s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_remove PASSED [ 81%] 455s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_find PASSED [ 81%] 455s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_parse PASSED [ 81%] 455s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_files PASSED [ 81%] 455s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_save PASSED [ 81%] 455s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_extensions PASSED [ 81%] 455s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_mimetypes PASSED [ 81%] 455s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_translate PASSED [ 81%] 455s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_markup PASSED [ 81%] 455s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_nonascii PASSED [ 81%] 455s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_ordering PASSED [ 81%] 455s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_create_blank PASSED [ 81%] 455s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_add PASSED [ 81%] 455s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_remove PASSED [ 81%] 455s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_find PASSED [ 81%] 455s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_parse PASSED [ 81%] 455s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_files PASSED [ 81%] 455s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_save PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_extensions PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_mimetypes PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_translate PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_markup PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_nonascii PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_ordering PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_note_sanity XFAIL [ 82%] 455s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_create_blank PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_add PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_remove PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_find PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_parse PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_files PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_save PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_extensions PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_mimetypes PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_translate PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_markup PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_nonascii PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_ordering PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_create_blank PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_add PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_remove PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_find PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_parse PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_files PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_save PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_extensions PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_mimetypes PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_translate PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_markup PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_nonascii PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_ordering PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_style_preservation PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_create_blank PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_add PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_remove PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_find PASSED [ 82%] 455s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_parse PASSED [ 83%] 455s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_files PASSED [ 83%] 455s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_save PASSED [ 83%] 455s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_extensions PASSED [ 83%] 455s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_mimetypes PASSED [ 83%] 455s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_translate PASSED [ 83%] 455s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_markup PASSED [ 83%] 455s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_nonascii PASSED [ 83%] 455s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_ordering PASSED [ 83%] 455s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_style_preservation PASSED [ 83%] 455s tests/translate/storage/test_tbx.py::TestTBXUnit::test_isfuzzy PASSED [ 83%] 455s tests/translate/storage/test_tbx.py::TestTBXUnit::test_create PASSED [ 83%] 455s tests/translate/storage/test_tbx.py::TestTBXUnit::test_eq PASSED [ 83%] 455s tests/translate/storage/test_tbx.py::TestTBXUnit::test_target PASSED [ 83%] 455s tests/translate/storage/test_tbx.py::TestTBXUnit::test_escapes PASSED [ 83%] 455s tests/translate/storage/test_tbx.py::TestTBXUnit::test_difficult_escapes PASSED [ 83%] 455s tests/translate/storage/test_tbx.py::TestTBXUnit::test_note_sanity PASSED [ 83%] 455s tests/translate/storage/test_tbx.py::TestTBXUnit::test_line_number_default PASSED [ 83%] 455s tests/translate/storage/test_tbx.py::TestTBXUnit::test_rich_get PASSED [ 83%] 455s tests/translate/storage/test_tbx.py::TestTBXUnit::test_rich_set PASSED [ 83%] 455s tests/translate/storage/test_tbx.py::TestTBXfile::test_create_blank PASSED [ 83%] 455s tests/translate/storage/test_tbx.py::TestTBXfile::test_add PASSED [ 83%] 455s tests/translate/storage/test_tbx.py::TestTBXfile::test_remove PASSED [ 83%] 455s tests/translate/storage/test_tbx.py::TestTBXfile::test_find PASSED [ 83%] 455s tests/translate/storage/test_tbx.py::TestTBXfile::test_translate PASSED [ 83%] 455s tests/translate/storage/test_tbx.py::TestTBXfile::test_parse PASSED [ 83%] 455s tests/translate/storage/test_tbx.py::TestTBXfile::test_files PASSED [ 83%] 455s tests/translate/storage/test_tbx.py::TestTBXfile::test_save PASSED [ 83%] 455s tests/translate/storage/test_tbx.py::TestTBXfile::test_markup PASSED [ 83%] 455s tests/translate/storage/test_tbx.py::TestTBXfile::test_nonascii PASSED [ 83%] 455s tests/translate/storage/test_tbx.py::TestTBXfile::test_extensions PASSED [ 83%] 455s tests/translate/storage/test_tbx.py::TestTBXfile::test_mimetypes PASSED [ 83%] 455s tests/translate/storage/test_tbx.py::TestTBXfile::test_basic PASSED [ 83%] 455s tests/translate/storage/test_tbx.py::TestTBXfile::test_source PASSED [ 83%] 455s tests/translate/storage/test_tbx.py::TestTBXfile::test_target PASSED [ 83%] 455s tests/translate/storage/test_tbx.py::TestTBXfile::test_setid PASSED [ 83%] 455s tests/translate/storage/test_tbx.py::TestTBXfile::test_indent PASSED [ 83%] 455s tests/translate/storage/test_tbx.py::TestTBXfile::test_descrip PASSED [ 83%] 455s tests/translate/storage/test_tbx.py::TestTBXfile::test_note_from PASSED [ 83%] 455s tests/translate/storage/test_tbx.py::TestTBXfile::test_administrative_status_and_translation_needed PASSED [ 84%] 455s tests/translate/storage/test_tiki.py::TestTikiUnit::test_locations PASSED [ 84%] 455s tests/translate/storage/test_tiki.py::TestTikiUnit::test_to_unicode PASSED [ 84%] 455s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_simple PASSED [ 84%] 455s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_encode PASSED [ 84%] 455s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_locations PASSED [ 84%] 455s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_ignore_extras PASSED [ 84%] 455s tests/translate/storage/test_tmx.py::TestTMXUnit::test_isfuzzy PASSED [ 84%] 455s tests/translate/storage/test_tmx.py::TestTMXUnit::test_create PASSED [ 84%] 455s tests/translate/storage/test_tmx.py::TestTMXUnit::test_eq PASSED [ 84%] 455s tests/translate/storage/test_tmx.py::TestTMXUnit::test_target PASSED [ 84%] 455s tests/translate/storage/test_tmx.py::TestTMXUnit::test_escapes PASSED [ 84%] 455s tests/translate/storage/test_tmx.py::TestTMXUnit::test_difficult_escapes PASSED [ 84%] 455s tests/translate/storage/test_tmx.py::TestTMXUnit::test_note_sanity PASSED [ 84%] 455s tests/translate/storage/test_tmx.py::TestTMXUnit::test_line_number_default PASSED [ 84%] 455s tests/translate/storage/test_tmx.py::TestTMXUnit::test_rich_get PASSED [ 84%] 455s tests/translate/storage/test_tmx.py::TestTMXUnit::test_rich_set PASSED [ 84%] 455s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_isfuzzy PASSED [ 84%] 455s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_create PASSED [ 84%] 455s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_eq PASSED [ 84%] 455s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_target PASSED [ 84%] 455s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_escapes PASSED [ 84%] 455s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_difficult_escapes PASSED [ 84%] 455s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_note_sanity PASSED [ 84%] 455s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_line_number_default PASSED [ 84%] 455s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_rich_get PASSED [ 84%] 455s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_rich_set PASSED [ 84%] 455s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_context PASSED [ 84%] 455s tests/translate/storage/test_tmx.py::TestTMXfile::test_create_blank PASSED [ 84%] 455s tests/translate/storage/test_tmx.py::TestTMXfile::test_add PASSED [ 84%] 455s tests/translate/storage/test_tmx.py::TestTMXfile::test_remove PASSED [ 84%] 455s tests/translate/storage/test_tmx.py::TestTMXfile::test_find PASSED [ 84%] 455s tests/translate/storage/test_tmx.py::TestTMXfile::test_parse PASSED [ 84%] 455s tests/translate/storage/test_tmx.py::TestTMXfile::test_files PASSED [ 84%] 455s tests/translate/storage/test_tmx.py::TestTMXfile::test_save PASSED [ 84%] 455s tests/translate/storage/test_tmx.py::TestTMXfile::test_markup PASSED [ 84%] 455s tests/translate/storage/test_tmx.py::TestTMXfile::test_nonascii PASSED [ 84%] 455s tests/translate/storage/test_tmx.py::TestTMXfile::test_extensions PASSED [ 84%] 455s tests/translate/storage/test_tmx.py::TestTMXfile::test_mimetypes PASSED [ 84%] 455s tests/translate/storage/test_tmx.py::TestTMXfile::test_translate PASSED [ 85%] 455s tests/translate/storage/test_tmx.py::TestTMXfile::test_addtranslation PASSED [ 85%] 455s tests/translate/storage/test_tmx.py::TestTMXfile::test_withcomment PASSED [ 85%] 455s tests/translate/storage/test_tmx.py::TestTMXfile::test_withnewlines PASSED [ 85%] 455s tests/translate/storage/test_tmx.py::TestTMXfile::test_xmlentities PASSED [ 85%] 455s tests/translate/storage/test_tmx.py::TestTMXfile::test_controls_cleaning PASSED [ 85%] 455s tests/translate/storage/test_tmx.py::TestTMXfile::test_context PASSED [ 85%] 455s tests/translate/storage/test_tmx.py::TestTMXfile::test_note_order PASSED [ 85%] 455s tests/translate/storage/test_tmx.py::TestTMXfile::test_prop_and_note_order PASSED [ 85%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_isfuzzy PASSED [ 85%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_create PASSED [ 85%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_eq PASSED [ 85%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_escapes PASSED [ 85%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_difficult_escapes PASSED [ 85%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_note_sanity PASSED [ 85%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_line_number_default PASSED [ 85%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_target PASSED [ 85%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_rich_get PASSED [ 85%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_rich_set PASSED [ 85%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_getlocations PASSED [ 85%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_create_blank PASSED [ 85%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_add PASSED [ 85%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_find PASSED [ 85%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_parse PASSED [ 85%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_files PASSED [ 85%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_save PASSED [ 85%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_extensions PASSED [ 85%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_mimetypes PASSED [ 85%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_translate PASSED [ 85%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_markup PASSED [ 85%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_nonascii PASSED [ 85%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_serialize PASSED [ 85%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_empty PASSED [ 85%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_edit PASSED [ 85%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_edit_unicode PASSED [ 85%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_parse_unicode_list PASSED [ 85%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_ordering PASSED [ 85%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_nested PASSED [ 85%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_multiline PASSED [ 85%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_boolean PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_integer PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_no_quote_strings PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_double_quote_strings PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_single_quote_strings PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_escaped_double_quotes PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_newlines PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_list PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_inline_table PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_key_nesting PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_add_to_empty PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_dict_in_list PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_remove PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_special PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_extraction_simple PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_extraction_multiline PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_no_comment_backwards_compat PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_simple PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_multiline PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_nested PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_with_modification PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_literal_string PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_multiline_basic_string PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_multiline_literal_string PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_create_blank PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_add PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_remove PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_find PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_parse PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_files PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_save PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_extensions PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_mimetypes PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_translate PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_markup PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_nonascii PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_simple_plural PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_plural_with_other_keys PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_full_plural_forms PASSED [ 86%] 455s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_roundtrip_plural PASSED [ 87%] 455s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_mixed_content PASSED [ 87%] 455s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_letsencrypt_style PASSED [ 87%] 455s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_comment_preservation_goi18n PASSED [ 87%] 455s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_comment_preservation_goi18n_plural PASSED [ 87%] 455s tests/translate/storage/test_trados.py::test_unescape PASSED [ 87%] 455s tests/translate/storage/test_trados.py::test_escape PASSED [ 87%] 455s tests/translate/storage/test_ts.py::TestTS::test_construct PASSED [ 87%] 455s tests/translate/storage/test_ts2.py::TestTSUnit::test_isfuzzy PASSED [ 87%] 455s tests/translate/storage/test_ts2.py::TestTSUnit::test_create PASSED [ 87%] 455s tests/translate/storage/test_ts2.py::TestTSUnit::test_eq PASSED [ 87%] 455s tests/translate/storage/test_ts2.py::TestTSUnit::test_target PASSED [ 87%] 455s tests/translate/storage/test_ts2.py::TestTSUnit::test_escapes PASSED [ 87%] 455s tests/translate/storage/test_ts2.py::TestTSUnit::test_difficult_escapes PASSED [ 87%] 455s tests/translate/storage/test_ts2.py::TestTSUnit::test_note_sanity PASSED [ 87%] 455s tests/translate/storage/test_ts2.py::TestTSUnit::test_line_number_default PASSED [ 87%] 455s tests/translate/storage/test_ts2.py::TestTSUnit::test_rich_get PASSED [ 87%] 455s tests/translate/storage/test_ts2.py::TestTSUnit::test_rich_set PASSED [ 87%] 455s tests/translate/storage/test_ts2.py::TestTSfile::test_create_blank PASSED [ 87%] 455s tests/translate/storage/test_ts2.py::TestTSfile::test_add PASSED [ 87%] 455s tests/translate/storage/test_ts2.py::TestTSfile::test_remove PASSED [ 87%] 455s tests/translate/storage/test_ts2.py::TestTSfile::test_find PASSED [ 87%] 455s tests/translate/storage/test_ts2.py::TestTSfile::test_translate PASSED [ 87%] 455s tests/translate/storage/test_ts2.py::TestTSfile::test_parse PASSED [ 87%] 455s tests/translate/storage/test_ts2.py::TestTSfile::test_files PASSED [ 87%] 455s tests/translate/storage/test_ts2.py::TestTSfile::test_save PASSED [ 87%] 455s tests/translate/storage/test_ts2.py::TestTSfile::test_markup PASSED [ 87%] 455s tests/translate/storage/test_ts2.py::TestTSfile::test_nonascii PASSED [ 87%] 455s tests/translate/storage/test_ts2.py::TestTSfile::test_extensions PASSED [ 87%] 455s tests/translate/storage/test_ts2.py::TestTSfile::test_mimetypes PASSED [ 87%] 455s tests/translate/storage/test_ts2.py::TestTSfile::test_basic PASSED [ 87%] 455s tests/translate/storage/test_ts2.py::TestTSfile::test_source PASSED [ 87%] 455s tests/translate/storage/test_ts2.py::TestTSfile::test_target PASSED [ 87%] 455s tests/translate/storage/test_ts2.py::TestTSfile::test_plurals PASSED [ 87%] 455s tests/translate/storage/test_ts2.py::TestTSfile::test_nplural PASSED [ 87%] 455s tests/translate/storage/test_ts2.py::TestTSfile::test_language PASSED [ 87%] 455s tests/translate/storage/test_ts2.py::TestTSfile::test_edit PASSED [ 87%] 455s tests/translate/storage/test_ts2.py::TestTSfile::test_obsolete PASSED [ 87%] 455s tests/translate/storage/test_ts2.py::TestTSfile::test_locations PASSED [ 87%] 455s tests/translate/storage/test_ts2.py::TestTSfile::test_merge_with_fuzzies PASSED [ 88%] 455s tests/translate/storage/test_ts2.py::TestTSfile::test_getid PASSED [ 88%] 455s tests/translate/storage/test_ts2.py::TestTSfile::test_backnforth PASSED [ 88%] 455s tests/translate/storage/test_ts2.py::TestTSfile::test_context PASSED [ 88%] 455s tests/translate/storage/test_ts2.py::TestTSfile::test_roundtrip_context PASSED [ 88%] 455s tests/translate/storage/test_ts2.py::TestTSfile::test_edit_missing_translation PASSED [ 88%] 455s tests/translate/storage/test_ts2.py::TestTSfile::test_missing_source PASSED [ 88%] 455s tests/translate/storage/test_txt.py::TestTxtUnit::test_isfuzzy PASSED [ 88%] 455s tests/translate/storage/test_txt.py::TestTxtUnit::test_create PASSED [ 88%] 455s tests/translate/storage/test_txt.py::TestTxtUnit::test_eq PASSED [ 88%] 455s tests/translate/storage/test_txt.py::TestTxtUnit::test_escapes PASSED [ 88%] 455s tests/translate/storage/test_txt.py::TestTxtUnit::test_difficult_escapes PASSED [ 88%] 455s tests/translate/storage/test_txt.py::TestTxtUnit::test_note_sanity PASSED [ 88%] 455s tests/translate/storage/test_txt.py::TestTxtUnit::test_line_number_default PASSED [ 88%] 455s tests/translate/storage/test_txt.py::TestTxtUnit::test_target PASSED [ 88%] 455s tests/translate/storage/test_txt.py::TestTxtUnit::test_rich_get PASSED [ 88%] 455s tests/translate/storage/test_txt.py::TestTxtUnit::test_rich_set PASSED [ 88%] 455s tests/translate/storage/test_txt.py::TestTxtFile::test_create_blank PASSED [ 88%] 455s tests/translate/storage/test_txt.py::TestTxtFile::test_add PASSED [ 88%] 455s tests/translate/storage/test_txt.py::TestTxtFile::test_remove PASSED [ 88%] 455s tests/translate/storage/test_txt.py::TestTxtFile::test_find PASSED [ 88%] 455s tests/translate/storage/test_txt.py::TestTxtFile::test_parse PASSED [ 88%] 455s tests/translate/storage/test_txt.py::TestTxtFile::test_files PASSED [ 88%] 455s tests/translate/storage/test_txt.py::TestTxtFile::test_save PASSED [ 88%] 455s tests/translate/storage/test_txt.py::TestTxtFile::test_extensions PASSED [ 88%] 455s tests/translate/storage/test_txt.py::TestTxtFile::test_mimetypes PASSED [ 88%] 455s tests/translate/storage/test_txt.py::TestTxtFile::test_translate PASSED [ 88%] 455s tests/translate/storage/test_txt.py::TestTxtFile::test_markup PASSED [ 88%] 455s tests/translate/storage/test_txt.py::TestTxtFile::test_nonascii PASSED [ 88%] 455s tests/translate/storage/test_txt.py::TestTxtFile::test_simpleblock PASSED [ 88%] 455s tests/translate/storage/test_txt.py::TestTxtFile::test_multipleblocks PASSED [ 88%] 455s tests/translate/storage/test_txt.py::TestTxtFile::test_no_segmentation PASSED [ 88%] 455s tests/translate/storage/test_utx.py::TestUtxUnit::test_isfuzzy PASSED [ 88%] 455s tests/translate/storage/test_utx.py::TestUtxUnit::test_create PASSED [ 88%] 455s tests/translate/storage/test_utx.py::TestUtxUnit::test_eq PASSED [ 88%] 455s tests/translate/storage/test_utx.py::TestUtxUnit::test_target PASSED [ 88%] 455s tests/translate/storage/test_utx.py::TestUtxUnit::test_escapes PASSED [ 88%] 455s tests/translate/storage/test_utx.py::TestUtxUnit::test_difficult_escapes PASSED [ 88%] 455s tests/translate/storage/test_utx.py::TestUtxUnit::test_note_sanity PASSED [ 88%] 455s tests/translate/storage/test_utx.py::TestUtxUnit::test_line_number_default PASSED [ 89%] 455s tests/translate/storage/test_utx.py::TestUtxUnit::test_rich_get PASSED [ 89%] 455s tests/translate/storage/test_utx.py::TestUtxUnit::test_rich_set PASSED [ 89%] 455s tests/translate/storage/test_utx.py::TestUtxFile::test_create_blank PASSED [ 89%] 455s tests/translate/storage/test_utx.py::TestUtxFile::test_add PASSED [ 89%] 455s tests/translate/storage/test_utx.py::TestUtxFile::test_remove PASSED [ 89%] 455s tests/translate/storage/test_utx.py::TestUtxFile::test_find PASSED [ 89%] 455s tests/translate/storage/test_utx.py::TestUtxFile::test_translate PASSED [ 89%] 455s tests/translate/storage/test_utx.py::TestUtxFile::test_parse PASSED [ 89%] 455s tests/translate/storage/test_utx.py::TestUtxFile::test_files PASSED [ 89%] 455s tests/translate/storage/test_utx.py::TestUtxFile::test_save PASSED [ 89%] 455s tests/translate/storage/test_utx.py::TestUtxFile::test_markup PASSED [ 89%] 455s tests/translate/storage/test_utx.py::TestUtxFile::test_nonascii PASSED [ 89%] 455s tests/translate/storage/test_utx.py::TestUtxFile::test_extensions PASSED [ 89%] 455s tests/translate/storage/test_utx.py::TestUtxFile::test_mimetypes PASSED [ 89%] 455s tests/translate/storage/test_wordfast.py::TestWFTime::test_timestring PASSED [ 89%] 455s tests/translate/storage/test_wordfast.py::TestWFTime::test_time PASSED [ 89%] 455s tests/translate/storage/test_wordfast.py::TestWFUnit::test_isfuzzy PASSED [ 89%] 455s tests/translate/storage/test_wordfast.py::TestWFUnit::test_create PASSED [ 89%] 455s tests/translate/storage/test_wordfast.py::TestWFUnit::test_eq PASSED [ 89%] 455s tests/translate/storage/test_wordfast.py::TestWFUnit::test_target PASSED [ 89%] 455s tests/translate/storage/test_wordfast.py::TestWFUnit::test_escapes PASSED [ 89%] 455s tests/translate/storage/test_wordfast.py::TestWFUnit::test_note_sanity PASSED [ 89%] 455s tests/translate/storage/test_wordfast.py::TestWFUnit::test_line_number_default PASSED [ 89%] 455s tests/translate/storage/test_wordfast.py::TestWFUnit::test_rich_get PASSED [ 89%] 455s tests/translate/storage/test_wordfast.py::TestWFUnit::test_rich_set PASSED [ 89%] 455s tests/translate/storage/test_wordfast.py::TestWFUnit::test_difficult_escapes PASSED [ 89%] 455s tests/translate/storage/test_wordfast.py::TestWFUnit::test_wordfast_escaping PASSED [ 89%] 455s tests/translate/storage/test_wordfast.py::TestWFUnit::test_newlines PASSED [ 89%] 455s tests/translate/storage/test_wordfast.py::TestWFUnit::test_language_setting PASSED [ 89%] 455s tests/translate/storage/test_wordfast.py::TestWFUnit::test_istranslated PASSED [ 89%] 455s tests/translate/storage/test_wordfast.py::TestWFFile::test_create_blank PASSED [ 89%] 455s tests/translate/storage/test_wordfast.py::TestWFFile::test_add PASSED [ 89%] 455s tests/translate/storage/test_wordfast.py::TestWFFile::test_remove PASSED [ 89%] 455s tests/translate/storage/test_wordfast.py::TestWFFile::test_find PASSED [ 89%] 455s tests/translate/storage/test_wordfast.py::TestWFFile::test_translate PASSED [ 89%] 455s tests/translate/storage/test_wordfast.py::TestWFFile::test_parse PASSED [ 89%] 455s tests/translate/storage/test_wordfast.py::TestWFFile::test_files PASSED [ 89%] 455s tests/translate/storage/test_wordfast.py::TestWFFile::test_save PASSED [ 89%] 455s tests/translate/storage/test_wordfast.py::TestWFFile::test_markup PASSED [ 90%] 455s tests/translate/storage/test_wordfast.py::TestWFFile::test_nonascii PASSED [ 90%] 455s tests/translate/storage/test_wordfast.py::TestWFFile::test_extensions PASSED [ 90%] 455s tests/translate/storage/test_wordfast.py::TestWFFile::test_mimetypes PASSED [ 90%] 455s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_isfuzzy PASSED [ 90%] 455s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_create PASSED [ 90%] 455s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_eq PASSED [ 90%] 455s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_target PASSED [ 90%] 455s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_escapes PASSED [ 90%] 455s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_difficult_escapes PASSED [ 90%] 455s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_note_sanity PASSED [ 90%] 455s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_line_number_default PASSED [ 90%] 455s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_rich_get PASSED [ 90%] 455s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_rich_set PASSED [ 90%] 455s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_markreview PASSED [ 90%] 455s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_errors PASSED [ 90%] 455s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_accepted_control_chars PASSED [ 90%] 455s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_unaccepted_control_chars PASSED [ 90%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_create_blank PASSED [ 90%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add PASSED [ 90%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_remove PASSED [ 90%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_find PASSED [ 90%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_translate PASSED [ 90%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_parse PASSED [ 90%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_files PASSED [ 90%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_save PASSED [ 90%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_markup PASSED [ 90%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_nonascii PASSED [ 90%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_extensions PASSED [ 90%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_mimetypes PASSED [ 90%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_basic PASSED [ 90%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_namespace PASSED [ 90%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_rich_source PASSED [ 90%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_rich_target PASSED [ 90%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_source PASSED [ 90%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_target PASSED [ 90%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_sourcelanguage PASSED [ 90%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_targetlanguage PASSED [ 90%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_targetlanguage_multi PASSED [ 90%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_notes PASSED [ 91%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_alttrans PASSED [ 91%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_fuzzy PASSED [ 91%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_xml_space PASSED [ 91%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_parsing PASSED [ 91%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_marktranslatable PASSED [ 91%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_entities PASSED [ 91%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_multiple_filenodes PASSED [ 91%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_groups_when_adding_units PASSED [ 91%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_multiple_files_and_groups PASSED [ 91%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_unit_to_existing_group PASSED [ 91%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_unit_to_different_file PASSED [ 91%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_mixed_groups_and_body PASSED [ 91%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_addunit_with_new_false PASSED [ 91%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_namespace_preservation_across_versions PASSED [ 91%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_units_between_different_files PASSED [ 91%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_group_preservation_across_different_namespaces PASSED [ 91%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_cross_namespace_group_and_file_preservation PASSED [ 91%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_indent PASSED [ 91%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_target PASSED [ 91%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve PASSED [ 91%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_closing_tags PASSED [ 91%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_context_groups PASSED [ 91%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_getlocations PASSED [ 91%] 455s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_addlocation PASSED [ 91%] 456s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_huge PASSED [ 91%] 456s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_add PASSED [ 91%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_isfuzzy PASSED [ 91%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_create PASSED [ 91%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_eq PASSED [ 91%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_target PASSED [ 91%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_escapes PASSED [ 91%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_difficult_escapes PASSED [ 91%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_note_sanity PASSED [ 91%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_line_number_default PASSED [ 91%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_rich_get PASSED [ 91%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_rich_set PASSED [ 91%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_notes PASSED [ 91%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_id_management PASSED [ 91%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_marktranslatable PASSED [ 92%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_create_blank PASSED [ 92%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_add PASSED [ 92%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_remove PASSED [ 92%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_find PASSED [ 92%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_translate PASSED [ 92%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_parse PASSED [ 92%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_files PASSED [ 92%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_save PASSED [ 92%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_markup PASSED [ 92%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_nonascii PASSED [ 92%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_extensions PASSED [ 92%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_mimetypes PASSED [ 92%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_basic PASSED [ 92%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_source_target PASSED [ 92%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_language_attributes PASSED [ 92%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_namespace PASSED [ 92%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_unit_structure PASSED [ 92%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_multiple_units PASSED [ 92%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_parse_xliff2 PASSED [ 92%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_parse_translate_attribute PASSED [ 92%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_multiple_segments_per_unit PASSED [ 92%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_mixed_single_and_multiple_segments PASSED [ 92%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_segments_without_ids PASSED [ 92%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_escaped_inline_tags PASSED [ 92%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_simple_source_target_pairs PASSED [ 92%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_malformed_xml_declaration PASSED [ 92%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_variable_placeholders PASSED [ 92%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_add_unit PASSED [ 92%] 456s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_states PASSED [ 92%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_isfuzzy PASSED [ 92%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_create PASSED [ 92%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_eq PASSED [ 92%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_escapes PASSED [ 92%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_difficult_escapes PASSED [ 92%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_note_sanity PASSED [ 92%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_line_number_default PASSED [ 92%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_target PASSED [ 92%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_rich_get PASSED [ 92%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_rich_set PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_getlocations PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_create_blank PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_add PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_find PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_parse PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_files PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_save PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_extensions PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_mimetypes PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_translate PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_markup PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_nonascii PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_serialize PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_empty PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_edit PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_edit_unicode PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_parse_unicode_list PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_ordering PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_initial_comments PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_string_key PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_nested PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_multiline PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_boolean PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_integer PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_no_quote_strings PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_double_quote_strings PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_single_quote_strings PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_avoid_escaping_double_quote_strings PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_avoid_escaping_single_quote_strings PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_escaped_double_quotes PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_newlines PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_abbreviated_list PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_abbreviated_dictionary PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_key_nesting PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_add_to_mepty PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_empty_key PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_dict_in_list PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_dump_args PASSED [ 93%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_anchors PASSED [ 94%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_tagged_scalar PASSED [ 94%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_numeric PASSED [ 94%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_remove PASSED [ 94%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_special PASSED [ 94%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_quotes_roundtrip PASSED [ 94%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_simple PASSED [ 94%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_multiline PASSED [ 94%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_nested PASSED [ 94%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_mixed PASSED [ 94%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_no_comment_backwards_compat PASSED [ 94%] 456s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_multiline_literal_format PASSED [ 94%] 456s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_create_blank PASSED [ 94%] 456s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_remove PASSED [ 94%] 456s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_find PASSED [ 94%] 456s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_parse PASSED [ 94%] 456s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_files PASSED [ 94%] 456s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_save PASSED [ 94%] 456s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_extensions PASSED [ 94%] 456s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_mimetypes PASSED [ 94%] 456s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_translate PASSED [ 94%] 456s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_markup PASSED [ 94%] 456s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_nonascii PASSED [ 94%] 456s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_list PASSED [ 94%] 456s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby PASSED [ 94%] 456s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_wrong PASSED [ 94%] 456s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_invalid_value PASSED [ 94%] 456s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural PASSED [ 94%] 456s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_empty PASSED [ 94%] 456s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_anchors PASSED [ 94%] 456s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_type_change PASSED [ 94%] 456s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_add PASSED [ 94%] 456s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_blank PASSED [ 94%] 456s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_partial PASSED [ 94%] 456s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_pt_br PASSED [ 94%] 456s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_bug_ruby_remove_zero_few_and_mix_others PASSED [ 94%] 456s tests/translate/storage/xml_extract/test_misc.py::test_reduce_tree PASSED [ 94%] 456s tests/translate/storage/xml_extract/test_misc.py::test_compose_mappings PASSED [ 94%] 456s tests/translate/storage/xml_extract/test_misc.py::test_parse_tag PASSED [ 94%] 456s tests/translate/storage/xml_extract/test_unit_tree.py::test__split_xpath_component PASSED [ 95%] 456s tests/translate/storage/xml_extract/test_unit_tree.py::test__split_xpath PASSED [ 95%] 456s tests/translate/storage/xml_extract/test_unit_tree.py::test__add_unit_to_tree PASSED [ 95%] 456s tests/translate/storage/xml_extract/test_xpath_breadcrumb.py::test_breadcrumb PASSED [ 95%] 456s tests/translate/tools/test_help.py::test_help[build_tmdb] PASSED [ 95%] 456s tests/translate/tools/test_help.py::test_help[phppo2pypo] PASSED [ 95%] 456s tests/translate/tools/test_help.py::test_help[poclean] PASSED [ 95%] 456s tests/translate/tools/test_help.py::test_help[pocompile] PASSED [ 95%] 456s tests/translate/tools/test_help.py::test_help[poconflicts] PASSED [ 95%] 456s tests/translate/tools/test_help.py::test_help[pocount] PASSED [ 95%] 456s tests/translate/tools/test_help.py::test_help[podebug] PASSED [ 95%] 456s tests/translate/tools/test_help.py::test_help[pogrep] PASSED [ 95%] 456s tests/translate/tools/test_help.py::test_help[pomerge] PASSED [ 95%] 456s tests/translate/tools/test_help.py::test_help[porestructure] PASSED [ 95%] 457s tests/translate/tools/test_help.py::test_help[posegment] PASSED [ 95%] 457s tests/translate/tools/test_help.py::test_help[poswap] PASSED [ 95%] 457s tests/translate/tools/test_help.py::test_help[poterminology] PASSED [ 95%] 457s tests/translate/tools/test_help.py::test_help[pretranslate] PASSED [ 95%] 457s tests/translate/tools/test_help.py::test_help[pydiff] PASSED [ 95%] 457s tests/translate/tools/test_help.py::test_help[pypo2phppo] PASSED [ 95%] 457s tests/translate/tools/test_junitmsgfmt.py::test_output[failure] PASSED [ 95%] 457s tests/translate/tools/test_junitmsgfmt.py::test_output[untranslated] PASSED [ 95%] 457s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPo::test_single_po PASSED [ 95%] 457s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPo::test_plural_po PASSED [ 95%] 457s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_single_po PASSED [ 95%] 457s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_plural_po PASSED [ 95%] 457s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_help PASSED [ 95%] 457s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_zero PASSED [ 95%] 457s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_one PASSED [ 95%] 457s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_two PASSED [ 95%] 457s tests/translate/tools/test_pocount.py::TestCount::test_punctuation_divides_words PASSED [ 95%] 457s tests/translate/tools/test_pocount.py::TestCount::test_xml_tags PASSED [ 95%] 457s tests/translate/tools/test_pocount.py::TestCount::test_newlines PASSED [ 95%] 457s tests/translate/tools/test_pocount.py::TestCount::test_variables_are_words PASSED [ 95%] 457s tests/translate/tools/test_pocount.py::TestCount::test_plurals PASSED [ 95%] 457s tests/translate/tools/test_pocount.py::TestCount::test_plurals_kde XFAIL [ 95%] 457s tests/translate/tools/test_pocount.py::TestCount::test_msgid_blank PASSED [ 95%] 457s tests/translate/tools/test_pocount.py::TestPOCount::test_translated PASSED [ 95%] 457s tests/translate/tools/test_pocount.py::TestPOCount::test_fuzzy PASSED [ 95%] 457s tests/translate/tools/test_pocount.py::TestPOCount::test_untranslated PASSED [ 96%] 457s tests/translate/tools/test_pocount.py::TestPOCount::test_total PASSED [ 96%] 457s tests/translate/tools/test_pocount.py::TestPOCount::test_translatedsourcewords PASSED [ 96%] 457s tests/translate/tools/test_pocount.py::TestPOCount::test_fuzzysourcewords PASSED [ 96%] 457s tests/translate/tools/test_pocount.py::TestPOCount::test_untranslatedsourcewords PASSED [ 96%] 457s tests/translate/tools/test_pocount.py::TestPOCount::test_totalsourcewords PASSED [ 96%] 457s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-csv] PASSED [ 96%] 457s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-full] PASSED [ 96%] 457s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-short-strings] PASSED [ 96%] 457s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-short-words] PASSED [ 96%] 457s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-csv] PASSED [ 96%] 457s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-full] PASSED [ 96%] 457s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-short-strings] PASSED [ 96%] 457s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-short-words] PASSED [ 96%] 457s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-csv] PASSED [ 96%] 457s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-full] PASSED [ 96%] 457s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-short-strings] PASSED [ 96%] 457s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-short-words] PASSED [ 96%] 457s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-csv] PASSED [ 96%] 457s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-full] PASSED [ 96%] 457s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-short-strings] PASSED [ 96%] 457s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-short-words] PASSED [ 96%] 457s tests/translate/tools/test_pocount.py::test_cases[po-file] PASSED [ 96%] 457s tests/translate/tools/test_pocount.py::test_cases[po-file-fuzzy] PASSED [ 96%] 457s tests/translate/tools/test_pocount.py::test_cases[po-file-csv] PASSED [ 96%] 457s tests/translate/tools/test_pocount.py::test_cases[xliff-states-yes] PASSED [ 96%] 457s tests/translate/tools/test_pocount.py::test_cases[xliff-states-no] PASSED [ 96%] 457s tests/translate/tools/test_pocount.py::test_error_cases[mutually-exclusive] PASSED [ 96%] 457s tests/translate/tools/test_pocount.py::test_error_cases[missing-file] PASSED [ 96%] 457s tests/translate/tools/test_pocount.py::test_error_cases[no-args] PASSED [ 96%] 457s tests/translate/tools/test_pocount.py::test_csv_line_terminator PASSED [ 96%] 457s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_fuzzy_with_target PASSED [ 96%] 457s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_fuzzy_without_target PASSED [ 96%] 457s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_translated_not_fuzzy PASSED [ 96%] 457s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_untranslated_empty_target PASSED [ 96%] 457s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_categorization_mutually_exclusive PASSED [ 96%] 457s tests/translate/tools/test_pocount.py::TestPOCountLineEndings::test_unusual_line_endings PASSED [ 96%] 457s tests/translate/tools/test_podebug.py::TestPODebug::test_ignore_gtk PASSED [ 96%] 457s tests/translate/tools/test_podebug.py::TestPODebug::test_keep_target PASSED [ 96%] 457s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank PASSED [ 97%] 457s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank_clears_fuzzy PASSED [ 97%] 457s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank_with_plurals PASSED [ 97%] 457s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_en PASSED [ 97%] 457s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_xxx PASSED [ 97%] 457s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_bracket PASSED [ 97%] 457s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode PASSED [ 97%] 457s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_at_placeholders PASSED [ 97%] 457s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_single_brace_placeholders PASSED [ 97%] 457s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_double_brace_placeholders PASSED [ 97%] 457s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_html PASSED [ 97%] 457s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_multiple_styles_of_placeholder PASSED [ 97%] 457s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped PASSED [ 97%] 457s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_at_placeholders PASSED [ 97%] 457s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_single_brace_placeholders PASSED [ 97%] 457s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_double_brace_placeholders PASSED [ 97%] 457s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_html PASSED [ 97%] 457s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_multiple_styles_of_placeholder PASSED [ 97%] 457s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified PASSED [ 97%] 457s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_at_placeholders PASSED [ 97%] 457s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_single_brace_placeholders PASSED [ 97%] 457s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_double_brace_placeholders PASSED [ 97%] 457s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_html PASSED [ 97%] 457s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_multiple_styles_of_placeholder PASSED [ 97%] 457s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_chef PASSED [ 97%] 457s tests/translate/tools/test_podebug.py::TestPODebug::test_po_variables PASSED [ 97%] 457s tests/translate/tools/test_podebug.py::TestPODebug::test_xliff_rewrite PASSED [ 97%] 457s tests/translate/tools/test_podebug.py::TestPODebug::test_hash PASSED [ 97%] 457s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_msgid PASSED [ 97%] 457s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_msgstr PASSED [ 97%] 457s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_locations PASSED [ 97%] 457s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_comments PASSED [ 97%] 457s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_locations_with_comment_enabled PASSED [ 97%] 457s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_message_searchstring PASSED [ 97%] 457s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_message_regex_searchstring PASSED [ 97%] 457s tests/translate/tools/test_pogrep.py::TestPOGrep::test_keep_translations PASSED [ 97%] 457s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_normalise PASSED [ 97%] 457s tests/translate/tools/test_pogrep.py::TestXLiffGrep::test_simplegrep PASSED [ 97%] 457s tests/translate/tools/test_pomerge.py::test_str2bool PASSED [ 97%] 457s tests/translate/tools/test_pomerge.py::TestPOMerge::test_mergesore_bad_data PASSED [ 98%] 457s tests/translate/tools/test_pomerge.py::TestPOMerge::test_simplemerge PASSED [ 98%] 457s tests/translate/tools/test_pomerge.py::TestPOMerge::test_simplemerge_no_locations PASSED [ 98%] 457s tests/translate/tools/test_pomerge.py::TestPOMerge::test_replacemerge PASSED [ 98%] 457s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_blanks PASSED [ 98%] 457s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_fuzzies PASSED [ 98%] 457s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_locations PASSED [ 98%] 457s tests/translate/tools/test_pomerge.py::TestPOMerge::test_unit_missing_in_template_with_locations PASSED [ 98%] 457s tests/translate/tools/test_pomerge.py::TestPOMerge::test_unit_missing_in_template_no_locations PASSED [ 98%] 457s tests/translate/tools/test_pomerge.py::TestPOMerge::test_reflowed_source_comments PASSED [ 98%] 457s tests/translate/tools/test_pomerge.py::TestPOMerge::test_comments_with_blank_lines PASSED [ 98%] 457s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merge_dont_delete_unassociated_comments PASSED [ 98%] 457s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_trailing_newlines PASSED [ 98%] 457s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_minor_start_and_end_of_sentence_changes PASSED [ 98%] 457s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_last_entry_in_a_file PASSED [ 98%] 457s tests/translate/tools/test_pomerge.py::TestPOMerge::test_escape_tabs XFAIL [ 98%] 457s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_comments_layout PASSED [ 98%] 457s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merge_dos2unix PASSED [ 98%] 457s tests/translate/tools/test_pomerge.py::TestPOMerge::test_xliff_into_xliff PASSED [ 98%] 457s tests/translate/tools/test_pomerge.py::TestPOMerge::test_po_into_xliff PASSED [ 98%] 457s tests/translate/tools/test_pomerge.py::TestPOMerge::test_xliff_into_po PASSED [ 98%] 457s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_dont_merge_kde_comments_found_in_translation PASSED [ 98%] 457s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_untranslated_with_kde_disambiguation PASSED [ 98%] 457s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_header_entries PASSED [ 98%] 457s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_different_locations PASSED [ 98%] 457s tests/translate/tools/test_posegment.py::TestPOSegment::test_en_ja_simple PASSED [ 98%] 457s tests/translate/tools/test_posegment.py::TestPOSegment::test_en_ja_punctuation PASSED [ 98%] 457s tests/translate/tools/test_posegment.py::TestPOSegment::test_transifex_po PASSED [ 98%] 457s tests/translate/tools/test_posegment.py::TestXLIFFSegment::test_xliff_en_simple PASSED [ 98%] 457s tests/translate/tools/test_posegment.py::TestXLIFFSegment::test_xliff_untranslated PASSED [ 98%] 457s tests/translate/tools/test_posegment.py::TestTMXSegment::test_tmx_en_simple PASSED [ 98%] 457s tests/translate/tools/test_poterminology.py::TestPOTerminology::test_term_extraction PASSED [ 98%] 457s tests/translate/tools/test_poterminology.py::TestPOTerminology::test_unitinfo_stores_minimal_data PASSED [ 98%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_pretranslatepo_blank PASSED [ 98%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_simple PASSED [ 98%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_messages_marked_fuzzy PASSED [ 98%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_plurals_with_fuzzy_matching PASSED [ 98%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgid_change XFAIL [ 98%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_location_change PASSED [ 98%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_location_and_whitespace_change PASSED [ 99%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_accelerator_changes XFAIL [ 99%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_lines_cut_differently XFAIL [ 99%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_automatic_comments_dont_duplicate PASSED [ 99%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_automatic_comments_new_overrides_old PASSED [ 99%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_comments_with_blank_comment_lines PASSED [ 99%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_empty_commentlines PASSED [ 99%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgidcomments PASSED [ 99%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_plurals PASSED [ 99%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_resurrect_obsolete_messages PASSED [ 99%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_comments PASSED [ 99%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_typecomments PASSED [ 99%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_xliff_states PASSED [ 99%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_pretranslatepo_blank PASSED [ 99%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_simple PASSED [ 99%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_messages_marked_fuzzy PASSED [ 99%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_plurals_with_fuzzy_matching PASSED [ 99%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgid_change XFAIL [ 99%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_location_change PASSED [ 99%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_location_and_whitespace_change PASSED [ 99%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_accelerator_changes XFAIL [ 99%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_lines_cut_differently XFAIL [ 99%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_automatic_comments_dont_duplicate PASSED [ 99%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_automatic_comments_new_overrides_old PASSED [ 99%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_comments_with_blank_comment_lines PASSED [ 99%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_empty_commentlines PASSED [ 99%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgidcomments PASSED [ 99%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_plurals PASSED [ 99%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_resurrect_obsolete_messages PASSED [ 99%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_comments PASSED [ 99%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_typecomments PASSED [ 99%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_xliff_states PASSED [ 99%] 457s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_help PASSED [ 99%] 457s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPo::test_single_po PASSED [ 99%] 457s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPo::test_plural_po PASSED [ 99%] 457s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_single_po PASSED [ 99%] 457s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_plural_po PASSED [ 99%] 457s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_help PASSED [ 99%] 457s tests/xliff_conformance/test_xliff_conformance.py::test_open_office_to_xliff PASSED [ 99%] 457s tests/xliff_conformance/test_xliff_conformance.py::test_po_to_xliff PASSED [100%] 457s 457s =============================== warnings summary =============================== 457s tests/odf_xliff/test_odf_xliff.py::test_roundtrip 457s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.ZrT223/autopkgtest_tmp/tests/odf_xliff/test_2.odt'> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_convertandroid 457s Warning: unclosed file <_io.TextIOWrapper name='TestAndroid2POCommand_test_convertandroid/en.po' mode='r' encoding='UTF-8'> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder 457s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder 457s Warning: unclosed file <_io.TextIOWrapper name='TestCSV2POCommand_test_columnorder/test.po' mode='r' encoding='UTF-8'> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_pot 457s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_pot/simple.pot'> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_po 457s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_po 457s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_po/simple.po'> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_remove_duplicates 457s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_remove_duplicates/simple.po'> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_xlf 457s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_xlf/simple.xlf'> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder 457s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder 457s Warning: unclosed file <_io.TextIOWrapper name='TestPO2CSVCommand_test_columnorder/test.csv' mode='r' encoding='UTF-8'> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_context 457s Warning: unclosed file <_io.TextIOWrapper name='TestPO2CSVCommand_test_context/test.csv' mode='r' encoding='UTF-8'> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing 457s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey 457s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey 457s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing 457s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey 457s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_amp_no_accesskey 457s Warning: Could not find accesskey for key.accesskey 457s 457s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified 457s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file 457s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file_and_templates_overwritten 457s Warning: unclosed file <_io.BufferedReader name='translation/file1.po'> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified 457s Warning: unclosed file <_io.BufferedWriter name='translated/file1.html'> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_convert 457s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.ZrT223/autopkgtest_tmp/tests/translate/convert/test.idml'> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_with_single_po 457s Warning: unclosed file <_io.BufferedReader name='translation.po'> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert 457s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert_with_multiple_units 457s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert 457s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.ZrT223/autopkgtest_tmp/tests/translate/convert/test.odt'> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_simple 457s Warning: unclosed file <_io.FileIO name='input.oo' mode='rb' closefd=True> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_simple 457s Warning: unclosed file <_io.FileIO name='output.oo' mode='wb' closefd=True> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey 457s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys_missing_accesskey 457s Warning: Could not find accesskey for prop.accesskey 457s 457s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_context 457s Warning: unclosed file <_io.BufferedReader name='test.po'> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_context 457s Warning: unclosed file <_io.TextIOWrapper name='TestPO2TMXCommand_test_context/test.tmx' mode='r' encoding='UTF-8'> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert 457s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert/simple.po'> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf16 457s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_utf16/simple.po'> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 457s Warning: unclosed file <_io.BufferedWriter name='simple.po'> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 457s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 457s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_wrong/simple.po'> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf8 457s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_utf8/simple.po'> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_menuex 457s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_menuex/simple.po'> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_pot 457s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_simple_pot/simple.pot'> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_po 457s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_simple_po/simple.po'> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_remove_duplicates 457s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_remove_duplicates/simple.po'> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_preserve_filename 457s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_preserve_filename/snippet.xlf'> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_pot 457s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_simple_pot/simple.pot'> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_po 457s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_simple_po/simple.po'> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_remove_duplicates 457s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_remove_duplicates/simple.po'> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers 457s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers 457s tests/translate/filters/test_checks.py::test_noaccelerators_only_in_mozilla_checker 457s tests/translate/filters/test_checks.py::test_ensure_accelerators_not_in_target_if_not_in_source 457s Warning: The 'u' type code is deprecated and will be removed in Python 3.16 457s 457s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_save_bundle 457s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_save_bundle 457s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpe3hd71tv_test.txt'> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_cross_device_save 457s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_cross_device_save 457s Warning: unclosed file <_io.BufferedReader name='/tmp/tmp20s9jrqq_crossdevice.txt'> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_replace_project_zip 457s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_replace_project_zip 457s Warning: unclosed file <_io.BufferedReader name='/tmp/tmph5st5566_initial.txt'> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 457s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 457s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpr1ik9r4r_load_test.txt'> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 457s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 457s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpj92ifgst_load_test.txt'> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 457s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 457s Warning: unclosed file <_io.BufferedReader name='/tmp/tmp3e70h_zn_file0.txt'> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 457s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 457s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpi38k4_0c_file1.txt'> 457s Enable tracemalloc to get traceback where the object was allocated. 457s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 457s 457s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 457s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 457s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpt7_qa1ss_file2.txt'> 457s Enable tracemalloc to get traceback where the object was allocated. 458s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 458s 458s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting 458s Warning: DTD parse error: :1:35:FATAL:PARSER:ERR_ENTITY_NOT_FINISHED: xmlParseEntityDecl: entity test.me not terminated 458s :1:35:FATAL:PARSER:ERR_EXT_SUBSET_NOT_FINISHED: Content error in the external subset 458s 458s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting 458s Warning: DTD file '' does not validate 458s 458s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 458s --------------------------- snapshot report summary ---------------------------- 458s 23 snapshots passed. 458s =========================== short test summary info ============================ 458s SKIPPED [1] tests/translate/storage/test_cpo.py:15: could not import 'translate.storage.cpo': gettext PO library not found 458s SKIPPED [1] tests/translate/storage/test_fluent.py:29: could not import 'translate.storage.fluent': No module named 'fluent' 458s SKIPPED [1] tests/translate/filters/test_checks.py:1429: Spell checking for af is not available 458s XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accelerator_keys_not_in_sentence - Not Implemented 458s XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accelerator_keys_not_in_sentence - Not Implemented 458s XFAIL tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_table - https://github.com/miyuchina/mistletoe/issues/244 458s XFAIL tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_propertyless_template - Need to review if we want this behaviour 458s XFAIL tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_propertyless_template - Need to review if we want this behaviour 458s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_change - Not implemented - review if this is even correct 458s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_accelerator_changes - Not Implemented - needs review 458s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_lines_cut_differently - Not Implemented - review if this is even correct 458s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_change - Not implemented - review if this is even correct 458s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_accelerator_changes - Not Implemented - needs review 458s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_lines_cut_differently - Not Implemented - review if this is even correct 458s XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_no_duplicates - This is invalid YAML document 458s XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_no_duplicates - This is invalid YAML document 458s XFAIL tests/translate/filters/test_checks.py::test_acceleratedvariables - Accelerated variables needs a better implementation 458s XFAIL tests/translate/filters/test_checks.py::test_musttranslatewords - FIXME: All fails() tests are not working 458s XFAIL tests/translate/filters/test_checks.py::test_persian_single_and_double_quote_fail_at_the_same_time - Bug #3408 458s XFAIL tests/translate/filters/test_checks.py::test_bengali_mozilla_inverted_xmltags - Bug #3506 458s XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_general_placeables - Test needs fixing, disabled for now 458s XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_xliff_placeables - Test needs fixing, disabled for now 458s XFAIL tests/translate/storage/test_dtd.py::test_quotefordtd_unimplemented_cases - Not Implemented 458s XFAIL tests/translate/storage/test_dtd.py::test_unquotefromdtd_unimplemented_cases - Not Implemented 458s XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_comment_following - Not Implemented 458s XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting - Not Implemented 458s XFAIL tests/translate/storage/test_omegat.py::TestOmegaTFile::test_extensions - This doesn't work, due to two store classes handling different extensions, but factory listing it as one supported file type 458s XFAIL tests/translate/storage/test_po.py::TestPOFile::test_kde_plurals - Not Implemented 458s XFAIL tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo 458s XFAIL tests/translate/storage/test_properties.py::TestXWikiFullPage::test_remove - removal not working in full page 458s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_plurals - Not Implemented 458s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo 458s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_typecomment - Not sure if this can not be parsed gracefully 458s XFAIL tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_note_sanity - Not Implemented 458s XFAIL tests/translate/tools/test_pocount.py::TestCount::test_plurals_kde - Support commented out pending removal 458s XFAIL tests/translate/tools/test_pomerge.py::TestPOMerge::test_escape_tabs - Not Implemented 458s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgid_change - Not Implemented 458s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_accelerator_changes - Not Implemented 458s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_lines_cut_differently - Not Implemented 458s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgid_change - Not Implemented 458s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_accelerator_changes - Not Implemented 458s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_lines_cut_differently - Not Implemented 458s ========== 3862 passed, 3 skipped, 39 xfailed, 69 warnings in 10.48s =========== 458s autopkgtest [23:56:53]: test python3-translate-commands: -----------------------] 459s python3-translate-commands PASS 459s autopkgtest [23:56:54]: test python3-translate-commands: - - - - - - - - - - results - - - - - - - - - - 459s autopkgtest [23:56:54]: @@@@@@@@@@@@@@@@@@@@ summary 459s translate-toolkit PASS 459s python3-translate PASS 459s python3-translate-commands PASS