0s autopkgtest [05:38:01]: starting date and time: 2026-01-30 05:38:01+0000 0s autopkgtest [05:38:01]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [05:38:01]: host juju-7f2275-prod-proposed-migration-environment-20; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.k0o6zypz/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-arm64 --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-20@sto01-arm64-20.secgroup --name adt-resolute-arm64-translate-toolkit-20260130-053801-juju-7f2275-prod-proposed-migration-environment-20-7158e1f5-5e15-4511-85b1-a01ac0c9050e --image adt/ubuntu-resolute-arm64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-20 --net-id=net_prod-autopkgtest-workers-arm64 -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 4s Creating nova instance adt-resolute-arm64-translate-toolkit-20260130-053801-juju-7f2275-prod-proposed-migration-environment-20-7158e1f5-5e15-4511-85b1-a01ac0c9050e from image adt/ubuntu-resolute-arm64-server-20260130.img (UUID d80a3628-95a8-4c17-a25a-26b02882b363)... 52s autopkgtest [05:38:53]: testbed dpkg architecture: arm64 52s autopkgtest [05:38:53]: testbed apt version: 3.1.14 53s autopkgtest [05:38:54]: @@@@@@@@@@@@@@@@@@@@ test bed setup 53s autopkgtest [05:38:54]: testbed release detected to be: None 54s autopkgtest [05:38:55]: updating testbed package index (apt update) 54s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 54s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 54s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 54s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 54s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [103 kB] 54s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [2820 B] 54s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [1600 kB] 55s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [33.0 kB] 55s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 Packages [120 kB] 55s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 c-n-f Metadata [4364 B] 55s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/restricted arm64 Packages [12.3 kB] 55s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/restricted arm64 c-n-f Metadata [328 B] 55s Get:13 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 Packages [1166 kB] 55s Get:14 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 c-n-f Metadata [21.9 kB] 55s Get:15 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse arm64 Packages [25.4 kB] 55s Get:16 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse arm64 c-n-f Metadata [720 B] 58s Fetched 3215 kB in 1s (2506 kB/s) 58s Reading package lists... 59s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 59s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 59s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 59s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 60s Reading package lists... 60s Reading package lists... 60s Building dependency tree... 60s Reading state information... 61s Calculating upgrade... 61s The following packages will be upgraded: 61s bzip2 inetutils-telnet libbz2-1.0 libsqlite3-0 telnet 61s 5 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 61s Need to get 888 kB of archives. 61s After this operation, 2048 B of additional disk space will be used. 61s Get:1 http://ftpmaster.internal/ubuntu resolute/main arm64 bzip2 arm64 1.0.8-6build2 [34.0 kB] 61s Get:2 http://ftpmaster.internal/ubuntu resolute/main arm64 libbz2-1.0 arm64 1.0.8-6build2 [34.9 kB] 61s Get:3 http://ftpmaster.internal/ubuntu resolute/main arm64 libsqlite3-0 arm64 3.46.1-9 [711 kB] 62s Get:4 http://ftpmaster.internal/ubuntu resolute/main arm64 inetutils-telnet arm64 2:2.7-2ubuntu1 [104 kB] 62s Get:5 http://ftpmaster.internal/ubuntu resolute/main arm64 telnet all 0.17+2.7-2ubuntu1 [3636 B] 62s dpkg-preconfigure: unable to re-open stdin: No such file or directory 62s Fetched 888 kB in 1s (1423 kB/s) 62s (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 ... 135255 files and directories currently installed.) 62s Preparing to unpack .../bzip2_1.0.8-6build2_arm64.deb ... 62s Unpacking bzip2 (1.0.8-6build2) over (1.0.8-6build1) ... 62s Preparing to unpack .../libbz2-1.0_1.0.8-6build2_arm64.deb ... 62s Unpacking libbz2-1.0:arm64 (1.0.8-6build2) over (1.0.8-6build1) ... 62s Setting up libbz2-1.0:arm64 (1.0.8-6build2) ... 62s (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 ... 135255 files and directories currently installed.) 62s Preparing to unpack .../libsqlite3-0_3.46.1-9_arm64.deb ... 63s Unpacking libsqlite3-0:arm64 (3.46.1-9) over (3.46.1-8) ... 63s Preparing to unpack .../inetutils-telnet_2%3a2.7-2ubuntu1_arm64.deb ... 63s Unpacking inetutils-telnet (2:2.7-2ubuntu1) over (2:2.6-4ubuntu1) ... 63s Preparing to unpack .../telnet_0.17+2.7-2ubuntu1_all.deb ... 63s Unpacking telnet (0.17+2.7-2ubuntu1) over (0.17+2.6-4ubuntu1) ... 63s Setting up libsqlite3-0:arm64 (3.46.1-9) ... 63s Setting up inetutils-telnet (2:2.7-2ubuntu1) ... 63s Setting up bzip2 (1.0.8-6build2) ... 63s Setting up telnet (0.17+2.7-2ubuntu1) ... 63s Processing triggers for man-db (2.13.1-1) ... 63s Processing triggers for libc-bin (2.42-2ubuntu4) ... 64s autopkgtest [05:39:05]: upgrading testbed (apt dist-upgrade and autopurge) 64s Reading package lists... 64s Building dependency tree... 64s Reading state information... 64s Calculating upgrade... 65s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 65s Reading package lists... 65s Building dependency tree... 65s Reading state information... 65s Solving dependencies... 66s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 68s autopkgtest [05:39:09]: testbed running kernel: Linux 6.18.0-9-generic #9-Ubuntu SMP PREEMPT_DYNAMIC Mon Jan 12 16:41:39 UTC 2026 68s autopkgtest [05:39:09]: @@@@@@@@@@@@@@@@@@@@ apt-source translate-toolkit 70s Get:1 http://ftpmaster.internal/ubuntu resolute/universe translate-toolkit 3.18.1-1 (dsc) [3515 B] 70s Get:2 http://ftpmaster.internal/ubuntu resolute/universe translate-toolkit 3.18.1-1 (tar) [962 kB] 70s Get:3 http://ftpmaster.internal/ubuntu resolute/universe translate-toolkit 3.18.1-1 (diff) [22.7 kB] 70s gpgv: Signature made Sat Jan 24 03:45:51 2026 UTC 70s gpgv: using RSA key 374D8CE4DB96E9CBD4C0972A606D084E4683C079 70s gpgv: Can't check signature: No public key 70s dpkg-source: warning: cannot verify inline signature for ./translate-toolkit_3.18.1-1.dsc: no acceptable signature found 71s autopkgtest [05:39:12]: testing package translate-toolkit version 3.18.1-1 71s autopkgtest [05:39:12]: build not needed 71s autopkgtest [05:39:12]: test translate-toolkit: preparing testbed 72s Reading package lists... 72s Building dependency tree... 72s Reading state information... 72s Solving dependencies... 72s The following NEW packages will be installed: 72s dictionaries-common emacsen-common gettext hunspell-en-us libapr1t64 72s libaprutil1t64 libaspell15 libenchant-2-2 libexttextcat-data libgomp1 72s libhunspell-1.7-0 libserf-1-1 libsvn1 libutf8proc3 libxapian30 libxslt1.1 72s python3-aeidon python3-bs4 python3-charset-normalizer python3-cheroot 72s python3-diff-match-patch python3-enchant python3-iniparse 72s python3-levenshtein python3-lxml python3-mistletoe python3-phply python3-ply 72s python3-pycountry python3-pytz python3-rapidfuzz python3-ruamel.yaml 72s python3-ruamel.yaml.clib python3-soupsieve python3-tomlkit python3-translate 72s python3-unicode-segmentation-rs python3-vobject python3-xapian subversion 72s translate-toolkit 72s 0 upgraded, 41 newly installed, 0 to remove and 0 not upgraded. 72s Need to get 12.3 MB of archives. 72s After this operation, 63.2 MB of additional disk space will be used. 72s Get:1 http://ftpmaster.internal/ubuntu resolute/main arm64 emacsen-common all 3.0.8 [13.9 kB] 72s Get:2 http://ftpmaster.internal/ubuntu resolute/main arm64 dictionaries-common all 1.31.3 [179 kB] 72s Get:3 http://ftpmaster.internal/ubuntu resolute/main arm64 libgomp1 arm64 15.2.0-12ubuntu1 [147 kB] 72s Get:4 http://ftpmaster.internal/ubuntu resolute/main arm64 gettext arm64 0.23.2-1 [998 kB] 72s Get:5 http://ftpmaster.internal/ubuntu resolute/main arm64 hunspell-en-us all 1:2020.12.07-4build1 [585 kB] 73s Get:6 http://ftpmaster.internal/ubuntu resolute/main arm64 libapr1t64 arm64 1.7.6-3 [107 kB] 73s Get:7 http://ftpmaster.internal/ubuntu resolute/main arm64 libaprutil1t64 arm64 1.6.3-3ubuntu3 [92.9 kB] 73s Get:8 http://ftpmaster.internal/ubuntu resolute/main arm64 libaspell15 arm64 0.60.8.1-6 [314 kB] 73s Get:9 http://ftpmaster.internal/ubuntu resolute/main arm64 libhunspell-1.7-0 arm64 1.7.2+really1.7.2-11 [300 kB] 73s Get:10 http://ftpmaster.internal/ubuntu resolute/main arm64 libenchant-2-2 arm64 2.8.2+dfsg1-3build1 [57.8 kB] 73s Get:11 http://ftpmaster.internal/ubuntu resolute/main arm64 libexttextcat-data all 3.4.7-1ubuntu2 [193 kB] 73s Get:12 http://ftpmaster.internal/ubuntu resolute/universe arm64 libserf-1-1 arm64 1.3.10-3ubuntu1 [48.7 kB] 73s Get:13 http://ftpmaster.internal/ubuntu resolute/universe arm64 libutf8proc3 arm64 2.10.0-2 [71.3 kB] 73s Get:14 http://ftpmaster.internal/ubuntu resolute/universe arm64 libsvn1 arm64 1.14.5-5 [1334 kB] 73s Get:15 http://ftpmaster.internal/ubuntu resolute/universe arm64 libxapian30 arm64 1.4.29-3 [684 kB] 73s Get:16 http://ftpmaster.internal/ubuntu resolute/main arm64 libxslt1.1 arm64 1.1.43-0.3 [172 kB] 73s Get:17 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-aeidon all 1.15-2build1 [225 kB] 73s Get:18 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-soupsieve all 2.8.3-1 [34.0 kB] 73s Get:19 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-bs4 all 4.14.3-2build1 [84.8 kB] 73s Get:20 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-charset-normalizer arm64 3.4.4-2 [169 kB] 73s Get:21 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-cheroot all 11.1.2+ds1-1 [81.5 kB] 73s Get:22 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-diff-match-patch all 20241021-1 [33.6 kB] 73s Get:23 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-enchant all 3.3.0-1 [35.0 kB] 73s Get:24 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-rapidfuzz arm64 3.12.2+ds-1build1 [1368 kB] 73s Get:25 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-levenshtein arm64 0.27.1-2build1 [132 kB] 73s Get:26 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-lxml arm64 6.0.2-1 [2155 kB] 73s Get:27 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-mistletoe all 1.5.1-1 [41.7 kB] 73s Get:28 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-ply all 3.11-10 [45.9 kB] 73s Get:29 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-phply all 1.2.6-1build1 [50.6 kB] 73s Get:30 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pytz all 2025.2-5 [32.4 kB] 73s Get:31 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-ruamel.yaml.clib arm64 0.2.15+ds-1 [178 kB] 73s Get:32 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 python3-ruamel.yaml all 0.18.10+ds-1build1 [127 kB] 73s Get:33 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-tomlkit all 0.13.3-2 [39.1 kB] 73s Get:34 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-translate all 3.18.1-1 [339 kB] 74s Get:35 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-unicode-segmentation-rs arm64 0.2.1-1 [211 kB] 74s Get:36 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-vobject all 0.9.9+dfsg-1 [41.5 kB] 74s Get:37 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-xapian arm64 1.4.29-1build1 [561 kB] 74s Get:38 http://ftpmaster.internal/ubuntu resolute/universe arm64 subversion arm64 1.14.5-5 [895 kB] 74s Get:39 http://ftpmaster.internal/ubuntu resolute/universe arm64 translate-toolkit all 3.18.1-1 [83.7 kB] 74s Get:40 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-iniparse all 0.5.1-2 [21.4 kB] 74s Get:41 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pycountry all 24.6.1+ds1-1 [30.0 kB] 74s Preconfiguring packages ... 74s Fetched 12.3 MB in 1s (8264 kB/s) 74s Selecting previously unselected package emacsen-common. 74s (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 ... 135255 files and directories currently installed.) 74s Preparing to unpack .../00-emacsen-common_3.0.8_all.deb ... 74s Unpacking emacsen-common (3.0.8) ... 74s Selecting previously unselected package dictionaries-common. 74s Preparing to unpack .../01-dictionaries-common_1.31.3_all.deb ... 74s Adding 'diversion of /usr/share/dict/words to /usr/share/dict/words.pre-dictionaries-common by dictionaries-common' 74s Unpacking dictionaries-common (1.31.3) ... 74s Selecting previously unselected package libgomp1:arm64. 74s Preparing to unpack .../02-libgomp1_15.2.0-12ubuntu1_arm64.deb ... 74s Unpacking libgomp1:arm64 (15.2.0-12ubuntu1) ... 74s Selecting previously unselected package gettext. 74s Preparing to unpack .../03-gettext_0.23.2-1_arm64.deb ... 74s Unpacking gettext (0.23.2-1) ... 74s Selecting previously unselected package hunspell-en-us. 75s Preparing to unpack .../04-hunspell-en-us_1%3a2020.12.07-4build1_all.deb ... 75s Unpacking hunspell-en-us (1:2020.12.07-4build1) ... 75s Selecting previously unselected package libapr1t64:arm64. 75s Preparing to unpack .../05-libapr1t64_1.7.6-3_arm64.deb ... 75s Unpacking libapr1t64:arm64 (1.7.6-3) ... 75s Selecting previously unselected package libaprutil1t64:arm64. 75s Preparing to unpack .../06-libaprutil1t64_1.6.3-3ubuntu3_arm64.deb ... 75s Unpacking libaprutil1t64:arm64 (1.6.3-3ubuntu3) ... 75s Selecting previously unselected package libaspell15:arm64. 75s Preparing to unpack .../07-libaspell15_0.60.8.1-6_arm64.deb ... 75s Unpacking libaspell15:arm64 (0.60.8.1-6) ... 75s Selecting previously unselected package libhunspell-1.7-0:arm64. 75s Preparing to unpack .../08-libhunspell-1.7-0_1.7.2+really1.7.2-11_arm64.deb ... 75s Unpacking libhunspell-1.7-0:arm64 (1.7.2+really1.7.2-11) ... 75s Selecting previously unselected package libenchant-2-2:arm64. 75s Preparing to unpack .../09-libenchant-2-2_2.8.2+dfsg1-3build1_arm64.deb ... 75s Unpacking libenchant-2-2:arm64 (2.8.2+dfsg1-3build1) ... 75s Selecting previously unselected package libexttextcat-data. 75s Preparing to unpack .../10-libexttextcat-data_3.4.7-1ubuntu2_all.deb ... 75s Unpacking libexttextcat-data (3.4.7-1ubuntu2) ... 75s Selecting previously unselected package libserf-1-1:arm64. 75s Preparing to unpack .../11-libserf-1-1_1.3.10-3ubuntu1_arm64.deb ... 75s Unpacking libserf-1-1:arm64 (1.3.10-3ubuntu1) ... 75s Selecting previously unselected package libutf8proc3:arm64. 75s Preparing to unpack .../12-libutf8proc3_2.10.0-2_arm64.deb ... 75s Unpacking libutf8proc3:arm64 (2.10.0-2) ... 75s Selecting previously unselected package libsvn1:arm64. 75s Preparing to unpack .../13-libsvn1_1.14.5-5_arm64.deb ... 75s Unpacking libsvn1:arm64 (1.14.5-5) ... 75s Selecting previously unselected package libxapian30:arm64. 75s Preparing to unpack .../14-libxapian30_1.4.29-3_arm64.deb ... 75s Unpacking libxapian30:arm64 (1.4.29-3) ... 75s Selecting previously unselected package libxslt1.1:arm64. 75s Preparing to unpack .../15-libxslt1.1_1.1.43-0.3_arm64.deb ... 75s Unpacking libxslt1.1:arm64 (1.1.43-0.3) ... 75s Selecting previously unselected package python3-aeidon. 75s Preparing to unpack .../16-python3-aeidon_1.15-2build1_all.deb ... 75s Unpacking python3-aeidon (1.15-2build1) ... 75s Selecting previously unselected package python3-soupsieve. 75s Preparing to unpack .../17-python3-soupsieve_2.8.3-1_all.deb ... 75s Unpacking python3-soupsieve (2.8.3-1) ... 75s Selecting previously unselected package python3-bs4. 75s Preparing to unpack .../18-python3-bs4_4.14.3-2build1_all.deb ... 75s Unpacking python3-bs4 (4.14.3-2build1) ... 75s Selecting previously unselected package python3-charset-normalizer. 75s Preparing to unpack .../19-python3-charset-normalizer_3.4.4-2_arm64.deb ... 75s Unpacking python3-charset-normalizer (3.4.4-2) ... 75s Selecting previously unselected package python3-cheroot. 75s Preparing to unpack .../20-python3-cheroot_11.1.2+ds1-1_all.deb ... 75s Unpacking python3-cheroot (11.1.2+ds1-1) ... 75s Selecting previously unselected package python3-diff-match-patch. 76s Preparing to unpack .../21-python3-diff-match-patch_20241021-1_all.deb ... 76s Unpacking python3-diff-match-patch (20241021-1) ... 76s Selecting previously unselected package python3-enchant. 76s Preparing to unpack .../22-python3-enchant_3.3.0-1_all.deb ... 76s Unpacking python3-enchant (3.3.0-1) ... 76s Selecting previously unselected package python3-rapidfuzz. 76s Preparing to unpack .../23-python3-rapidfuzz_3.12.2+ds-1build1_arm64.deb ... 76s Unpacking python3-rapidfuzz (3.12.2+ds-1build1) ... 76s Selecting previously unselected package python3-levenshtein. 76s Preparing to unpack .../24-python3-levenshtein_0.27.1-2build1_arm64.deb ... 76s Unpacking python3-levenshtein (0.27.1-2build1) ... 76s Selecting previously unselected package python3-lxml:arm64. 76s Preparing to unpack .../25-python3-lxml_6.0.2-1_arm64.deb ... 76s Unpacking python3-lxml:arm64 (6.0.2-1) ... 76s Selecting previously unselected package python3-mistletoe. 76s Preparing to unpack .../26-python3-mistletoe_1.5.1-1_all.deb ... 76s Unpacking python3-mistletoe (1.5.1-1) ... 76s Selecting previously unselected package python3-ply. 76s Preparing to unpack .../27-python3-ply_3.11-10_all.deb ... 76s Unpacking python3-ply (3.11-10) ... 76s Selecting previously unselected package python3-phply. 76s Preparing to unpack .../28-python3-phply_1.2.6-1build1_all.deb ... 76s Unpacking python3-phply (1.2.6-1build1) ... 76s Selecting previously unselected package python3-pytz. 76s Preparing to unpack .../29-python3-pytz_2025.2-5_all.deb ... 76s Unpacking python3-pytz (2025.2-5) ... 76s Selecting previously unselected package python3-ruamel.yaml.clib. 76s Preparing to unpack .../30-python3-ruamel.yaml.clib_0.2.15+ds-1_arm64.deb ... 76s Unpacking python3-ruamel.yaml.clib (0.2.15+ds-1) ... 76s Selecting previously unselected package python3-ruamel.yaml. 76s Preparing to unpack .../31-python3-ruamel.yaml_0.18.10+ds-1build1_all.deb ... 76s Unpacking python3-ruamel.yaml (0.18.10+ds-1build1) ... 76s Selecting previously unselected package python3-tomlkit. 76s Preparing to unpack .../32-python3-tomlkit_0.13.3-2_all.deb ... 76s Unpacking python3-tomlkit (0.13.3-2) ... 76s Selecting previously unselected package python3-translate. 76s Preparing to unpack .../33-python3-translate_3.18.1-1_all.deb ... 76s Unpacking python3-translate (3.18.1-1) ... 76s Selecting previously unselected package python3-unicode-segmentation-rs. 76s Preparing to unpack .../34-python3-unicode-segmentation-rs_0.2.1-1_arm64.deb ... 76s Unpacking python3-unicode-segmentation-rs (0.2.1-1) ... 76s Selecting previously unselected package python3-vobject. 76s Preparing to unpack .../35-python3-vobject_0.9.9+dfsg-1_all.deb ... 76s Unpacking python3-vobject (0.9.9+dfsg-1) ... 76s Selecting previously unselected package python3-xapian. 76s Preparing to unpack .../36-python3-xapian_1.4.29-1build1_arm64.deb ... 76s Unpacking python3-xapian (1.4.29-1build1) ... 76s Selecting previously unselected package subversion. 77s Preparing to unpack .../37-subversion_1.14.5-5_arm64.deb ... 77s Unpacking subversion (1.14.5-5) ... 77s Selecting previously unselected package translate-toolkit. 77s Preparing to unpack .../38-translate-toolkit_3.18.1-1_all.deb ... 77s Unpacking translate-toolkit (3.18.1-1) ... 77s Selecting previously unselected package python3-iniparse. 77s Preparing to unpack .../39-python3-iniparse_0.5.1-2_all.deb ... 77s Unpacking python3-iniparse (0.5.1-2) ... 77s Selecting previously unselected package python3-pycountry. 77s Preparing to unpack .../40-python3-pycountry_24.6.1+ds1-1_all.deb ... 77s Unpacking python3-pycountry (24.6.1+ds1-1) ... 77s Setting up libxapian30:arm64 (1.4.29-3) ... 77s Setting up python3-rapidfuzz (3.12.2+ds-1build1) ... 77s Setting up python3-diff-match-patch (20241021-1) ... 77s Setting up python3-aeidon (1.15-2build1) ... 77s Setting up libutf8proc3:arm64 (2.10.0-2) ... 77s Setting up libaspell15:arm64 (0.60.8.1-6) ... 77s Setting up python3-charset-normalizer (3.4.4-2) ... 77s Setting up python3-ply (3.11-10) ... 78s Setting up python3-ruamel.yaml.clib (0.2.15+ds-1) ... 78s Setting up python3-pytz (2025.2-5) ... 78s Setting up python3-unicode-segmentation-rs (0.2.1-1) ... 78s Setting up libgomp1:arm64 (15.2.0-12ubuntu1) ... 78s Setting up emacsen-common (3.0.8) ... 78s Setting up python3-cheroot (11.1.2+ds1-1) ... 78s Setting up python3-pycountry (24.6.1+ds1-1) ... 78s Setting up python3-xapian (1.4.29-1build1) ... 78s Setting up python3-ruamel.yaml (0.18.10+ds-1build1) ... 78s Setting up python3-mistletoe (1.5.1-1) ... 79s Setting up libexttextcat-data (3.4.7-1ubuntu2) ... 79s Setting up libapr1t64:arm64 (1.7.6-3) ... 79s Setting up libxslt1.1:arm64 (1.1.43-0.3) ... 79s Setting up python3-levenshtein (0.27.1-2build1) ... 79s Setting up libhunspell-1.7-0:arm64 (1.7.2+really1.7.2-11) ... 79s Setting up python3-tomlkit (0.13.3-2) ... 79s Setting up python3-soupsieve (2.8.3-1) ... 79s Setting up python3-iniparse (0.5.1-2) ... 79s Setting up libaprutil1t64:arm64 (1.6.3-3ubuntu3) ... 79s Setting up python3-vobject (0.9.9+dfsg-1) ... 79s Setting up gettext (0.23.2-1) ... 79s Setting up python3-phply (1.2.6-1build1) ... 79s Setting up dictionaries-common (1.31.3) ... 80s Setting up libserf-1-1:arm64 (1.3.10-3ubuntu1) ... 80s Setting up python3-bs4 (4.14.3-2build1) ... 80s Setting up python3-lxml:arm64 (6.0.2-1) ... 80s Setting up hunspell-en-us (1:2020.12.07-4build1) ... 80s Setting up libsvn1:arm64 (1.14.5-5) ... 80s Setting up libenchant-2-2:arm64 (2.8.2+dfsg1-3build1) ... 80s Setting up subversion (1.14.5-5) ... 80s Setting up python3-enchant (3.3.0-1) ... 80s Setting up python3-translate (3.18.1-1) ... 81s Setting up translate-toolkit (3.18.1-1) ... 81s Processing triggers for libc-bin (2.42-2ubuntu4) ... 81s Processing triggers for man-db (2.13.1-1) ... 82s Processing triggers for install-info (7.2-5) ... 82s Processing triggers for dictionaries-common (1.31.3) ... 83s autopkgtest [05:39:24]: test translate-toolkit: [----------------------- 83s ========= SMOKE TEST: /usr/bin/android2po =========== 83s Usage: android2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 83s 83s Convert Android string files to Gettext PO localization files. See: 83s http://docs.translatehouse.org/projects/translate- 83s toolkit/en/latest/commands/android2po.html for examples and usage 83s instructions. 83s 83s Options: 83s --version show program's version number and exit 83s -h, --help show this help message and exit 83s --manpage output a manpage based on the help 83s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 83s --errorlevel=ERRORLEVEL 83s show errorlevel as: none, message, exception, 83s traceback 83s -i INPUT, --input=INPUT 83s read from INPUT in xml format 83s -x EXCLUDE, --exclude=EXCLUDE 83s exclude names matching EXCLUDE from input paths 83s -o OUTPUT, --output=OUTPUT 83s write to OUTPUT in po, pot formats 83s -t TEMPLATE, --template=TEMPLATE 83s read from TEMPLATE in xml format 83s -S, --timestamp skip conversion if the output file has newer timestamp 83s --duplicates=DUPLICATESTYLE 83s what to do with duplicate strings (identical source 83s text): merge, msgctxt (default: 'msgctxt') 83s ========= SMOKE TEST: /usr/bin/build_tmdb =========== 83s usage: build_tmdb [-h] [-d TMDB_FILE] [-s SOURCE_LANG] -t TARGET_LANG 83s input files [input files ...] 83s 83s positional arguments: 83s input files 83s 83s options: 83s -h, --help show this help message and exit 83s -d, --tmdb TMDB_FILE translation memory database file (default: tm.db) 83s -s, --import-source-lang SOURCE_LANG 83s source language of translation files (default: en) 83s -t, --import-target-lang TARGET_LANG 83s target language of translation files 83s ========= SMOKE TEST: /usr/bin/csv2po =========== 83s 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] 83s 83s Convert Comma-Separated Value (.csv) files to Gettext PO localization files. 83s See: http://docs.translatehouse.org/projects/translate- 83s toolkit/en/latest/commands/csv2po.html for examples and usage instructions. 83s 83s Options: 83s --version show program's version number and exit 83s -h, --help show this help message and exit 83s --manpage output a manpage based on the help 83s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 83s --errorlevel=ERRORLEVEL 83s show errorlevel as: none, message, exception, 83s traceback 83s -i INPUT, --input=INPUT 83s read from INPUT in csv format 83s -x EXCLUDE, --exclude=EXCLUDE 83s exclude names matching EXCLUDE from input paths 83s -o OUTPUT, --output=OUTPUT 83s write to OUTPUT in po, pot formats 83s -t TEMPLATE, --template=TEMPLATE 83s read from TEMPLATE in po, pot, pot formats 83s -S, --timestamp skip conversion if the output file has newer timestamp 83s -P, --pot output PO Templates (.pot) rather than PO files (.po) 83s --charset=CHARSET set charset to decode from csv files 83s --columnorder=COLUMNORDER 83s specify the order and position of columns 83s (location,source,target,context) 83s --duplicates=DUPLICATESTYLE 83s what to do with duplicate strings (identical source 83s text): merge, msgctxt (default: 'msgctxt') 83s ========= SMOKE TEST: /usr/bin/csv2tbx =========== 83s Usage: csv2tbx [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 83s 83s Convert Comma-Separated Value (.csv) files to a TermBase eXchange (.tbx) 83s glossary file. See: http://docs.translatehouse.org/projects/translate- 83s toolkit/en/latest/commands/csv2tbx.html for examples and usage instructions 83s 83s Options: 83s --version show program's version number and exit 83s -h, --help show this help message and exit 83s --manpage output a manpage based on the help 83s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 83s --errorlevel=ERRORLEVEL 83s show errorlevel as: none, message, exception, 83s traceback 83s -i INPUT, --input=INPUT 83s read from INPUT in csv format 83s -x EXCLUDE, --exclude=EXCLUDE 83s exclude names matching EXCLUDE from input paths 83s -o OUTPUT, --output=OUTPUT 83s write to OUTPUT in tbx format 83s -S, --timestamp skip conversion if the output file has newer timestamp 83s --charset=CHARSET set charset to decode from csv files 83s --columnorder=COLUMNORDER 83s specify the order and position of columns 83s (comment,source,target) 84s ========= SMOKE TEST: /usr/bin/dtd2po =========== 84s 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] 84s 84s Convert a Mozilla .dtd UTF-8 localization format to a Gettext PO localization 84s file. Uses the po and dtd modules, and the dtd2po convertor class which is in 84s this module You can convert back to .dtd using po2dtd.py. 84s 84s Options: 84s --version show program's version number and exit 84s -h, --help show this help message and exit 84s --manpage output a manpage based on the help 84s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 84s --errorlevel=ERRORLEVEL 84s show errorlevel as: none, message, exception, 84s traceback 84s -i INPUT, --input=INPUT 84s read from INPUT in dtd format 84s -x EXCLUDE, --exclude=EXCLUDE 84s exclude names matching EXCLUDE from input paths 84s -o OUTPUT, --output=OUTPUT 84s write to OUTPUT in po, pot formats 84s -t TEMPLATE, --template=TEMPLATE 84s read from TEMPLATE in dtd format 84s -S, --timestamp skip conversion if the output file has newer timestamp 84s -P, --pot output PO Templates (.pot) rather than PO files (.po) 84s --duplicates=DUPLICATESTYLE 84s what to do with duplicate strings (identical source 84s text): merge, msgctxt (default: 'msgctxt') 84s ========= SMOKE TEST: /usr/bin/flatxml2po =========== 84s Usage: flatxml2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 84s 84s Convert flat XML files to Gettext PO localization files. See: 84s http://docs.translatehouse.org/projects/translate- 84s toolkit/en/latest/commands/flatxml2po.html for examples and usage 84s instructions. 84s 84s Options: 84s --version show program's version number and exit 84s -h, --help show this help message and exit 84s --manpage output a manpage based on the help 84s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 84s --errorlevel=ERRORLEVEL 84s show errorlevel as: none, message, exception, 84s traceback 84s -i INPUT, --input=INPUT 84s read from INPUT in xml format 84s -x EXCLUDE, --exclude=EXCLUDE 84s exclude names matching EXCLUDE from input paths 84s -o OUTPUT, --output=OUTPUT 84s write to OUTPUT in po, pot formats 84s -S, --timestamp skip conversion if the output file has newer timestamp 84s -r ROOT, --root=ROOT name of the XML root element (default: "root") 84s -v VALUE, --value=VALUE 84s name of the XML value element (default: "str") 84s -k KEY, --key=KEY name of the XML key attribute (default: "key") 84s -n NS, --namespace=NS 84s XML namespace uri (default: None) 84s ========= SMOKE TEST: /usr/bin/html2po =========== 84s Usage: html2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 84s 84s Convert HTML files to Gettext PO localization files. See: 84s http://docs.translatehouse.org/projects/translate- 84s toolkit/en/latest/commands/html2po.html for examples and usage instructions. 84s 84s Options: 84s --version show program's version number and exit 84s -h, --help show this help message and exit 84s --manpage output a manpage based on the help 84s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 84s --errorlevel=ERRORLEVEL 84s show errorlevel as: none, message, exception, 84s traceback 84s -i INPUT, --input=INPUT 84s read from INPUT in htm, html, xhtml formats 84s -x EXCLUDE, --exclude=EXCLUDE 84s exclude names matching EXCLUDE from input paths 84s -o OUTPUT, --output=OUTPUT 84s write to OUTPUT in po, pot formats 84s -S, --timestamp skip conversion if the output file has newer timestamp 84s -P, --pot output PO Templates (.pot) rather than PO files (.po) 84s --keepcomments preserve html comments as translation notes in the 84s output 84s --duplicates=DUPLICATESTYLE 84s what to do with duplicate strings (identical source 84s text): merge, msgctxt (default: 'msgctxt') 84s --multifile=MULTIFILESTYLE 84s how to split po/pot files (single, toplevel or 84s onefile) 84s ========= SMOKE TEST: /usr/bin/ical2po =========== 84s 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] 84s 84s Convert iCalendar files to Gettext PO localization files. See: 84s http://docs.translatehouse.org/projects/translate- 84s toolkit/en/latest/commands/ical2po.html for examples and usage instructions. 84s 84s Options: 84s --version show program's version number and exit 84s -h, --help show this help message and exit 84s --manpage output a manpage based on the help 84s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 84s --errorlevel=ERRORLEVEL 84s show errorlevel as: none, message, exception, 84s traceback 84s -i INPUT, --input=INPUT 84s read from INPUT in ics format 84s -x EXCLUDE, --exclude=EXCLUDE 84s exclude names matching EXCLUDE from input paths 84s -o OUTPUT, --output=OUTPUT 84s write to OUTPUT in po, pot formats 84s -t TEMPLATE, --template=TEMPLATE 84s read from TEMPLATE in ics format 84s -S, --timestamp skip conversion if the output file has newer timestamp 84s -P, --pot output PO Templates (.pot) rather than PO files (.po) 84s --duplicates=DUPLICATESTYLE 84s what to do with duplicate strings (identical source 84s text): merge, msgctxt (default: 'msgctxt') 84s ========= SMOKE TEST: /usr/bin/idml2po =========== 85s Usage: idml2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 85s 85s Convert IDML files to PO localization files. 85s 85s Options: 85s --version show program's version number and exit 85s -h, --help show this help message and exit 85s --manpage output a manpage based on the help 85s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 85s --errorlevel=ERRORLEVEL 85s show errorlevel as: none, message, exception, 85s traceback 85s -i INPUT, --input=INPUT 85s read from INPUT in idml format 85s -x EXCLUDE, --exclude=EXCLUDE 85s exclude names matching EXCLUDE from input paths 85s -o OUTPUT, --output=OUTPUT 85s write to OUTPUT in po, pot formats 85s -S, --timestamp skip conversion if the output file has newer timestamp 85s ========= SMOKE TEST: /usr/bin/ini2po =========== 85s 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] 85s 85s Convert .ini files to Gettext PO localization files. See: 85s http://docs.translatehouse.org/projects/translate- 85s toolkit/en/latest/commands/ini2po.html for examples and usage instructions. 85s 85s Options: 85s --version show program's version number and exit 85s -h, --help show this help message and exit 85s --manpage output a manpage based on the help 85s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 85s --errorlevel=ERRORLEVEL 85s show errorlevel as: none, message, exception, 85s traceback 85s -i INPUT, --input=INPUT 85s read from INPUT in ini, isl, iss formats 85s -x EXCLUDE, --exclude=EXCLUDE 85s exclude names matching EXCLUDE from input paths 85s -o OUTPUT, --output=OUTPUT 85s write to OUTPUT in po, pot formats 85s -t TEMPLATE, --template=TEMPLATE 85s read from TEMPLATE in ini, isl, iss formats 85s -S, --timestamp skip conversion if the output file has newer timestamp 85s -P, --pot output PO Templates (.pot) rather than PO files (.po) 85s --duplicates=DUPLICATESTYLE 85s what to do with duplicate strings (identical source 85s text): merge, msgctxt (default: 'msgctxt') 85s ========= SMOKE TEST: /usr/bin/json2po =========== 85s 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] 85s 85s Convert JSON files to Gettext PO localization files. See: 85s http://docs.translatehouse.org/projects/translate- 85s toolkit/en/latest/commands/json2po.html for examples and usage instructions. 85s 85s Options: 85s --version show program's version number and exit 85s -h, --help show this help message and exit 85s --manpage output a manpage based on the help 85s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 85s --errorlevel=ERRORLEVEL 85s show errorlevel as: none, message, exception, 85s traceback 85s -i INPUT, --input=INPUT 85s read from INPUT in json format 85s -x EXCLUDE, --exclude=EXCLUDE 85s exclude names matching EXCLUDE from input paths 85s -o OUTPUT, --output=OUTPUT 85s write to OUTPUT in po, pot formats 85s -t TEMPLATE, --template=TEMPLATE 85s read from TEMPLATE in json format 85s -S, --timestamp skip conversion if the output file has newer timestamp 85s -P, --pot output PO Templates (.pot) rather than PO files (.po) 85s --filter=FILTER leaves to extract e.g. 'name,desc': (default: extract 85s everything) 85s --duplicates=DUPLICATESTYLE 85s what to do with duplicate strings (identical source 85s text): merge, msgctxt (default: 'msgctxt') 85s ========= SMOKE TEST: /usr/bin/md2po =========== 85s Usage: md2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 85s 85s Convert Markdown files to Gettext PO localization files. See: 85s http://docs.translatehouse.org/projects/translate- 85s toolkit/en/latest/commands/md2po.html for examples and usage instructions. 85s 85s Options: 85s --version show program's version number and exit 85s -h, --help show this help message and exit 85s --manpage output a manpage based on the help 85s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 85s --errorlevel=ERRORLEVEL 85s show errorlevel as: none, message, exception, 85s traceback 85s -i INPUT, --input=INPUT 85s read from INPUT in markdown, md, text, txt formats 85s -x EXCLUDE, --exclude=EXCLUDE 85s exclude names matching EXCLUDE from input paths 85s -o OUTPUT, --output=OUTPUT 85s write to OUTPUT in po, pot formats 85s -S, --timestamp skip conversion if the output file has newer timestamp 85s -P, --pot output PO Templates (.pot) rather than PO files (.po) 85s --duplicates=DUPLICATESTYLE 85s what to do with duplicate strings (identical source 85s text): merge, msgctxt (default: 'msgctxt') 85s --multifile=MULTIFILESTYLE 85s how to split po/pot files (single, toplevel or 85s onefile) 86s ========= SMOKE TEST: /usr/bin/moz2po =========== 86s 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] 86s 86s Convert Mozilla .dtd and .properties files to Gettext PO localization files. 86s See: http://docs.translatehouse.org/projects/translate- 86s toolkit/en/latest/commands/moz2po.html for examples and usage instructions. 86s 86s Options: 86s --version show program's version number and exit 86s -h, --help show this help message and exit 86s --manpage output a manpage based on the help 86s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 86s --errorlevel=ERRORLEVEL 86s show errorlevel as: none, message, exception, 86s traceback 86s -i INPUT, --input=INPUT 86s read from INPUT in *, dtd, inc, ini, it, js, lang, 86s manifest, properties, rdf formats 86s -x EXCLUDE, --exclude=EXCLUDE 86s exclude names matching EXCLUDE from input paths 86s -o OUTPUT, --output=OUTPUT 86s write to OUTPUT in *, dtd.po, dtd.pot, inc.po, 86s inc.pot, ini.po, ini.pot, it.po, it.pot, js, lang.po, 86s lang.pot, manifest, properties.po, properties.pot, rdf 86s formats 86s -t TEMPLATE, --template=TEMPLATE 86s read from TEMPLATE in *, dtd, inc, ini, it, js, lang, 86s manifest, properties, rdf formats 86s -S, --timestamp skip conversion if the output file has newer timestamp 86s -P, --pot output PO Templates (.pot) rather than PO files (.po) 86s --duplicates=DUPLICATESTYLE 86s what to do with duplicate strings (identical source 86s text): merge, msgctxt (default: 'msgctxt') 86s ========= SMOKE TEST: /usr/bin/mozlang2po =========== 86s Usage: mozlang2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 86s 86s Convert Mozilla .lang files to Gettext PO localization files. 86s 86s Options: 86s --version show program's version number and exit 86s -h, --help show this help message and exit 86s --manpage output a manpage based on the help 86s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 86s --errorlevel=ERRORLEVEL 86s show errorlevel as: none, message, exception, 86s traceback 86s -i INPUT, --input=INPUT 86s read from INPUT in lang format 86s -x EXCLUDE, --exclude=EXCLUDE 86s exclude names matching EXCLUDE from input paths 86s -o OUTPUT, --output=OUTPUT 86s write to OUTPUT in po, pot formats 86s -S, --timestamp skip conversion if the output file has newer timestamp 86s -P, --pot output PO Templates (.pot) rather than PO files (.po) 86s --encoding=ENCODING The encoding of the input file (default: UTF-8) 86s --duplicates=DUPLICATESTYLE 86s what to do with duplicate strings (identical source 86s text): merge, msgctxt (default: 'msgctxt') 86s ========= SMOKE TEST: /usr/bin/msghack =========== 86s Usage: /usr/bin/msghack [OPTION] file.po [ref.po] 86s This program can be used to alter .po files in ways no sane mind would think about. 86s -o result will be written to FILE 86s --invert invert a po file by switching msgid and msgstr 86s --master join any number of files in a master-formatted catalog 86s --empty empty the contents of the .po file, creating a .pot 86s --append append entries from ref.po that don't exist in file.po 86s 86s Note: It is just a replacement of msghack for backward support. 86s 86s ========= SMOKE TEST: /usr/bin/odf2xliff =========== 86s Usage: odf2xliff [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 86s 86s Convert OpenDocument (ODF) files to XLIFF localization files. See: 86s http://docs.translatehouse.org/projects/translate- 86s toolkit/en/latest/commands/odf2xliff.html for examples and usage instructions. 86s 86s Options: 86s --version show program's version number and exit 86s -h, --help show this help message and exit 86s --manpage output a manpage based on the help 86s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 86s --errorlevel=ERRORLEVEL 86s show errorlevel as: none, message, exception, 86s traceback 86s -i INPUT, --input=INPUT 86s read from INPUT in odc, odf, odg, odi, odm, odp, ods, 86s odt, otc, otf, otg, oth, oti, otp, ots, ott, sxw 86s formats 86s -x EXCLUDE, --exclude=EXCLUDE 86s exclude names matching EXCLUDE from input paths 86s -o OUTPUT, --output=OUTPUT 86s write to OUTPUT in xlf, xliff formats 86s -S, --timestamp skip conversion if the output file has newer timestamp 86s ========= SMOKE TEST: /usr/bin/oo2po =========== 86s Usage: oo2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 86s 86s Convert an OpenOffice.org (SDF) localization file to Gettext PO localization 86s files. See: http://docs.translatehouse.org/projects/translate- 86s toolkit/en/latest/commands/oo2po.html for examples and usage instructions. 86s 86s Options: 86s --version show program's version number and exit 86s -h, --help show this help message and exit 86s --manpage output a manpage based on the help 86s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 86s --errorlevel=ERRORLEVEL 86s show errorlevel as: none, message, exception, 86s traceback 86s -i INPUT, --input=INPUT 86s read from INPUT in oo, sdf formats 86s -x EXCLUDE, --exclude=EXCLUDE 86s exclude names matching EXCLUDE from input paths 86s -o OUTPUT, --output=OUTPUT 86s write to OUTPUT in po, pot formats 86s -S, --timestamp skip conversion if the output file has newer timestamp 86s -P, --pot output PO Templates (.pot) rather than PO files (.po) 86s -l LANG, --language=LANG 86s set target language to extract from oo file (e.g. af- 86s ZA) 86s --source-language=LANG 86s set source language code (default en-US) 86s --nonrecursiveinput don't treat the input oo as a recursive store 86s --duplicates=DUPLICATESTYLE 86s what to do with duplicate strings (identical source 86s text): merge, msgctxt (default: 'msgctxt') 86s --multifile=MULTIFILESTYLE 86s how to split po/pot files (single, toplevel or 86s onefile) 86s ========= SMOKE TEST: /usr/bin/oo2xliff =========== 86s Usage: oo2xliff [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 86s 86s Convert an OpenOffice.org (SDF) localization file to XLIFF localization 86s files. See: http://docs.translatehouse.org/projects/translate- 86s toolkit/en/latest/commands/oo2po.html for examples and usage instructions. 86s 86s Options: 86s --version show program's version number and exit 86s -h, --help show this help message and exit 86s --manpage output a manpage based on the help 86s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 86s --errorlevel=ERRORLEVEL 86s show errorlevel as: none, message, exception, 86s traceback 86s -i INPUT, --input=INPUT 86s read from INPUT in oo, sdf formats 86s -x EXCLUDE, --exclude=EXCLUDE 86s exclude names matching EXCLUDE from input paths 86s -o OUTPUT, --output=OUTPUT 86s write to OUTPUT in xlf, xliff formats 86s -S, --timestamp skip conversion if the output file has newer timestamp 86s -l LANG, --language=LANG 86s set target language to extract from oo file (e.g. af- 86s ZA) 86s --source-language=LANG 86s set source language code (default en-US) 86s --nonrecursiveinput don't treat the input oo as a recursive store 86s --duplicates=DUPLICATESTYLE 86s what to do with duplicate strings (identical source 86s text): merge, msgctxt (default: 'msgctxt') 86s --multifile=MULTIFILESTYLE 86s how to split po/pot files (single, toplevel or 86s onefile) 86s ========= SMOKE TEST: /usr/bin/php2po =========== 87s 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] 87s 87s Convert PHP localization files to Gettext PO localization files. See: 87s http://docs.translatehouse.org/projects/translate- 87s toolkit/en/latest/commands/php2po.html for examples and usage instructions. 87s 87s Options: 87s --version show program's version number and exit 87s -h, --help show this help message and exit 87s --manpage output a manpage based on the help 87s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 87s --errorlevel=ERRORLEVEL 87s show errorlevel as: none, message, exception, 87s traceback 87s -i INPUT, --input=INPUT 87s read from INPUT in html, php formats 87s -x EXCLUDE, --exclude=EXCLUDE 87s exclude names matching EXCLUDE from input paths 87s -o OUTPUT, --output=OUTPUT 87s write to OUTPUT in po, pot formats 87s -t TEMPLATE, --template=TEMPLATE 87s read from TEMPLATE in html, php formats 87s -S, --timestamp skip conversion if the output file has newer timestamp 87s -P, --pot output PO Templates (.pot) rather than PO files (.po) 87s --duplicates=DUPLICATESTYLE 87s what to do with duplicate strings (identical source 87s text): merge, msgctxt (default: 'msgctxt') 87s ========= SMOKE TEST: /usr/bin/phppo2pypo =========== 87s Usage: phppo2pypo [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 87s 87s Convert PHP format .po files to Python format .po files. 87s 87s Options: 87s --version show program's version number and exit 87s -h, --help show this help message and exit 87s --manpage output a manpage based on the help 87s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 87s --errorlevel=ERRORLEVEL 87s show errorlevel as: none, message, exception, 87s traceback 87s -i INPUT, --input=INPUT 87s read from INPUT in po, pot formats 87s -x EXCLUDE, --exclude=EXCLUDE 87s exclude names matching EXCLUDE from input paths 87s -o OUTPUT, --output=OUTPUT 87s write to OUTPUT in po, pot formats 87s -S, --timestamp skip conversion if the output file has newer timestamp 87s ========= SMOKE TEST: /usr/bin/po2csv =========== 87s Usage: po2csv [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 87s 87s Convert Gettext PO localization files to Comma-Separated Value (.csv) files. 87s See: http://docs.translatehouse.org/projects/translate- 87s toolkit/en/latest/commands/csv2po.html for examples and usage instructions. 87s 87s Options: 87s --version show program's version number and exit 87s -h, --help show this help message and exit 87s --manpage output a manpage based on the help 87s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 87s --errorlevel=ERRORLEVEL 87s show errorlevel as: none, message, exception, 87s traceback 87s -i INPUT, --input=INPUT 87s read from INPUT in po, pot formats 87s -x EXCLUDE, --exclude=EXCLUDE 87s exclude names matching EXCLUDE from input paths 87s -o OUTPUT, --output=OUTPUT 87s write to OUTPUT in csv format 87s -S, --timestamp skip conversion if the output file has newer timestamp 87s --columnorder=COLUMNORDER 87s specify the order and position of columns 87s (location,source,target,context) 87s ========= SMOKE TEST: /usr/bin/po2dtd =========== 87s Usage: po2dtd [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 87s 87s Converts a Gettext PO file to a UTF-8 encoded Mozilla .dtd file. .. note: 87s Conversion is either done using a template plus PO file or just using the 87s .po file. 87s 87s Options: 87s --version show program's version number and exit 87s -h, --help show this help message and exit 87s --manpage output a manpage based on the help 87s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 87s --errorlevel=ERRORLEVEL 87s show errorlevel as: none, message, exception, 87s traceback 87s -i INPUT, --input=INPUT 87s read from INPUT in po, pot formats 87s -x EXCLUDE, --exclude=EXCLUDE 87s exclude names matching EXCLUDE from input paths 87s -o OUTPUT, --output=OUTPUT 87s write to OUTPUT in dtd format 87s -t TEMPLATE, --template=TEMPLATE 87s read from TEMPLATE in dtd format 87s -S, --timestamp skip conversion if the output file has newer timestamp 87s --threshold=PERCENT only convert files where the translation completion is 87s above PERCENT 87s --fuzzy use translations marked fuzzy 87s --nofuzzy don't use translations marked fuzzy (default) 87s --removeuntranslated remove untranslated strings from output 87s ========= SMOKE TEST: /usr/bin/po2flatxml =========== 87s Usage: po2flatxml [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 87s 87s Convert Gettext PO localization files to flat XML files. See: 87s http://docs.translatehouse.org/projects/translate- 87s toolkit/en/latest/commands/flatxml2po.html for examples and usage 87s instructions. 87s 87s Options: 87s --version show program's version number and exit 87s -h, --help show this help message and exit 87s --manpage output a manpage based on the help 87s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 87s --errorlevel=ERRORLEVEL 87s show errorlevel as: none, message, exception, 87s traceback 87s -i INPUT, --input=INPUT 87s read from INPUT in po, pot formats 87s -x EXCLUDE, --exclude=EXCLUDE 87s exclude names matching EXCLUDE from input paths 87s -o OUTPUT, --output=OUTPUT 87s write to OUTPUT in xml format 87s -t TEMPLATE, --template=TEMPLATE 87s read from TEMPLATE in xml format 87s -S, --timestamp skip conversion if the output file has newer timestamp 87s -r ROOT, --root=ROOT name of the XML root element (default: "root") 87s -v VALUE, --value=VALUE 87s name of the XML value element (default: "str") 87s -k KEY, --key=KEY name of the XML key attribute (default: "key") 87s -n NS, --namespace=NS 87s XML namespace uri (default: None) 87s -w INDENT, --indent=INDENT 87s indent width in spaces, 0 for no indent (default: 2) 87s ========= SMOKE TEST: /usr/bin/po2html =========== 87s Usage: po2html [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 87s 87s Translate HTML files using Gettext PO localization files. See: 87s http://docs.translatehouse.org/projects/translate- 87s toolkit/en/latest/commands/html2po.html for examples and usage instructions. 87s 87s Options: 87s --version show program's version number and exit 87s -h, --help show this help message and exit 87s --manpage output a manpage based on the help 87s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 87s --errorlevel=ERRORLEVEL 87s show errorlevel as: none, message, exception, 87s traceback 87s -i INPUT, --input=INPUT 87s read from INPUT in po, pot formats 87s -x EXCLUDE, --exclude=EXCLUDE 87s exclude names matching EXCLUDE from input paths 87s -o OUTPUT, --output=OUTPUT 87s write to OUTPUT in htm, html, xhtml formats 87s -t TEMPLATE, --template=TEMPLATE 87s read from TEMPLATE in htm, html, xhtml formats 87s -S, --timestamp skip conversion if the output file has newer timestamp 87s --threshold=PERCENT only convert files where the translation completion is 87s above PERCENT 87s --fuzzy use translations marked fuzzy 87s --nofuzzy don't use translations marked fuzzy (default) 87s ========= SMOKE TEST: /usr/bin/po2ical =========== 88s Usage: po2ical [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 88s 88s Convert Gettext PO localization files to iCalendar files. See: 88s http://docs.translatehouse.org/projects/translate- 88s toolkit/en/latest/commands/ical2po.html for examples and usage instructions. 88s 88s Options: 88s --version show program's version number and exit 88s -h, --help show this help message and exit 88s --manpage output a manpage based on the help 88s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 88s --errorlevel=ERRORLEVEL 88s show errorlevel as: none, message, exception, 88s traceback 88s -i INPUT, --input=INPUT 88s read from INPUT in po, pot formats 88s -x EXCLUDE, --exclude=EXCLUDE 88s exclude names matching EXCLUDE from input paths 88s -o OUTPUT, --output=OUTPUT 88s write to OUTPUT in ics format 88s -t TEMPLATE, --template=TEMPLATE 88s read from TEMPLATE in ics format 88s -S, --timestamp skip conversion if the output file has newer timestamp 88s --threshold=PERCENT only convert files where the translation completion is 88s above PERCENT 88s --fuzzy use translations marked fuzzy 88s --nofuzzy don't use translations marked fuzzy (default) 88s ========= SMOKE TEST: /usr/bin/po2idml =========== 88s Usage: po2idml [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 88s 88s Takes an IDML template file and a PO file containing translations of strings 88s in the IDML template. It creates a new IDML file using the translations of the 88s PO file. 88s 88s Options: 88s --version show program's version number and exit 88s -h, --help show this help message and exit 88s --manpage output a manpage based on the help 88s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 88s --errorlevel=ERRORLEVEL 88s show errorlevel as: none, message, exception, 88s traceback 88s -i INPUT, --input=INPUT 88s read from INPUT in po, pot formats 88s -x EXCLUDE, --exclude=EXCLUDE 88s exclude names matching EXCLUDE from input paths 88s -o OUTPUT, --output=OUTPUT 88s write to OUTPUT in idml format 88s -t TEMPLATE, --template=TEMPLATE 88s read from TEMPLATE in idml format 88s -S, --timestamp skip conversion if the output file has newer timestamp 88s ========= SMOKE TEST: /usr/bin/po2ini =========== 88s Usage: po2ini [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 88s 88s Convert Gettext PO localization files to .ini files. See: 88s http://docs.translatehouse.org/projects/translate- 88s toolkit/en/latest/commands/ini2po.html for examples and usage instructions. 88s 88s Options: 88s --version show program's version number and exit 88s -h, --help show this help message and exit 88s --manpage output a manpage based on the help 88s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 88s --errorlevel=ERRORLEVEL 88s show errorlevel as: none, message, exception, 88s traceback 88s -i INPUT, --input=INPUT 88s read from INPUT in po, pot formats 88s -x EXCLUDE, --exclude=EXCLUDE 88s exclude names matching EXCLUDE from input paths 88s -o OUTPUT, --output=OUTPUT 88s write to OUTPUT in ini, isl formats 88s -t TEMPLATE, --template=TEMPLATE 88s read from TEMPLATE in ini, isl formats 88s -S, --timestamp skip conversion if the output file has newer timestamp 88s --threshold=PERCENT only convert files where the translation completion is 88s above PERCENT 88s --fuzzy use translations marked fuzzy 88s --nofuzzy don't use translations marked fuzzy (default) 88s ========= SMOKE TEST: /usr/bin/po2json =========== 88s Usage: po2json [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 88s 88s Convert Gettext PO localization files to JSON files. See: 88s http://docs.translatehouse.org/projects/translate- 88s toolkit/en/latest/commands/json2po.html for examples and usage instructions. 88s 88s Options: 88s --version show program's version number and exit 88s -h, --help show this help message and exit 88s --manpage output a manpage based on the help 88s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 88s --errorlevel=ERRORLEVEL 88s show errorlevel as: none, message, exception, 88s traceback 88s -i INPUT, --input=INPUT 88s read from INPUT in po, pot formats 88s -x EXCLUDE, --exclude=EXCLUDE 88s exclude names matching EXCLUDE from input paths 88s -o OUTPUT, --output=OUTPUT 88s write to OUTPUT in json format 88s -t TEMPLATE, --template=TEMPLATE 88s read from TEMPLATE in json format 88s -S, --timestamp skip conversion if the output file has newer timestamp 88s --threshold=PERCENT only convert files where the translation completion is 88s above PERCENT 88s --fuzzy use translations marked fuzzy 88s --nofuzzy don't use translations marked fuzzy (default) 88s --removeuntranslated remove untranslated strings from output 88s ========= SMOKE TEST: /usr/bin/po2md =========== 88s Usage: po2md [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 88s 88s Translate Markdown files using Gettext PO localization files. See: 88s http://docs.translatehouse.org/projects/translate- 88s toolkit/en/latest/commands/md2po.html for examples and usage instructions. 88s 88s Options: 88s --version show program's version number and exit 88s -h, --help show this help message and exit 88s --manpage output a manpage based on the help 88s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 88s --errorlevel=ERRORLEVEL 88s show errorlevel as: none, message, exception, 88s traceback 88s -i INPUT, --input=INPUT 88s read from INPUT in po, pot formats 88s -x EXCLUDE, --exclude=EXCLUDE 88s exclude names matching EXCLUDE from input paths 88s -o OUTPUT, --output=OUTPUT 88s write to OUTPUT in markdown, md, text, txt formats 88s -t TEMPLATE, --template=TEMPLATE 88s read from TEMPLATE in markdown, md, text, txt formats 88s -S, --timestamp skip conversion if the output file has newer timestamp 88s -m MAXLENGTH, --maxlinelength=MAXLENGTH 88s reflow (word wrap) the output to the given maximum 88s line length. set to 0 to disable 88s --threshold=PERCENT only convert files where the translation completion is 88s above PERCENT 88s --fuzzy use translations marked fuzzy 88s --nofuzzy don't use translations marked fuzzy (default) 89s ========= SMOKE TEST: /usr/bin/po2moz =========== 89s Usage: po2moz [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 89s 89s Convert Gettext PO localization files to Mozilla .dtd and .properties files. 89s See: http://docs.translatehouse.org/projects/translate- 89s toolkit/en/latest/commands/moz2po.html for examples and usage instructions. 89s 89s Options: 89s --version show program's version number and exit 89s -h, --help show this help message and exit 89s --manpage output a manpage based on the help 89s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 89s --errorlevel=ERRORLEVEL 89s show errorlevel as: none, message, exception, 89s traceback 89s -i INPUT, --input=INPUT 89s read from INPUT in *, dtd.po, dtd.pot, inc.po, 89s inc.pot, ini.po, ini.pot, it.po, it.pot, js, lang.po, 89s lang.pot, manifest, properties.po, properties.pot, rdf 89s formats 89s -x EXCLUDE, --exclude=EXCLUDE 89s exclude names matching EXCLUDE from input paths 89s -o OUTPUT, --output=OUTPUT 89s write to OUTPUT in *, dtd, inc, ini, it, js, lang, 89s manifest, properties, rdf formats 89s -t TEMPLATE, --template=TEMPLATE 89s read from TEMPLATE in *, dtd, inc, ini, it, js, lang, 89s manifest, properties, rdf formats 89s -S, --timestamp skip conversion if the output file has newer timestamp 89s -l LOCALE, --locale=LOCALE 89s set output locale (required as this sets the directory 89s names) 89s --threshold=PERCENT only convert files where the translation completion is 89s above PERCENT 89s --fuzzy use translations marked fuzzy 89s --nofuzzy don't use translations marked fuzzy (default) 89s --removeuntranslated remove untranslated strings from output 89s ========= SMOKE TEST: /usr/bin/po2mozlang =========== 89s Usage: po2mozlang [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 89s 89s Convert Gettext PO localization files to Mozilla .lang files. 89s 89s Options: 89s --version show program's version number and exit 89s -h, --help show this help message and exit 89s --manpage output a manpage based on the help 89s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 89s --errorlevel=ERRORLEVEL 89s show errorlevel as: none, message, exception, 89s traceback 89s -i INPUT, --input=INPUT 89s read from INPUT in po, pot formats 89s -x EXCLUDE, --exclude=EXCLUDE 89s exclude names matching EXCLUDE from input paths 89s -o OUTPUT, --output=OUTPUT 89s write to OUTPUT in lang format 89s -t TEMPLATE, --template=TEMPLATE 89s read from TEMPLATE in lang format 89s -S, --timestamp skip conversion if the output file has newer timestamp 89s --mark-active mark the file as active 89s --threshold=PERCENT only convert files where the translation completion is 89s above PERCENT 89s --fuzzy use translations marked fuzzy 89s --nofuzzy don't use translations marked fuzzy (default) 89s ========= SMOKE TEST: /usr/bin/po2odf =========== 89s Usage: po2odf [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 89s 89s Convert Gettext PO localization files to OpenDocument (ODF) files. This 89s converter combines the functionality of po2xliff and xliff2odf to provide a 89s direct conversion from PO files to ODF files. See: 89s http://docs.translatehouse.org/projects/translate-toolkit/en/latest/commands/ 89s for examples and usage instructions. 89s 89s Options: 89s --version show program's version number and exit 89s -h, --help show this help message and exit 89s --manpage output a manpage based on the help 89s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 89s --errorlevel=ERRORLEVEL 89s show errorlevel as: none, message, exception, 89s traceback 89s -i INPUT, --input=INPUT 89s read from INPUT in po, pot formats 89s -x EXCLUDE, --exclude=EXCLUDE 89s exclude names matching EXCLUDE from input paths 89s -o OUTPUT, --output=OUTPUT 89s write to OUTPUT in odc, odf, odg, odi, odm, odp, ods, 89s odt, otc, otf, otg, oth, oti, otp, ots, ott formats 89s -t TEMPLATE, --template=TEMPLATE 89s read from TEMPLATE in odc, odf, odg, odi, odm, odp, 89s ods, odt, otc, otf, otg, oth, oti, otp, ots, ott 89s formats 89s -S, --timestamp skip conversion if the output file has newer timestamp 89s ========= SMOKE TEST: /usr/bin/po2oo =========== 89s Usage: po2oo [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 89s 89s Convert Gettext PO localization files to an OpenOffice.org (SDF) localization 89s file. See: http://docs.translatehouse.org/projects/translate- 89s toolkit/en/latest/commands/oo2po.html for examples and usage instructions. 89s 89s Options: 89s --version show program's version number and exit 89s -h, --help show this help message and exit 89s --manpage output a manpage based on the help 89s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 89s --errorlevel=ERRORLEVEL 89s show errorlevel as: none, message, exception, 89s traceback 89s -i INPUT, --input=INPUT 89s read from INPUT in po, pot, xlf, xliff formats 89s -x EXCLUDE, --exclude=EXCLUDE 89s exclude names matching EXCLUDE from input paths 89s -o OUTPUT, --output=OUTPUT 89s write to OUTPUT in oo, sdf formats 89s -t TEMPLATE, --template=TEMPLATE 89s read from TEMPLATE in oo, sdf formats 89s -S, --timestamp skip conversion if the output file has newer timestamp 89s -l LANG, --language=LANG 89s set target language code (e.g. af-ZA) [required] 89s --source-language=LANG 89s set source language code (default en-US) 89s -T, --keeptimestamp don't change the timestamps of the strings 89s --nonrecursiveoutput don't treat the output oo as a recursive store 89s --nonrecursivetemplate 89s don't treat the template oo as a recursive store 89s --skipsource don't output the source language, but fallback to it 89s where needed 89s --filteraction=ACTION 89s action on pofilter failure: none (default), warn, 89s exclude-serious, exclude-all 89s --threshold=PERCENT only convert files where the translation completion is 89s above PERCENT 89s --fuzzy use translations marked fuzzy 89s --nofuzzy don't use translations marked fuzzy (default) 89s --multifile=MULTIFILESTYLE 89s how to split po/pot files (single, toplevel or 89s onefile) 90s ========= SMOKE TEST: /usr/bin/po2php =========== 90s Usage: po2php [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 90s 90s Convert Gettext PO localization files to PHP localization files. See: 90s http://docs.translatehouse.org/projects/translate- 90s toolkit/en/latest/commands/php2po.html for examples and usage instructions. 90s 90s Options: 90s --version show program's version number and exit 90s -h, --help show this help message and exit 90s --manpage output a manpage based on the help 90s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 90s --errorlevel=ERRORLEVEL 90s show errorlevel as: none, message, exception, 90s traceback 90s -i INPUT, --input=INPUT 90s read from INPUT in po, pot formats 90s -x EXCLUDE, --exclude=EXCLUDE 90s exclude names matching EXCLUDE from input paths 90s -o OUTPUT, --output=OUTPUT 90s write to OUTPUT in html, php formats 90s -t TEMPLATE, --template=TEMPLATE 90s read from TEMPLATE in html, php formats 90s -S, --timestamp skip conversion if the output file has newer timestamp 90s --threshold=PERCENT only convert files where the translation completion is 90s above PERCENT 90s --fuzzy use translations marked fuzzy 90s --nofuzzy don't use translations marked fuzzy (default) 90s ========= SMOKE TEST: /usr/bin/po2prop =========== 90s Usage: po2prop [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 90s 90s Convert Gettext PO localization files to Java/Mozilla .properties files. 90s See: http://docs.translatehouse.org/projects/translate- 90s toolkit/en/latest/commands/prop2po.html for examples and usage instructions. 90s 90s Options: 90s --version show program's version number and exit 90s -h, --help show this help message and exit 90s --manpage output a manpage based on the help 90s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 90s --errorlevel=ERRORLEVEL 90s show errorlevel as: none, message, exception, 90s traceback 90s -i INPUT, --input=INPUT 90s read from INPUT in po, pot formats 90s -x EXCLUDE, --exclude=EXCLUDE 90s exclude names matching EXCLUDE from input paths 90s -o OUTPUT, --output=OUTPUT 90s write to OUTPUT in lang, properties, strings formats 90s -t TEMPLATE, --template=TEMPLATE 90s read from TEMPLATE in lang, properties, strings 90s formats 90s -S, --timestamp skip conversion if the output file has newer timestamp 90s --personality=TYPE override the input file format: java, java-utf8, java- 90s utf16, xwiki, flex, mozilla, gaia, gwt, skype, 90s strings, strings-utf8, joomla (for .properties files, 90s default: java) 90s --encoding=ENCODING override the encoding set by the personality 90s --threshold=PERCENT only convert files where the translation completion is 90s above PERCENT 90s --fuzzy use translations marked fuzzy 90s --nofuzzy don't use translations marked fuzzy (default) 90s --removeuntranslated remove untranslated strings from output 90s ========= SMOKE TEST: /usr/bin/po2rc =========== 90s Usage: po2rc [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 90s 90s Convert Gettext PO localization files back to Windows Resource (.rc) files. 90s See: http://docs.translatehouse.org/projects/translate- 90s toolkit/en/latest/commands/rc2po.html for examples and usage instructions. 90s 90s Options: 90s --version show program's version number and exit 90s -h, --help show this help message and exit 90s --manpage output a manpage based on the help 90s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 90s --errorlevel=ERRORLEVEL 90s show errorlevel as: none, message, exception, 90s traceback 90s -i INPUT, --input=INPUT 90s read from INPUT in po, pot formats 90s -x EXCLUDE, --exclude=EXCLUDE 90s exclude names matching EXCLUDE from input paths 90s -o OUTPUT, --output=OUTPUT 90s write to OUTPUT in rc format 90s -t TEMPLATE, --template=TEMPLATE 90s read from TEMPLATE in rc format 90s -S, --timestamp skip conversion if the output file has newer timestamp 90s --charset=CHARSET charset to use to decode the template RC files 90s (default: utf-8) 90s --charset-output=CHARSET 90s charset to use to encode the RC file (default: auto) 90s -l LANG, --lang=LANG LANG entry 90s --sublang=SUBLANG SUBLANG entry (default: SUBLANG_DEFAULT) 90s --threshold=PERCENT only convert files where the translation completion is 90s above PERCENT 90s --fuzzy use translations marked fuzzy 90s --nofuzzy don't use translations marked fuzzy (default) 90s ========= SMOKE TEST: /usr/bin/po2resx =========== 90s Usage: po2resx [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 90s 90s Convert Gettext PO localisation files to .Net Resource (.resx) files. See: 90s http://docs.translatehouse.org/projects/translate- 90s toolkit/en/latest/commands/resx2po.html for examples and usage instructions. 90s 90s Options: 90s --version show program's version number and exit 90s -h, --help show this help message and exit 90s --manpage output a manpage based on the help 90s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 90s --errorlevel=ERRORLEVEL 90s show errorlevel as: none, message, exception, 90s traceback 90s -i INPUT, --input=INPUT 90s read from INPUT in po, pot formats 90s -x EXCLUDE, --exclude=EXCLUDE 90s exclude names matching EXCLUDE from input paths 90s -o OUTPUT, --output=OUTPUT 90s write to OUTPUT in resx format 90s -t TEMPLATE, --template=TEMPLATE 90s read from TEMPLATE in resx format 90s -S, --timestamp skip conversion if the output file has newer timestamp 90s --fuzzy use translations marked fuzzy 90s --nofuzzy don't use translations marked fuzzy (default) 90s ========= SMOKE TEST: /usr/bin/po2sub =========== 91s Usage: po2sub [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 91s 91s Convert Gettext PO localization files to subtitle files. See: 91s http://docs.translatehouse.org/projects/translate- 91s toolkit/en/latest/commands/sub2po.html for examples and usage instructions. 91s 91s Options: 91s --version show program's version number and exit 91s -h, --help show this help message and exit 91s --manpage output a manpage based on the help 91s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 91s --errorlevel=ERRORLEVEL 91s show errorlevel as: none, message, exception, 91s traceback 91s -i INPUT, --input=INPUT 91s read from INPUT in po, pot formats 91s -x EXCLUDE, --exclude=EXCLUDE 91s exclude names matching EXCLUDE from input paths 91s -o OUTPUT, --output=OUTPUT 91s write to OUTPUT in ass, srt, ssa, sub formats 91s -t TEMPLATE, --template=TEMPLATE 91s read from TEMPLATE in ass, srt, ssa, sub formats 91s -S, --timestamp skip conversion if the output file has newer timestamp 91s --threshold=PERCENT only convert files where the translation completion is 91s above PERCENT 91s --fuzzy use translations marked fuzzy 91s --nofuzzy don't use translations marked fuzzy (default) 91s ========= SMOKE TEST: /usr/bin/po2symb =========== 91s Usage: po2symb [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 91s 91s Convert Gettext PO localization files to Symbian translation files. See: 91s http://docs.translatehouse.org/projects/translate- 91s toolkit/en/latest/commands/symb2po.html for examples and usage instructions. 91s 91s Options: 91s --version show program's version number and exit 91s -h, --help show this help message and exit 91s --manpage output a manpage based on the help 91s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 91s --errorlevel=ERRORLEVEL 91s show errorlevel as: none, message, exception, 91s traceback 91s -i INPUT, --input=INPUT 91s read from INPUT in po, pot formats 91s -x EXCLUDE, --exclude=EXCLUDE 91s exclude names matching EXCLUDE from input paths 91s -o OUTPUT, --output=OUTPUT 91s write to OUTPUT in r0 format 91s -t TEMPLATE, --template=TEMPLATE 91s read from TEMPLATE in 91s -S, --timestamp skip conversion if the output file has newer timestamp 91s --duplicates=DUPLICATESTYLE 91s what to do with duplicate strings (identical source 91s text): merge, msgctxt (default: 'msgctxt') 91s ========= SMOKE TEST: /usr/bin/po2tiki =========== 91s Usage: po2tiki [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 91s 91s Convert Gettext PO files to TikiWiki's language.php files. See: 91s http://docs.translatehouse.org/projects/translate- 91s toolkit/en/latest/commands/tiki2po.html for examples and usage instructions. 91s 91s Options: 91s --version show program's version number and exit 91s -h, --help show this help message and exit 91s --manpage output a manpage based on the help 91s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 91s --errorlevel=ERRORLEVEL 91s show errorlevel as: none, message, exception, 91s traceback 91s -i INPUT, --input=INPUT 91s read from INPUT in po, pot formats 91s -x EXCLUDE, --exclude=EXCLUDE 91s exclude names matching EXCLUDE from input paths 91s -o OUTPUT, --output=OUTPUT 91s write to OUTPUT in tiki format 91s -S, --timestamp skip conversion if the output file has newer timestamp 91s ========= SMOKE TEST: /usr/bin/po2tmx =========== 91s Usage: po2tmx [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 91s 91s Convert Gettext PO localization files to a TMX (Translation Memory eXchange) 91s file. See: http://docs.translatehouse.org/projects/translate- 91s toolkit/en/latest/commands/po2tmx.html for examples and usage instructions. 91s 91s Options: 91s --version show program's version number and exit 91s -h, --help show this help message and exit 91s --manpage output a manpage based on the help 91s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 91s --errorlevel=ERRORLEVEL 91s show errorlevel as: none, message, exception, 91s traceback 91s -i INPUT, --input=INPUT 91s read from INPUT in po, pot formats 91s -x EXCLUDE, --exclude=EXCLUDE 91s exclude names matching EXCLUDE from input paths 91s -o OUTPUT, --output=OUTPUT 91s write to OUTPUT in tmx format 91s -S, --timestamp skip conversion if the output file has newer timestamp 91s -l LANG, --language=LANG 91s set target language code (e.g. af-ZA) [required] 91s --source-language=LANG 91s set source language code (default: en) 91s --comments=COMMENT set default comment import: none, source, type or 91s others (default: none) 91s ========= SMOKE TEST: /usr/bin/po2toml =========== 91s Usage: po2toml [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 91s 91s Convert Gettext PO localization files to TOML files. See: 91s http://docs.translatehouse.org/projects/translate- 91s toolkit/en/latest/commands/toml2po.html for examples and usage instructions. 91s 91s Options: 91s --version show program's version number and exit 91s -h, --help show this help message and exit 91s --manpage output a manpage based on the help 91s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 91s --errorlevel=ERRORLEVEL 91s show errorlevel as: none, message, exception, 91s traceback 91s -i INPUT, --input=INPUT 91s read from INPUT in po, pot formats 91s -x EXCLUDE, --exclude=EXCLUDE 91s exclude names matching EXCLUDE from input paths 91s -o OUTPUT, --output=OUTPUT 91s write to OUTPUT in toml format 91s -t TEMPLATE, --template=TEMPLATE 91s read from TEMPLATE in toml format 91s -S, --timestamp skip conversion if the output file has newer timestamp 91s --threshold=PERCENT only convert files where the translation completion is 91s above PERCENT 91s --fuzzy use translations marked fuzzy 91s --nofuzzy don't use translations marked fuzzy (default) 91s ========= SMOKE TEST: /usr/bin/po2ts =========== 91s Usage: po2ts [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 91s 91s Convert Gettext PO localization files to Qt Linguist (.ts) files. See: 91s http://docs.translatehouse.org/projects/translate- 91s toolkit/en/latest/commands/ts2po.html for examples and usage instructions. 91s 91s Options: 91s --version show program's version number and exit 91s -h, --help show this help message and exit 91s --manpage output a manpage based on the help 91s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 91s --errorlevel=ERRORLEVEL 91s show errorlevel as: none, message, exception, 91s traceback 91s -i INPUT, --input=INPUT 91s read from INPUT in po, pot formats 91s -x EXCLUDE, --exclude=EXCLUDE 91s exclude names matching EXCLUDE from input paths 91s -o OUTPUT, --output=OUTPUT 91s write to OUTPUT in ts format 91s -t TEMPLATE, --template=TEMPLATE 91s read from TEMPLATE in ts format 91s -S, --timestamp skip conversion if the output file has newer timestamp 91s -c CONTEXT, --context=CONTEXT 91s use supplied context instead of the one in the .po 91s file comment 92s ========= SMOKE TEST: /usr/bin/po2txt =========== 92s Usage: po2txt [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 92s 92s Convert Gettext PO localization files to plain text (.txt) files. See: 92s http://docs.translatehouse.org/projects/translate- 92s toolkit/en/latest/commands/txt2po.html for examples and usage instructions. 92s 92s Options: 92s --version show program's version number and exit 92s -h, --help show this help message and exit 92s --manpage output a manpage based on the help 92s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 92s --errorlevel=ERRORLEVEL 92s show errorlevel as: none, message, exception, 92s traceback 92s -i INPUT, --input=INPUT 92s read from INPUT in po, pot, xlf, xliff formats 92s -x EXCLUDE, --exclude=EXCLUDE 92s exclude names matching EXCLUDE from input paths 92s -o OUTPUT, --output=OUTPUT 92s write to OUTPUT in txt format 92s -t TEMPLATE, --template=TEMPLATE 92s read from TEMPLATE in txt format 92s -S, --timestamp skip conversion if the output file has newer timestamp 92s --encoding=ENCODING The encoding of the template file (default: UTF-8) 92s -w WRAP, --wrap=WRAP set number of columns to wrap text at 92s --flavour=FLAVOUR The flavour of text file: plain (default), dokuwiki, 92s mediawiki 92s --no-segmentation Don't segment the file, treat it like a single message 92s --threshold=PERCENT only convert files where the translation completion is 92s above PERCENT 92s --fuzzy use translations marked fuzzy 92s --nofuzzy don't use translations marked fuzzy (default) 92s ========= SMOKE TEST: /usr/bin/po2web2py =========== 92s Usage: po2web2py [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 92s 92s Convert GNU/gettext PO files to web2py translation dictionaries (.py). See: 92s http://docs.translatehouse.org/projects/translate- 92s toolkit/en/latest/commands/web2py2po.html for examples and usage instructions. 92s 92s Options: 92s --version show program's version number and exit 92s -h, --help show this help message and exit 92s --manpage output a manpage based on the help 92s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 92s --errorlevel=ERRORLEVEL 92s show errorlevel as: none, message, exception, 92s traceback 92s -i INPUT, --input=INPUT 92s read from INPUT in po, pot formats 92s -x EXCLUDE, --exclude=EXCLUDE 92s exclude names matching EXCLUDE from input paths 92s -o OUTPUT, --output=OUTPUT 92s write to OUTPUT in py format 92s -S, --timestamp skip conversion if the output file has newer timestamp 92s --threshold=PERCENT only convert files where the translation completion is 92s above PERCENT 92s --fuzzy use translations marked fuzzy 92s --nofuzzy don't use translations marked fuzzy (default) 92s ========= SMOKE TEST: /usr/bin/po2wordfast =========== 92s Usage: po2wordfast [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 92s 92s Convert Gettext PO localization files to a Wordfast translation memory file. 92s See: http://docs.translatehouse.org/projects/translate- 92s toolkit/en/latest/commands/po2wordfast.html for examples and usage 92s instructions. 92s 92s Options: 92s --version show program's version number and exit 92s -h, --help show this help message and exit 92s --manpage output a manpage based on the help 92s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 92s --errorlevel=ERRORLEVEL 92s show errorlevel as: none, message, exception, 92s traceback 92s -i INPUT, --input=INPUT 92s read from INPUT in po, pot formats 92s -x EXCLUDE, --exclude=EXCLUDE 92s exclude names matching EXCLUDE from input paths 92s -o OUTPUT, --output=OUTPUT 92s write to OUTPUT in txt format 92s -S, --timestamp skip conversion if the output file has newer timestamp 92s -l LANG, --language=LANG 92s set target language code (e.g. af-ZA) [required] 92s --source-language=LANG 92s set source language code (default: en) 92s ========= SMOKE TEST: /usr/bin/po2xliff =========== 92s Usage: po2xliff [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 92s 92s Convert Gettext PO localization files to XLIFF localization files. See: 92s http://docs.translatehouse.org/projects/translate- 92s toolkit/en/latest/commands/xliff2po.html for examples and usage instructions. 92s 92s Options: 92s --version show program's version number and exit 92s -h, --help show this help message and exit 92s --manpage output a manpage based on the help 92s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 92s --errorlevel=ERRORLEVEL 92s show errorlevel as: none, message, exception, 92s traceback 92s -i INPUT, --input=INPUT 92s read from INPUT in po, pot formats 92s -x EXCLUDE, --exclude=EXCLUDE 92s exclude names matching EXCLUDE from input paths 92s -o OUTPUT, --output=OUTPUT 92s write to OUTPUT in xlf, xliff formats 92s -t TEMPLATE, --template=TEMPLATE 92s read from TEMPLATE in xlf, xliff formats 92s -S, --timestamp skip conversion if the output file has newer timestamp 92s ========= SMOKE TEST: /usr/bin/po2yaml =========== 92s Usage: po2yaml [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 92s 92s Convert Gettext PO localization files to YAML files. See: 92s http://docs.translatehouse.org/projects/translate- 92s toolkit/en/latest/commands/yaml2po.html for examples and usage instructions. 92s 92s Options: 92s --version show program's version number and exit 92s -h, --help show this help message and exit 92s --manpage output a manpage based on the help 92s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 92s --errorlevel=ERRORLEVEL 92s show errorlevel as: none, message, exception, 92s traceback 92s -i INPUT, --input=INPUT 92s read from INPUT in po, pot formats 92s -x EXCLUDE, --exclude=EXCLUDE 92s exclude names matching EXCLUDE from input paths 92s -o OUTPUT, --output=OUTPUT 92s write to OUTPUT in yaml, yml formats 92s -t TEMPLATE, --template=TEMPLATE 92s read from TEMPLATE in yaml, yml formats 92s -S, --timestamp skip conversion if the output file has newer timestamp 92s --threshold=PERCENT only convert files where the translation completion is 92s above PERCENT 92s --fuzzy use translations marked fuzzy 92s --nofuzzy don't use translations marked fuzzy (default) 93s ========= SMOKE TEST: /usr/bin/poclean =========== 93s Usage: poclean [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 93s 93s Produces a clean file from an unclean file (Trados/Wordfast) by stripping out 93s the tw4win indicators. This does not convert an RTF file to PO/XLIFF, but 93s produces the target file with only the target text in from a text version of 93s the RTF. 93s 93s Options: 93s --version show program's version number and exit 93s -h, --help show this help message and exit 93s --manpage output a manpage based on the help 93s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 93s --errorlevel=ERRORLEVEL 93s show errorlevel as: none, message, exception, 93s traceback 93s -i INPUT, --input=INPUT 93s read from INPUT in po, pot, xlf, xliff formats 93s -x EXCLUDE, --exclude=EXCLUDE 93s exclude names matching EXCLUDE from input paths 93s -o OUTPUT, --output=OUTPUT 93s write to OUTPUT in po, pot, xlf, xliff formats 93s -S, --timestamp skip conversion if the output file has newer timestamp 93s ========= SMOKE TEST: /usr/bin/pocompendium =========== 93s Usage: pocompendium [options] output.po <-d directory(s)|file(s)> 93s The first parameter is the output file, standard output if the output file is '-'. 93s Any number of directories may be specified for input files. 93s Options: 93s --invert|v Creates an inverse compendium with msgid and msgstr swapped 93s --errors|e Only output msg bundles that have errors 93s --correct|c Only output msg bundles that are correctly translated 93s --ignore-case|i Drops all strings to lowercase 93s --strip-accel-tilde|-st Strip all tilde (~) accelerator characters 93s --strip-accel-amp|-sa Strip all ampersand (&) accelerator characters 93s --strip-accel-under|-su Strip all underscore (_) accelerator characters 93s ========= SMOKE TEST: /usr/bin/pocompile =========== 93s Usage: pocompile [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 93s 93s Compile XLIFF and Gettext PO localization files into Gettext MO (Machine 93s Object) files. See: http://docs.translatehouse.org/projects/translate- 93s toolkit/en/latest/commands/pocompile.html for examples and usage instructions. 93s 93s Options: 93s --version show program's version number and exit 93s -h, --help show this help message and exit 93s --manpage output a manpage based on the help 93s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 93s --errorlevel=ERRORLEVEL 93s show errorlevel as: none, message, exception, 93s traceback 93s -i INPUT, --input=INPUT 93s read from INPUT in po, pot, xlf, xliff formats 93s -x EXCLUDE, --exclude=EXCLUDE 93s exclude names matching EXCLUDE from input paths 93s -o OUTPUT, --output=OUTPUT 93s write to OUTPUT in mo format 93s -S, --timestamp skip conversion if the output file has newer timestamp 93s --fuzzy use translations marked fuzzy 93s --nofuzzy don't use translations marked fuzzy (default) 93s ========= SMOKE TEST: /usr/bin/poconflicts =========== 93s 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] 93s poconflicts [options] 93s poconflicts [options] ... 93s 93s Input is searched for PO files, output directory will contain PO files named after conflicting strings. 93s Both -i/--input and -o/--output are optional when using positional arguments. 93s 93s Conflict finder for Gettext PO localization files. See: 93s http://docs.translatehouse.org/projects/translate- 93s toolkit/en/latest/commands/poconflicts.html for examples and usage 93s instructions. 93s 93s Options: 93s --version show program's version number and exit 93s -h, --help show this help message and exit 93s --manpage output a manpage based on the help 93s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 93s --errorlevel=ERRORLEVEL 93s show errorlevel as: none, message, exception, 93s traceback 93s -x EXCLUDE, --exclude=EXCLUDE 93s exclude names matching EXCLUDE from input paths 93s -i INPUT, --input=INPUT 93s read from INPUT (directory or file(s)) in po format 93s -o OUTPUT, --output=OUTPUT 93s write to OUTPUT (directory) in po format 93s -I, --ignore-case ignore case distinctions 93s -v, --invert invert the conflicts thus extracting conflicting 93s destination words 93s --accelerator=ACCELERATORS 93s ignores the given accelerator characters when matching 93s ========= SMOKE TEST: /usr/bin/pocount =========== 93s usage: pocount [-h] [--incomplete] [--full | --csv | --short | 93s --short-strings | --short-words] [--no-color] 93s files [files ...] 93s 93s positional arguments: 93s files 93s 93s options: 93s -h, --help show this help message and exit 93s --incomplete skip 100% translated files. 93s 93s Output format: 93s --full (default) statistics in full, verbose format 93s --csv statistics in CSV format 93s --short same as --short-strings 93s --short-strings statistics of strings in short format - one line per file 93s --short-words statistics of words in short format - one line per file 93s --no-color show output without color 93s ========= SMOKE TEST: /usr/bin/podebug =========== 93s Usage: podebug [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 93s 93s Insert debug messages into XLIFF and Gettext PO localization files. See: 93s http://docs.translatehouse.org/projects/translate- 93s toolkit/en/latest/commands/podebug.html for examples and usage instructions. 93s 93s Options: 93s --version show program's version number and exit 93s -h, --help show this help message and exit 93s --manpage output a manpage based on the help 93s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 93s --errorlevel=ERRORLEVEL 93s show errorlevel as: none, message, exception, 93s traceback 93s -i INPUT, --input=INPUT 93s read from INPUT in po, pot, pot, tmx, xlf, xliff 93s formats 93s -x EXCLUDE, --exclude=EXCLUDE 93s exclude names matching EXCLUDE from input paths 93s -o OUTPUT, --output=OUTPUT 93s write to OUTPUT in po, pot, tmx, xlf, xliff formats 93s -S, --timestamp skip conversion if the output file has newer timestamp 93s -f FORMAT, --format=FORMAT 93s specify format string 93s --rewrite=STYLE the translation rewrite style: blank, bracket, chef, 93s classified, en, flipped, unicode, xxx 93s --ignore=APPLICATION apply tagging ignore rules for the given application: 93s gtk, kde, libreoffice, mozilla, openoffice 93s --preserveplaceholders 93s attempt to exclude characters that are part of 93s placeholders when performing character-level rewrites 93s so that consuming applications can still use the 93s placeholders to generate final output 93s ========= SMOKE TEST: /usr/bin/pofilter =========== 93s Usage: pofilter [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT 93s 93s Perform quality checks on Gettext PO, XLIFF and TMX localization files. 93s Snippet files are created whenever a test fails. These can be examined, 93s corrected and merged back into the originals using pomerge. See: 93s http://docs.translatehouse.org/projects/translate- 93s toolkit/en/latest/commands/pofilter.html for examples and usage instructions 93s and http://docs.translatehouse.org/projects/translate- 93s toolkit/en/latest/commands/pofilter_tests.html for full descriptions of all 93s tests. 93s 93s Options: 93s --version show program's version number and exit 93s -h, --help show this help message and exit 93s --manpage output a manpage based on the help 93s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 93s --errorlevel=ERRORLEVEL 93s show errorlevel as: none, message, exception, 93s traceback 93s -i INPUT, --input=INPUT 93s read from INPUT in po, pot, tmx, xlf, xliff formats 93s -x EXCLUDE, --exclude=EXCLUDE 93s exclude names matching EXCLUDE from input paths 93s -o OUTPUT, --output=OUTPUT 93s write to OUTPUT in po, pot, tmx, xlf, xliff formats 93s -l, --listfilters list filters available 93s --review include units marked for review (default) 93s --noreview exclude units marked for review 93s --fuzzy include units marked fuzzy (default) 93s --nofuzzy exclude units marked fuzzy 93s --nonotes don't add notes about the errors 93s --autocorrect output automatic corrections where possible rather 93s than describing issues 93s --language=LANG set target language code (e.g. af-ZA) [required for 93s spell check and recommended in general] 93s --openoffice use the standard checks for OpenOffice translations 93s --libreoffice use the standard checks for LibreOffice translations 93s --mozilla use the standard checks for Mozilla translations 93s --drupal use the standard checks for Drupal translations 93s --gnome use the standard checks for Gnome translations 93s --kde use the standard checks for KDE translations 93s --wx use the standard checks for wxWidgets translations 93s --excludefilter=FILTER 93s don't use FILTER when filtering 93s -t FILTER, --test=FILTER 93s only use test FILTERs specified with this option when 93s filtering 93s --notranslatefile=FILE 93s read list of untranslatable words from FILE (must not 93s be translated) 93s --musttranslatefile=FILE 93s read list of translatable words from FILE (must be 93s translated) 93s --validcharsfile=FILE 93s read list of all valid characters from FILE (must be 93s in UTF-8) 94s ========= SMOKE TEST: /usr/bin/pogrep =========== 94s 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] 94s 94s Grep XLIFF, Gettext PO and TMX localization files. Matches are output to 94s snippet files of the same type which can then be reviewed and later merged 94s using :doc:`pomerge `. See: 94s http://docs.translatehouse.org/projects/translate- 94s toolkit/en/latest/commands/pogrep.html for examples and usage instructions. 94s 94s Options: 94s --version show program's version number and exit 94s -h, --help show this help message and exit 94s --manpage output a manpage based on the help 94s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 94s --errorlevel=ERRORLEVEL 94s show errorlevel as: none, message, exception, 94s traceback 94s -i INPUT, --input=INPUT 94s read from INPUT in gmo, mo, po, pot, tmx, xlf, xlff, 94s xliff formats 94s -x EXCLUDE, --exclude=EXCLUDE 94s exclude names matching EXCLUDE from input paths 94s -o OUTPUT, --output=OUTPUT 94s write to OUTPUT in gmo, mo, po, pot, tmx, xlf, xlff, 94s xliff formats 94s --search=SEARCHPARTS searches the given parts (source, target, notes and 94s locations) 94s -I, --ignore-case ignore case distinctions 94s -e, --regexp use regular expression matching 94s -v, --invert-match select non-matching lines 94s --accelerator=ACCELERATOR 94s ignores the given accelerator when matching 94s -k, --keep-translations 94s always extract units with translations 94s ========= SMOKE TEST: /usr/bin/pomerge =========== 94s Usage: pomerge [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 94s 94s Merges XLIFF and Gettext PO localization files. Snippet file produced by 94s e.g. :doc:`pogrep ` and updated by a translator can be 94s merged back into the original files. See: 94s http://docs.translatehouse.org/projects/translate- 94s toolkit/en/latest/commands/pomerge.html for examples and usage instructions. 94s 94s Options: 94s --version show program's version number and exit 94s -h, --help show this help message and exit 94s --manpage output a manpage based on the help 94s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 94s --errorlevel=ERRORLEVEL 94s show errorlevel as: none, message, exception, 94s traceback 94s -i INPUT, --input=INPUT 94s read from INPUT in po, pot, pot, xlf, xliff formats 94s -x EXCLUDE, --exclude=EXCLUDE 94s exclude names matching EXCLUDE from input paths 94s -o OUTPUT, --output=OUTPUT 94s write to OUTPUT in po, pot, pot, xlf, xliff formats 94s -t TEMPLATE, --template=TEMPLATE 94s read from TEMPLATE in po, pot, pot, xlf, xliff formats 94s -S, --timestamp skip conversion if the output file has newer timestamp 94s --mergeblanks=MERGEBLANKS 94s whether to overwrite existing translations with blank 94s translations (yes/no). Default is yes. 94s --mergefuzzy=MERGEFUZZY 94s whether to consider fuzzy translations from input 94s (yes/no). Default is yes. 94s --mergecomments=MERGECOMMENTS 94s whether to merge comments as well as translations 94s (yes/no). Default is yes. 94s ========= SMOKE TEST: /usr/bin/pomigrate2 =========== 94s Usage pomigrate2 [options] 94s 94s Options: 94s -F|--use-fuzzy-matching - use fuzzy algorithms when merging to attempt to match strings 94s -C|--use-compendium - create and use a compendium built from the migrating files 94s -C|--use-compendium=some-compendium.po 94s - use an external compendium during the migration 94s --no-wrap - do not wrap long lines 94s --locale=lang - set locale for newly born files 94s -q|--quiet - suppress most output 94s -p|--pot2po - use pot2po instead of msgmerge to migrate 94s ========= SMOKE TEST: /usr/bin/popuretext =========== 94s Usage: popuretext ( -P pot-dir | po-dir ) file.txt [accelerator] 94s ========= SMOKE TEST: /usr/bin/poreencode =========== 94s Usage: poreencode 94s eg: poreencode UTF-8 af/ 94s ========= SMOKE TEST: /usr/bin/porestructure =========== 94s Usage: porestructure [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT 94s input directory is searched for PO files with (poconflicts) comments, all entries are written to files in a directory structure for pomerge 94s 94s Restructure Gettxt PO files produced by :doc:`poconflicts 94s ` into the original directory tree for merging using 94s :doc:`pomerge `. See: 94s http://docs.translatehouse.org/projects/translate- 94s toolkit/en/latest/commands/pomerge.html for examples and usage instructions. 94s 94s Options: 94s --version show program's version number and exit 94s -h, --help show this help message and exit 94s --manpage output a manpage based on the help 94s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 94s --errorlevel=ERRORLEVEL 94s show errorlevel as: none, message, exception, 94s traceback 94s -i INPUT, --input=INPUT 94s read from INPUT in po format 94s -x EXCLUDE, --exclude=EXCLUDE 94s exclude names matching EXCLUDE from input paths 94s -o OUTPUT, --output=OUTPUT 94s write to OUTPUT in po format 94s ========= SMOKE TEST: /usr/bin/posegment =========== 94s Usage: posegment [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 94s 94s Segment Gettext PO, XLIFF and TMX localization files at the sentence level. 94s See: http://docs.translatehouse.org/projects/translate- 94s toolkit/en/latest/commands/posegment.html for examples and usage instructions. 94s 94s Options: 94s --version show program's version number and exit 94s -h, --help show this help message and exit 94s --manpage output a manpage based on the help 94s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 94s --errorlevel=ERRORLEVEL 94s show errorlevel as: none, message, exception, 94s traceback 94s -i INPUT, --input=INPUT 94s read from INPUT in po, pot, tmx, xlf, xliff formats 94s -x EXCLUDE, --exclude=EXCLUDE 94s exclude names matching EXCLUDE from input paths 94s -o OUTPUT, --output=OUTPUT 94s write to OUTPUT in po, pot, tmx, xlf, xliff formats 94s -S, --timestamp skip conversion if the output file has newer timestamp 94s -P, --pot output PO Templates (.pot) rather than PO files (.po) 94s -l LANG, --language=LANG 94s the target language code 94s --source-language=LANG 94s the source language code (default 'en') 94s --keepspaces Disable automatic stripping of whitespace 94s --only-aligned Removes units where sentence number does not 94s correspond 94s ========= SMOKE TEST: /usr/bin/poswap =========== 94s Usage: poswap [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 94s 94s Builds a new translation file with the target of the input language as source 94s language. .. note:: Ensure that the two po files correspond 100% to the same 94s pot file before using this. To translate Kurdish (ku) through French:: 94s poswap -i fr/ -t ku -o fr-ku To convert the fr-ku files back to en-ku:: 94s poswap --reverse -i fr/ -t fr-ku -o en-ku To translate Quechua (qu) through 94s Spanish (es) using intermediate mode:: poswap --intermediate -t en/ es/ 94s es-qu/ Intermediate mode keeps the original source language (English) and 94s adds the intermediate language translation (Spanish) as a translator comment, 94s making it easier to translate through an intermediate language while keeping 94s both languages visible. See: 94s http://docs.translatehouse.org/projects/translate- 94s toolkit/en/latest/commands/poswap.html for examples and usage instructions. 94s 94s Options: 94s --version show program's version number and exit 94s -h, --help show this help message and exit 94s --manpage output a manpage based on the help 94s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 94s --errorlevel=ERRORLEVEL 94s show errorlevel as: none, message, exception, 94s traceback 94s -i INPUT, --input=INPUT 94s read from INPUT in po, pot formats 94s -x EXCLUDE, --exclude=EXCLUDE 94s exclude names matching EXCLUDE from input paths 94s -o OUTPUT, --output=OUTPUT 94s write to OUTPUT in po, pot formats 94s -t TEMPLATE, --template=TEMPLATE 94s read from TEMPLATE in po, pot, pot formats 94s -S, --timestamp skip conversion if the output file has newer timestamp 94s --reverse reverse the process of intermediate language 94s conversion 94s --intermediate use intermediate language mode: keep original source 94s and add target as translator comment 94s ========= SMOKE TEST: /usr/bin/pot2po =========== 94s 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] 94s 94s Convert template files (like .pot or template .xlf files) to translation 94s files, preserving existing translations. See: 94s http://docs.translatehouse.org/projects/translate- 94s toolkit/en/latest/commands/pot2po.html for examples and usage instructions. 94s 94s Options: 94s --version show program's version number and exit 94s -h, --help show this help message and exit 94s --manpage output a manpage based on the help 94s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 94s --errorlevel=ERRORLEVEL 94s show errorlevel as: none, message, exception, 94s traceback 94s -i INPUT, --input=INPUT 94s read from INPUT in catkeys, lang, pot, ts, xlf, xliff 94s formats 94s -x EXCLUDE, --exclude=EXCLUDE 94s exclude names matching EXCLUDE from input paths 94s -o OUTPUT, --output=OUTPUT 94s write to OUTPUT in catkeys, lang, po, pot, ts, xlf, 94s xliff formats 94s -t TEMPLATE, --template=TEMPLATE 94s read from TEMPLATE in catkeys, lang, po, pot, ts, xlf, 94s xliff formats 94s -S, --timestamp skip conversion if the output file has newer timestamp 94s -P, --pot output PO Templates (.pot) rather than PO files (.po) 94s --tm=TM The file to use as translation memory when fuzzy 94s matching 94s -s MIN_SIMILARITY, --similarity=MIN_SIMILARITY 94s The minimum similarity for inclusion (default: 75%) 94s --nofuzzymatching Disable fuzzy matching 94s ========= SMOKE TEST: /usr/bin/poterminology =========== 94s 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] 94s input directory is searched for PO files, terminology PO file is output file 94s 94s Create a terminology file by reading a set of .po or .pot files to produce a 94s pootle-terminology.pot. See: 94s http://docs.translatehouse.org/projects/translate- 94s toolkit/en/latest/commands/poterminology.html for examples and usage 94s instructions. 94s 94s Options: 94s --version show program's version number and exit 94s -h, --help show this help message and exit 94s --manpage output a manpage based on the help 94s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 94s --errorlevel=ERRORLEVEL 94s show errorlevel as: none, message, exception, 94s traceback 94s -i INPUT, --input=INPUT 94s read from INPUT in po, pot formats 94s -x EXCLUDE, --exclude=EXCLUDE 94s exclude names matching EXCLUDE from input paths 94s -o OUTPUT, --output=OUTPUT 94s write to OUTPUT in po, pot formats 94s -u UPDATEFILE, --update=UPDATEFILE 94s update terminology in UPDATEFILE 94s -S STOPFILE, --stopword-list=STOPFILE 94s read stopword (term exclusion) list from STOPFILE 94s (default /usr/lib/python3/dist- 94s packages/translate/share/stoplist-en) 94s -F, --fold-titlecase fold "Title Case" to lowercase (default) 94s -C, --preserve-case preserve all uppercase/lowercase 94s -I, --ignore-case make all terms lowercase 94s --accelerator=ACCELERATORS 94s ignore the given accelerator characters when matching 94s -t LENGTH, --term-words=LENGTH 94s generate terms of up to LENGTH words (default 3) 94s --nonstop-needed=MIN omit terms with less than MIN nonstop words (default 94s 1) 94s --inputs-needed=MIN omit terms appearing in less than MIN input files 94s (default 2, or 1 if only one input file) 94s --fullmsg-needed=MIN omit full message terms appearing in less than MIN 94s different messages (default 1) 94s --substr-needed=MIN omit substring-only terms appearing in less than MIN 94s different messages (default 2) 94s --locs-needed=MIN omit terms appearing in less than MIN different 94s original source files (default 2) 94s --sort=ORDER output sort order(s): frequency, dictionary, length 94s (may repeat option, default is all in above order) 94s --source-language=LANG 94s the source language code (default 'en') 94s -v, --invert invert the source and target languages for terminology 95s ========= SMOKE TEST: /usr/bin/pretranslate =========== 95s Usage: pretranslate [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 95s 95s Fill localization files with suggested translations based on translation 95s memory and existing translations. See: 95s http://docs.translatehouse.org/projects/translate- 95s toolkit/en/latest/commands/pretranslate.html for examples and usage 95s instructions. 95s 95s Options: 95s --version show program's version number and exit 95s -h, --help show this help message and exit 95s --manpage output a manpage based on the help 95s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 95s --errorlevel=ERRORLEVEL 95s show errorlevel as: none, message, exception, 95s traceback 95s -i INPUT, --input=INPUT 95s read from INPUT in po, pot, pot, xlf, xliff formats 95s -x EXCLUDE, --exclude=EXCLUDE 95s exclude names matching EXCLUDE from input paths 95s -o OUTPUT, --output=OUTPUT 95s write to OUTPUT in po, pot, xlf, xliff formats 95s -t TEMPLATE, --template=TEMPLATE 95s read from TEMPLATE in po, pot, xlf, xliff formats 95s -S, --timestamp skip conversion if the output file has newer timestamp 95s --tm=TM The file to use as translation memory when fuzzy 95s matching 95s -s MIN_SIMILARITY, --similarity=MIN_SIMILARITY 95s The minimum similarity for inclusion (default: 75%) 95s --nofuzzymatching Disable fuzzy matching 95s ========= SMOKE TEST: /usr/bin/prop2po =========== 95s 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] 95s 95s Convert Java/Mozilla .properties files to Gettext PO localization files. 95s See: http://docs.translatehouse.org/projects/translate- 95s toolkit/en/latest/commands/prop2po.html for examples and usage instructions. 95s 95s Options: 95s --version show program's version number and exit 95s -h, --help show this help message and exit 95s --manpage output a manpage based on the help 95s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 95s --errorlevel=ERRORLEVEL 95s show errorlevel as: none, message, exception, 95s traceback 95s -i INPUT, --input=INPUT 95s read from INPUT in lang, properties, strings formats 95s -x EXCLUDE, --exclude=EXCLUDE 95s exclude names matching EXCLUDE from input paths 95s -o OUTPUT, --output=OUTPUT 95s write to OUTPUT in po, pot formats 95s -t TEMPLATE, --template=TEMPLATE 95s read from TEMPLATE in lang, properties, strings 95s formats 95s -S, --timestamp skip conversion if the output file has newer timestamp 95s -P, --pot output PO Templates (.pot) rather than PO files (.po) 95s --personality=TYPE override the input file format: java, java-utf8, java- 95s utf16, xwiki, flex, mozilla, gaia, gwt, skype, 95s strings, strings-utf8, joomla (for .properties files, 95s default: java) 95s --encoding=ENCODING override the encoding set by the personality 95s --duplicates=DUPLICATESTYLE 95s what to do with duplicate strings (identical source 95s text): merge, msgctxt (default: 'msgctxt') 95s ========= SMOKE TEST: /usr/bin/pydiff =========== 95s usage: pydiff [-h] [-i] [-U NUM] [-r] [-N] [--unidirectional-new-file] [-s] 95s [-x PAT] [--fromcontains TEXT] [--tocontains TEXT] 95s [--contains TEXT] [-I] [--accelerator ACCELERATORS] 95s fromfile tofile 95s 95s positional arguments: 95s fromfile 95s tofile 95s 95s options: 95s -h, --help show this help message and exit 95s -i, --ignore-case Ignore case differences in file contents. 95s -U, --unified NUM Output NUM (default 3) lines of unified context 95s -r, --recursive Recursively compare any subdirectories found. 95s -N, --new-file Treat absent files as empty. 95s --unidirectional-new-file 95s Treat absent first files as empty. 95s -s, --report-identical-files 95s Report when two files are the same. 95s -x, --exclude PAT Exclude files that match PAT. 95s --fromcontains TEXT Only show changes where fromfile contains TEXT 95s --tocontains TEXT Only show changes where tofile contains TEXT 95s --contains TEXT Only show changes where fromfile or tofile contains 95s TEXT 95s -I, --ignore-case-contains 95s Ignore case differences when matching any of the 95s changes 95s --accelerator ACCELERATORS 95s ignores the given accelerator characters when matching 95s ========= SMOKE TEST: /usr/bin/pypo2phppo =========== 95s Usage: pypo2phppo [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 95s 95s Convert Python format .po files to PHP format .po files. 95s 95s Options: 95s --version show program's version number and exit 95s -h, --help show this help message and exit 95s --manpage output a manpage based on the help 95s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 95s --errorlevel=ERRORLEVEL 95s show errorlevel as: none, message, exception, 95s traceback 95s -i INPUT, --input=INPUT 95s read from INPUT in po, pot formats 95s -x EXCLUDE, --exclude=EXCLUDE 95s exclude names matching EXCLUDE from input paths 95s -o OUTPUT, --output=OUTPUT 95s write to OUTPUT in po, pot formats 95s -S, --timestamp skip conversion if the output file has newer timestamp 95s ========= SMOKE TEST: /usr/bin/rc2po =========== 95s 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] 95s 95s Convert Windows RC files to Gettext PO localization files. See: 95s http://docs.translatehouse.org/projects/translate- 95s toolkit/en/latest/commands/rc2po.html for examples and usage instructions. 95s 95s Options: 95s --version show program's version number and exit 95s -h, --help show this help message and exit 95s --manpage output a manpage based on the help 95s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 95s --errorlevel=ERRORLEVEL 95s show errorlevel as: none, message, exception, 95s traceback 95s -i INPUT, --input=INPUT 95s read from INPUT in nls, rc formats 95s -x EXCLUDE, --exclude=EXCLUDE 95s exclude names matching EXCLUDE from input paths 95s -o OUTPUT, --output=OUTPUT 95s write to OUTPUT in po, pot formats 95s -t TEMPLATE, --template=TEMPLATE 95s read from TEMPLATE in nls, rc formats 95s -S, --timestamp skip conversion if the output file has newer timestamp 95s -P, --pot output PO Templates (.pot) rather than PO files (.po) 95s --charset=CHARSET charset to use to decode the RC files (autodetection 95s is used by default) 95s -l LANG, --lang=LANG LANG entry (default: None) 95s --sublang=SUBLANG SUBLANG entry (default: None) 95s --duplicates=DUPLICATESTYLE 95s what to do with duplicate strings (identical source 95s text): merge, msgctxt (default: 'msgctxt') 95s ========= SMOKE TEST: /usr/bin/resx2po =========== 96s 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] 96s 96s Convert .Net Resource (.resx) to Gettext PO localisation files. See: 96s http://docs.translatehouse.org/projects/translate- 96s toolkit/en/latest/commands/resx2po.html for examples and usage instructions. 96s 96s Options: 96s --version show program's version number and exit 96s -h, --help show this help message and exit 96s --manpage output a manpage based on the help 96s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 96s --errorlevel=ERRORLEVEL 96s show errorlevel as: none, message, exception, 96s traceback 96s -i INPUT, --input=INPUT 96s read from INPUT in resx format 96s -x EXCLUDE, --exclude=EXCLUDE 96s exclude names matching EXCLUDE from input paths 96s -o OUTPUT, --output=OUTPUT 96s write to OUTPUT in po, pot formats 96s -t TEMPLATE, --template=TEMPLATE 96s read from TEMPLATE in resx format 96s -S, --timestamp skip conversion if the output file has newer timestamp 96s -P, --pot output PO Templates (.pot) rather than PO files (.po) 96s --filter=FILTER leaves to extract e.g. 'name,desc': (default: extract 96s everything) 96s --duplicates=DUPLICATESTYLE 96s what to do with duplicate strings (identical source 96s text): merge, msgctxt (default: 'msgctxt') 96s ========= SMOKE TEST: /usr/bin/sub2po =========== 96s 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] 96s 96s Convert subtitle files to Gettext PO localization files. See: 96s http://docs.translatehouse.org/projects/translate- 96s toolkit/en/latest/commands/sub2po.html for examples and usage instructions. 96s 96s Options: 96s --version show program's version number and exit 96s -h, --help show this help message and exit 96s --manpage output a manpage based on the help 96s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 96s --errorlevel=ERRORLEVEL 96s show errorlevel as: none, message, exception, 96s traceback 96s -i INPUT, --input=INPUT 96s read from INPUT in ass, srt, ssa, sub formats 96s -x EXCLUDE, --exclude=EXCLUDE 96s exclude names matching EXCLUDE from input paths 96s -o OUTPUT, --output=OUTPUT 96s write to OUTPUT in po, pot formats 96s -t TEMPLATE, --template=TEMPLATE 96s read from TEMPLATE in ass, srt, ssa, sub formats 96s -S, --timestamp skip conversion if the output file has newer timestamp 96s -P, --pot output PO Templates (.pot) rather than PO files (.po) 96s --duplicates=DUPLICATESTYLE 96s what to do with duplicate strings (identical source 96s text): merge, msgctxt (default: 'msgctxt') 96s ========= SMOKE TEST: /usr/bin/symb2po =========== 96s 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] 96s 96s Convert Symbian localisation files to Gettext PO localization files. See: 96s http://docs.translatehouse.org/projects/translate- 96s toolkit/en/latest/commands/symb2po.html for examples and usage instructions. 96s 96s Options: 96s --version show program's version number and exit 96s -h, --help show this help message and exit 96s --manpage output a manpage based on the help 96s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 96s --errorlevel=ERRORLEVEL 96s show errorlevel as: none, message, exception, 96s traceback 96s -i INPUT, --input=INPUT 96s read from INPUT in r01 format 96s -x EXCLUDE, --exclude=EXCLUDE 96s exclude names matching EXCLUDE from input paths 96s -o OUTPUT, --output=OUTPUT 96s write to OUTPUT in po, pot formats 96s -t TEMPLATE, --template=TEMPLATE 96s read from TEMPLATE in 96s -S, --timestamp skip conversion if the output file has newer timestamp 96s -P, --pot output PO Templates (.pot) rather than PO files (.po) 96s --duplicates=DUPLICATESTYLE 96s what to do with duplicate strings (identical source 96s text): merge, msgctxt (default: 'msgctxt') 96s ========= SMOKE TEST: /usr/bin/tbx2po =========== 96s Usage: tbx2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 96s 96s Convert TermBase eXchange (.tbx) glossary file into a Gettext PO file. See: 96s http://docs.translatehouse.org/projects/translate- 96s toolkit/en/latest/commands/tbx2po.html for examples and usage instructions 96s 96s Options: 96s --version show program's version number and exit 96s -h, --help show this help message and exit 96s --manpage output a manpage based on the help 96s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 96s --errorlevel=ERRORLEVEL 96s show errorlevel as: none, message, exception, 96s traceback 96s -i INPUT, --input=INPUT 96s read from INPUT in tbx format 96s -x EXCLUDE, --exclude=EXCLUDE 96s exclude names matching EXCLUDE from input paths 96s -o OUTPUT, --output=OUTPUT 96s write to OUTPUT in po, pot formats 96s -S, --timestamp skip conversion if the output file has newer timestamp 96s ========= SMOKE TEST: /usr/bin/tiki2po =========== 96s Usage: tiki2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 96s 96s Convert TikiWiki's language.php files to Gettext PO localization files. See: 96s http://docs.translatehouse.org/projects/translate- 96s toolkit/en/latest/commands/tiki2po.html for examples and usage instructions. 96s 96s Options: 96s --version show program's version number and exit 96s -h, --help show this help message and exit 96s --manpage output a manpage based on the help 96s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 96s --errorlevel=ERRORLEVEL 96s show errorlevel as: none, message, exception, 96s traceback 96s -i INPUT, --input=INPUT 96s read from INPUT in php format 96s -x EXCLUDE, --exclude=EXCLUDE 96s exclude names matching EXCLUDE from input paths 96s -o OUTPUT, --output=OUTPUT 96s write to OUTPUT in po, pot formats 96s -S, --timestamp skip conversion if the output file has newer timestamp 96s --include-unused Include strings in the unused section 97s ========= SMOKE TEST: /usr/bin/tmserver =========== 97s usage: tmserver [-h] [-d TMDBFILE] [-f TMFILES] [-t TARGET_LANG] 97s [-s SOURCE_LANG] [-b BIND] [-p PORT] 97s [--max-candidates MAX_CANDIDATES] 97s [--min-similarity MIN_SIMILARITY] [--max-length MAX_LENGTH] 97s [--debug] 97s 97s options: 97s -h, --help show this help message and exit 97s -d, --tmdb TMDBFILE translation memory database file 97s -f, --import-translation-file TMFILES 97s translation file to import into the database 97s -t, --import-target-lang TARGET_LANG 97s target language of translation files 97s -s, --import-source-lang SOURCE_LANG 97s source language of translation files 97s -b, --bind BIND address to bind server to (default: localhost) 97s -p, --port PORT port to listen on (default: 8888) 97s --max-candidates MAX_CANDIDATES 97s Maximum number of candidates 97s --min-similarity MIN_SIMILARITY 97s minimum similarity 97s --max-length MAX_LENGTH 97s Maximum string length 97s --debug enable debugging features 97s ========= SMOKE TEST: /usr/bin/toml2po =========== 97s 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] 97s 97s Convert TOML files to Gettext PO localization files. See: 97s http://docs.translatehouse.org/projects/translate- 97s toolkit/en/latest/commands/toml2po.html for examples and usage instructions. 97s 97s Options: 97s --version show program's version number and exit 97s -h, --help show this help message and exit 97s --manpage output a manpage based on the help 97s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 97s --errorlevel=ERRORLEVEL 97s show errorlevel as: none, message, exception, 97s traceback 97s -i INPUT, --input=INPUT 97s read from INPUT in toml format 97s -x EXCLUDE, --exclude=EXCLUDE 97s exclude names matching EXCLUDE from input paths 97s -o OUTPUT, --output=OUTPUT 97s write to OUTPUT in po, pot formats 97s -t TEMPLATE, --template=TEMPLATE 97s read from TEMPLATE in toml format 97s -S, --timestamp skip conversion if the output file has newer timestamp 97s -P, --pot output PO Templates (.pot) rather than PO files (.po) 97s --duplicates=DUPLICATESTYLE 97s what to do with duplicate strings (identical source 97s text): merge, msgctxt (default: 'msgctxt') 97s ========= SMOKE TEST: /usr/bin/ts2po =========== 97s Usage: ts2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 97s 97s Convert Qt Linguist (.ts) files to Gettext PO localization files. See: 97s http://docs.translatehouse.org/projects/translate- 97s toolkit/en/latest/commands/ts2po.html for examples and usage instructions. 97s 97s Options: 97s --version show program's version number and exit 97s -h, --help show this help message and exit 97s --manpage output a manpage based on the help 97s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 97s --errorlevel=ERRORLEVEL 97s show errorlevel as: none, message, exception, 97s traceback 97s -i INPUT, --input=INPUT 97s read from INPUT in ts format 97s -x EXCLUDE, --exclude=EXCLUDE 97s exclude names matching EXCLUDE from input paths 97s -o OUTPUT, --output=OUTPUT 97s write to OUTPUT in po, pot formats 97s -S, --timestamp skip conversion if the output file has newer timestamp 97s -P, --pot output PO Templates (.pot) rather than PO files (.po) 97s --duplicates=DUPLICATESTYLE 97s what to do with duplicate strings (identical source 97s text): merge, msgctxt (default: 'msgctxt') 97s ========= SMOKE TEST: /usr/bin/txt2po =========== 97s Usage: txt2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 97s 97s Convert plain text (.txt) files to Gettext PO localization files. See: 97s http://docs.translatehouse.org/projects/translate- 97s toolkit/en/latest/commands/txt2po.html for examples and usage instructions. 97s 97s Options: 97s --version show program's version number and exit 97s -h, --help show this help message and exit 97s --manpage output a manpage based on the help 97s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 97s --errorlevel=ERRORLEVEL 97s show errorlevel as: none, message, exception, 97s traceback 97s -i INPUT, --input=INPUT 97s read from INPUT in *, txt formats 97s -x EXCLUDE, --exclude=EXCLUDE 97s exclude names matching EXCLUDE from input paths 97s -o OUTPUT, --output=OUTPUT 97s write to OUTPUT in po, pot formats 97s -S, --timestamp skip conversion if the output file has newer timestamp 97s -P, --pot output PO Templates (.pot) rather than PO files (.po) 97s --encoding=ENCODING The encoding of the input file (default: UTF-8) 97s --flavour=FLAVOUR The flavour of text file: plain (default), dokuwiki, 97s mediawiki 97s --no-segmentation Don't segment the file, treat it like a single message 97s --duplicates=DUPLICATESTYLE 97s what to do with duplicate strings (identical source 97s text): merge, msgctxt (default: 'msgctxt') 97s ========= SMOKE TEST: /usr/bin/web2py2po =========== 97s Usage: web2py2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 97s 97s Convert web2py translation dictionaries (.py) to GNU/gettext PO files. See: 97s http://docs.translatehouse.org/projects/translate- 97s toolkit/en/latest/commands/web2py2po.html for examples and usage instructions. 97s 97s Options: 97s --version show program's version number and exit 97s -h, --help show this help message and exit 97s --manpage output a manpage based on the help 97s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 97s --errorlevel=ERRORLEVEL 97s show errorlevel as: none, message, exception, 97s traceback 97s -i INPUT, --input=INPUT 97s read from INPUT in py format 97s -x EXCLUDE, --exclude=EXCLUDE 97s exclude names matching EXCLUDE from input paths 97s -o OUTPUT, --output=OUTPUT 97s write to OUTPUT in po, pot formats 97s -S, --timestamp skip conversion if the output file has newer timestamp 97s -P, --pot output PO Templates (.pot) rather than PO files (.po) 97s --duplicates=DUPLICATESTYLE 97s what to do with duplicate strings (identical source 97s text): merge, msgctxt (default: 'msgctxt') 98s ========= SMOKE TEST: /usr/bin/xliff2odf =========== 98s Usage: xliff2odf [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 98s 98s Convert XLIFF translation files to OpenDocument (ODF) files. See: 98s http://docs.translatehouse.org/projects/translate- 98s toolkit/en/latest/commands/odf2xliff.html for examples and usage instructions. 98s 98s Options: 98s --version show program's version number and exit 98s -h, --help show this help message and exit 98s --manpage output a manpage based on the help 98s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 98s --errorlevel=ERRORLEVEL 98s show errorlevel as: none, message, exception, 98s traceback 98s -i INPUT, --input=INPUT 98s read from INPUT in xlf format 98s -x EXCLUDE, --exclude=EXCLUDE 98s exclude names matching EXCLUDE from input paths 98s -o OUTPUT, --output=OUTPUT 98s write to OUTPUT in odc, odf, odg, odi, odm, odp, ods, 98s odt, otc, otf, otg, oth, oti, otp, ots, ott formats 98s -t TEMPLATE, --template=TEMPLATE 98s read from TEMPLATE in odc, odf, odg, odi, odm, odp, 98s ods, odt, otc, otf, otg, oth, oti, otp, ots, ott 98s formats 98s -S, --timestamp skip conversion if the output file has newer timestamp 98s ========= SMOKE TEST: /usr/bin/xliff2oo =========== 98s Usage: xliff2oo [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 98s 98s Convert XLIFF localization files to an OpenOffice.org (SDF) localization 98s file. See: http://docs.translatehouse.org/projects/translate- 98s toolkit/en/latest/commands/oo2po.html for examples and usage instructions. 98s 98s Options: 98s --version show program's version number and exit 98s -h, --help show this help message and exit 98s --manpage output a manpage based on the help 98s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 98s --errorlevel=ERRORLEVEL 98s show errorlevel as: none, message, exception, 98s traceback 98s -i INPUT, --input=INPUT 98s read from INPUT in po, pot, xlf, xliff formats 98s -x EXCLUDE, --exclude=EXCLUDE 98s exclude names matching EXCLUDE from input paths 98s -o OUTPUT, --output=OUTPUT 98s write to OUTPUT in oo, sdf formats 98s -t TEMPLATE, --template=TEMPLATE 98s read from TEMPLATE in oo, sdf formats 98s -S, --timestamp skip conversion if the output file has newer timestamp 98s -l LANG, --language=LANG 98s set target language code (e.g. af-ZA) [required] 98s --source-language=LANG 98s set source language code (default en-US) 98s -T, --keeptimestamp don't change the timestamps of the strings 98s --nonrecursiveoutput don't treat the output oo as a recursive store 98s --nonrecursivetemplate 98s don't treat the template oo as a recursive store 98s --skipsource don't output the source language, but fallback to it 98s where needed 98s --filteraction=ACTION 98s action on pofilter failure: none (default), warn, 98s exclude-serious, exclude-all 98s --fuzzy use translations marked fuzzy 98s --nofuzzy don't use translations marked fuzzy (default) 98s --multifile=MULTIFILESTYLE 98s how to split po/pot files (single, toplevel or 98s onefile) 98s ========= SMOKE TEST: /usr/bin/xliff2po =========== 98s Usage: xliff2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 98s 98s Convert XLIFF localization files to Gettext PO localization files. See: 98s http://docs.translatehouse.org/projects/translate- 98s toolkit/en/latest/commands/xliff2po.html for examples and usage instructions. 98s 98s Options: 98s --version show program's version number and exit 98s -h, --help show this help message and exit 98s --manpage output a manpage based on the help 98s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 98s --errorlevel=ERRORLEVEL 98s show errorlevel as: none, message, exception, 98s traceback 98s -i INPUT, --input=INPUT 98s read from INPUT in xlf, xliff formats 98s -x EXCLUDE, --exclude=EXCLUDE 98s exclude names matching EXCLUDE from input paths 98s -o OUTPUT, --output=OUTPUT 98s write to OUTPUT in po, pot formats 98s -S, --timestamp skip conversion if the output file has newer timestamp 98s -P, --pot output PO Templates (.pot) rather than PO files (.po) 98s --duplicates=DUPLICATESTYLE 98s what to do with duplicate strings (identical source 98s text): merge, msgctxt (default: 'msgctxt') 98s ========= SMOKE TEST: /usr/bin/yaml2po =========== 98s 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] 98s 98s Convert YAML files to Gettext PO localization files. See: 98s http://docs.translatehouse.org/projects/translate- 98s toolkit/en/latest/commands/yaml2po.html for examples and usage instructions. 98s 98s Options: 98s --version show program's version number and exit 98s -h, --help show this help message and exit 98s --manpage output a manpage based on the help 98s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 98s --errorlevel=ERRORLEVEL 98s show errorlevel as: none, message, exception, 98s traceback 98s -i INPUT, --input=INPUT 98s read from INPUT in yaml, yml formats 98s -x EXCLUDE, --exclude=EXCLUDE 98s exclude names matching EXCLUDE from input paths 98s -o OUTPUT, --output=OUTPUT 98s write to OUTPUT in po, pot formats 98s -t TEMPLATE, --template=TEMPLATE 98s read from TEMPLATE in yaml, yml formats 98s -S, --timestamp skip conversion if the output file has newer timestamp 98s -P, --pot output PO Templates (.pot) rather than PO files (.po) 98s --duplicates=DUPLICATESTYLE 98s what to do with duplicate strings (identical source 98s text): merge, msgctxt (default: 'msgctxt') 99s autopkgtest [05:39:40]: test translate-toolkit: -----------------------] 99s autopkgtest [05:39:40]: test translate-toolkit: - - - - - - - - - - results - - - - - - - - - - 99s translate-toolkit PASS 100s autopkgtest [05:39:41]: test python3-translate: preparing testbed 119s Creating nova instance adt-resolute-arm64-translate-toolkit-20260130-053801-juju-7f2275-prod-proposed-migration-environment-20-7158e1f5-5e15-4511-85b1-a01ac0c9050e from image adt/ubuntu-resolute-arm64-server-20260130.img (UUID d80a3628-95a8-4c17-a25a-26b02882b363)... 168s autopkgtest [05:40:49]: testbed dpkg architecture: arm64 168s autopkgtest [05:40:49]: testbed apt version: 3.1.14 169s autopkgtest [05:40:50]: @@@@@@@@@@@@@@@@@@@@ test bed setup 169s autopkgtest [05:40:50]: testbed release detected to be: resolute 170s autopkgtest [05:40:51]: updating testbed package index (apt update) 170s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 171s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 171s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 171s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 171s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [103 kB] 171s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [33.0 kB] 171s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [1600 kB] 171s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [2820 B] 171s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 Packages [120 kB] 171s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 c-n-f Metadata [4364 B] 171s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/restricted arm64 Packages [12.3 kB] 171s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/restricted arm64 c-n-f Metadata [328 B] 171s Get:13 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 Packages [1166 kB] 171s Get:14 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 c-n-f Metadata [21.9 kB] 171s Get:15 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse arm64 Packages [25.4 kB] 171s Get:16 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse arm64 c-n-f Metadata [720 B] 174s Fetched 3215 kB in 1s (2596 kB/s) 175s Reading package lists... 176s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 176s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 176s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 176s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 177s Reading package lists... 177s Reading package lists... 177s Building dependency tree... 177s Reading state information... 177s Calculating upgrade... 178s The following packages will be upgraded: 178s bzip2 inetutils-telnet libbz2-1.0 libsqlite3-0 telnet 178s 5 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 178s Need to get 888 kB of archives. 178s After this operation, 2048 B of additional disk space will be used. 178s Get:1 http://ftpmaster.internal/ubuntu resolute/main arm64 bzip2 arm64 1.0.8-6build2 [34.0 kB] 178s Get:2 http://ftpmaster.internal/ubuntu resolute/main arm64 libbz2-1.0 arm64 1.0.8-6build2 [34.9 kB] 178s Get:3 http://ftpmaster.internal/ubuntu resolute/main arm64 libsqlite3-0 arm64 3.46.1-9 [711 kB] 178s Get:4 http://ftpmaster.internal/ubuntu resolute/main arm64 inetutils-telnet arm64 2:2.7-2ubuntu1 [104 kB] 178s Get:5 http://ftpmaster.internal/ubuntu resolute/main arm64 telnet all 0.17+2.7-2ubuntu1 [3636 B] 178s dpkg-preconfigure: unable to re-open stdin: No such file or directory 178s Fetched 888 kB in 0s (2392 kB/s) 179s (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 ... 135255 files and directories currently installed.) 179s Preparing to unpack .../bzip2_1.0.8-6build2_arm64.deb ... 179s Unpacking bzip2 (1.0.8-6build2) over (1.0.8-6build1) ... 179s Preparing to unpack .../libbz2-1.0_1.0.8-6build2_arm64.deb ... 179s Unpacking libbz2-1.0:arm64 (1.0.8-6build2) over (1.0.8-6build1) ... 179s Setting up libbz2-1.0:arm64 (1.0.8-6build2) ... 179s (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 ... 135255 files and directories currently installed.) 179s Preparing to unpack .../libsqlite3-0_3.46.1-9_arm64.deb ... 179s Unpacking libsqlite3-0:arm64 (3.46.1-9) over (3.46.1-8) ... 179s Preparing to unpack .../inetutils-telnet_2%3a2.7-2ubuntu1_arm64.deb ... 179s Unpacking inetutils-telnet (2:2.7-2ubuntu1) over (2:2.6-4ubuntu1) ... 179s Preparing to unpack .../telnet_0.17+2.7-2ubuntu1_all.deb ... 179s Unpacking telnet (0.17+2.7-2ubuntu1) over (0.17+2.6-4ubuntu1) ... 179s Setting up libsqlite3-0:arm64 (3.46.1-9) ... 179s Setting up inetutils-telnet (2:2.7-2ubuntu1) ... 179s Setting up bzip2 (1.0.8-6build2) ... 179s Setting up telnet (0.17+2.7-2ubuntu1) ... 179s Processing triggers for man-db (2.13.1-1) ... 180s Processing triggers for libc-bin (2.42-2ubuntu4) ... 180s autopkgtest [05:41:01]: upgrading testbed (apt dist-upgrade and autopurge) 180s Reading package lists... 181s Building dependency tree... 181s Reading state information... 181s Calculating upgrade... 181s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 182s Reading package lists... 182s Building dependency tree... 182s Reading state information... 182s Solving dependencies... 182s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 185s Reading package lists... 185s Building dependency tree... 185s Reading state information... 185s Solving dependencies... 186s The following NEW packages will be installed: 186s dictionaries-common emacsen-common gettext hunspell-en-us libapr1t64 186s libaprutil1t64 libaspell15 libenchant-2-2 libexttextcat-data libgomp1 186s libhunspell-1.7-0 libpython3.14-minimal libpython3.14-stdlib libserf-1-1 186s libsvn1 libutf8proc3 libxapian30 libxslt1.1 python3-aeidon python3-all 186s python3-bs4 python3-charset-normalizer python3-cheroot 186s python3-diff-match-patch python3-enchant python3-iniconfig python3-iniparse 186s python3-levenshtein python3-lxml python3-mistletoe python3-phply 186s python3-pluggy python3-ply python3-pycountry python3-pytest python3-pytz 186s python3-rapidfuzz python3-ruamel.yaml python3-ruamel.yaml.clib 186s python3-soupsieve python3-syrupy python3-tomlkit python3-translate 186s python3-unicode-segmentation-rs python3-vobject python3-xapian python3.14 186s python3.14-minimal subversion 186s 0 upgraded, 49 newly installed, 0 to remove and 0 not upgraded. 186s Need to get 19.2 MB of archives. 186s After this operation, 90.7 MB of additional disk space will be used. 186s Get:1 http://ftpmaster.internal/ubuntu resolute/main arm64 libpython3.14-minimal arm64 3.14.2-1 [917 kB] 186s Get:2 http://ftpmaster.internal/ubuntu resolute/main arm64 python3.14-minimal arm64 3.14.2-1 [2548 kB] 186s Get:3 http://ftpmaster.internal/ubuntu resolute/main arm64 emacsen-common all 3.0.8 [13.9 kB] 186s Get:4 http://ftpmaster.internal/ubuntu resolute/main arm64 dictionaries-common all 1.31.3 [179 kB] 186s Get:5 http://ftpmaster.internal/ubuntu resolute/main arm64 libgomp1 arm64 15.2.0-12ubuntu1 [147 kB] 186s Get:6 http://ftpmaster.internal/ubuntu resolute/main arm64 gettext arm64 0.23.2-1 [998 kB] 186s Get:7 http://ftpmaster.internal/ubuntu resolute/main arm64 hunspell-en-us all 1:2020.12.07-4build1 [585 kB] 186s Get:8 http://ftpmaster.internal/ubuntu resolute/main arm64 libapr1t64 arm64 1.7.6-3 [107 kB] 187s Get:9 http://ftpmaster.internal/ubuntu resolute/main arm64 libaprutil1t64 arm64 1.6.3-3ubuntu3 [92.9 kB] 187s Get:10 http://ftpmaster.internal/ubuntu resolute/main arm64 libaspell15 arm64 0.60.8.1-6 [314 kB] 187s Get:11 http://ftpmaster.internal/ubuntu resolute/main arm64 libhunspell-1.7-0 arm64 1.7.2+really1.7.2-11 [300 kB] 187s Get:12 http://ftpmaster.internal/ubuntu resolute/main arm64 libenchant-2-2 arm64 2.8.2+dfsg1-3build1 [57.8 kB] 187s Get:13 http://ftpmaster.internal/ubuntu resolute/main arm64 libexttextcat-data all 3.4.7-1ubuntu2 [193 kB] 187s Get:14 http://ftpmaster.internal/ubuntu resolute/main arm64 libpython3.14-stdlib arm64 3.14.2-1 [2351 kB] 187s Get:15 http://ftpmaster.internal/ubuntu resolute/universe arm64 libserf-1-1 arm64 1.3.10-3ubuntu1 [48.7 kB] 187s Get:16 http://ftpmaster.internal/ubuntu resolute/universe arm64 libutf8proc3 arm64 2.10.0-2 [71.3 kB] 187s Get:17 http://ftpmaster.internal/ubuntu resolute/universe arm64 libsvn1 arm64 1.14.5-5 [1334 kB] 187s Get:18 http://ftpmaster.internal/ubuntu resolute/universe arm64 libxapian30 arm64 1.4.29-3 [684 kB] 187s Get:19 http://ftpmaster.internal/ubuntu resolute/main arm64 libxslt1.1 arm64 1.1.43-0.3 [172 kB] 187s Get:20 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-aeidon all 1.15-2build1 [225 kB] 187s Get:21 http://ftpmaster.internal/ubuntu resolute/main arm64 python3.14 arm64 3.14.2-1 [816 kB] 187s Get:22 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-all arm64 3.13.9-3 [890 B] 187s Get:23 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-soupsieve all 2.8.3-1 [34.0 kB] 187s Get:24 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-bs4 all 4.14.3-2build1 [84.8 kB] 187s Get:25 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-charset-normalizer arm64 3.4.4-2 [169 kB] 187s Get:26 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-cheroot all 11.1.2+ds1-1 [81.5 kB] 187s Get:27 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-diff-match-patch all 20241021-1 [33.6 kB] 187s Get:28 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-enchant all 3.3.0-1 [35.0 kB] 187s Get:29 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-iniconfig all 2.1.0-2 [6962 B] 187s Get:30 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-rapidfuzz arm64 3.12.2+ds-1build1 [1368 kB] 187s Get:31 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-levenshtein arm64 0.27.1-2build1 [132 kB] 187s Get:32 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-lxml arm64 6.0.2-1 [2155 kB] 187s Get:33 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-mistletoe all 1.5.1-1 [41.7 kB] 187s Get:34 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-ply all 3.11-10 [45.9 kB] 187s Get:35 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-phply all 1.2.6-1build1 [50.6 kB] 187s Get:36 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pluggy all 1.6.0-2 [21.1 kB] 187s Get:37 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pytest all 9.0.2-2 [277 kB] 187s Get:38 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pytz all 2025.2-5 [32.4 kB] 187s Get:39 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-ruamel.yaml.clib arm64 0.2.15+ds-1 [178 kB] 187s Get:40 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 python3-ruamel.yaml all 0.18.10+ds-1build1 [127 kB] 187s Get:41 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-syrupy all 5.0.0-1 [47.9 kB] 187s Get:42 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-tomlkit all 0.13.3-2 [39.1 kB] 187s Get:43 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-translate all 3.18.1-1 [339 kB] 187s Get:44 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-unicode-segmentation-rs arm64 0.2.1-1 [211 kB] 187s Get:45 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-vobject all 0.9.9+dfsg-1 [41.5 kB] 187s Get:46 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-xapian arm64 1.4.29-1build1 [561 kB] 188s Get:47 http://ftpmaster.internal/ubuntu resolute/universe arm64 subversion arm64 1.14.5-5 [895 kB] 188s Get:48 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-iniparse all 0.5.1-2 [21.4 kB] 188s Get:49 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pycountry all 24.6.1+ds1-1 [30.0 kB] 188s Preconfiguring packages ... 188s Fetched 19.2 MB in 2s (10.5 MB/s) 188s Selecting previously unselected package libpython3.14-minimal:arm64. 188s (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 ... 135255 files and directories currently installed.) 188s Preparing to unpack .../00-libpython3.14-minimal_3.14.2-1_arm64.deb ... 188s Unpacking libpython3.14-minimal:arm64 (3.14.2-1) ... 188s Selecting previously unselected package python3.14-minimal. 188s Preparing to unpack .../01-python3.14-minimal_3.14.2-1_arm64.deb ... 188s Unpacking python3.14-minimal (3.14.2-1) ... 188s Selecting previously unselected package emacsen-common. 188s Preparing to unpack .../02-emacsen-common_3.0.8_all.deb ... 188s Unpacking emacsen-common (3.0.8) ... 189s Selecting previously unselected package dictionaries-common. 189s Preparing to unpack .../03-dictionaries-common_1.31.3_all.deb ... 189s Adding 'diversion of /usr/share/dict/words to /usr/share/dict/words.pre-dictionaries-common by dictionaries-common' 189s Unpacking dictionaries-common (1.31.3) ... 189s Selecting previously unselected package libgomp1:arm64. 189s Preparing to unpack .../04-libgomp1_15.2.0-12ubuntu1_arm64.deb ... 189s Unpacking libgomp1:arm64 (15.2.0-12ubuntu1) ... 189s Selecting previously unselected package gettext. 189s Preparing to unpack .../05-gettext_0.23.2-1_arm64.deb ... 189s Unpacking gettext (0.23.2-1) ... 189s Selecting previously unselected package hunspell-en-us. 189s Preparing to unpack .../06-hunspell-en-us_1%3a2020.12.07-4build1_all.deb ... 189s Unpacking hunspell-en-us (1:2020.12.07-4build1) ... 189s Selecting previously unselected package libapr1t64:arm64. 189s Preparing to unpack .../07-libapr1t64_1.7.6-3_arm64.deb ... 189s Unpacking libapr1t64:arm64 (1.7.6-3) ... 189s Selecting previously unselected package libaprutil1t64:arm64. 189s Preparing to unpack .../08-libaprutil1t64_1.6.3-3ubuntu3_arm64.deb ... 189s Unpacking libaprutil1t64:arm64 (1.6.3-3ubuntu3) ... 189s Selecting previously unselected package libaspell15:arm64. 189s Preparing to unpack .../09-libaspell15_0.60.8.1-6_arm64.deb ... 189s Unpacking libaspell15:arm64 (0.60.8.1-6) ... 189s Selecting previously unselected package libhunspell-1.7-0:arm64. 189s Preparing to unpack .../10-libhunspell-1.7-0_1.7.2+really1.7.2-11_arm64.deb ... 189s Unpacking libhunspell-1.7-0:arm64 (1.7.2+really1.7.2-11) ... 189s Selecting previously unselected package libenchant-2-2:arm64. 189s Preparing to unpack .../11-libenchant-2-2_2.8.2+dfsg1-3build1_arm64.deb ... 189s Unpacking libenchant-2-2:arm64 (2.8.2+dfsg1-3build1) ... 189s Selecting previously unselected package libexttextcat-data. 189s Preparing to unpack .../12-libexttextcat-data_3.4.7-1ubuntu2_all.deb ... 189s Unpacking libexttextcat-data (3.4.7-1ubuntu2) ... 189s Selecting previously unselected package libpython3.14-stdlib:arm64. 189s Preparing to unpack .../13-libpython3.14-stdlib_3.14.2-1_arm64.deb ... 189s Unpacking libpython3.14-stdlib:arm64 (3.14.2-1) ... 189s Selecting previously unselected package libserf-1-1:arm64. 189s Preparing to unpack .../14-libserf-1-1_1.3.10-3ubuntu1_arm64.deb ... 189s Unpacking libserf-1-1:arm64 (1.3.10-3ubuntu1) ... 189s Selecting previously unselected package libutf8proc3:arm64. 189s Preparing to unpack .../15-libutf8proc3_2.10.0-2_arm64.deb ... 189s Unpacking libutf8proc3:arm64 (2.10.0-2) ... 189s Selecting previously unselected package libsvn1:arm64. 189s Preparing to unpack .../16-libsvn1_1.14.5-5_arm64.deb ... 189s Unpacking libsvn1:arm64 (1.14.5-5) ... 189s Selecting previously unselected package libxapian30:arm64. 189s Preparing to unpack .../17-libxapian30_1.4.29-3_arm64.deb ... 189s Unpacking libxapian30:arm64 (1.4.29-3) ... 189s Selecting previously unselected package libxslt1.1:arm64. 189s Preparing to unpack .../18-libxslt1.1_1.1.43-0.3_arm64.deb ... 189s Unpacking libxslt1.1:arm64 (1.1.43-0.3) ... 189s Selecting previously unselected package python3-aeidon. 189s Preparing to unpack .../19-python3-aeidon_1.15-2build1_all.deb ... 189s Unpacking python3-aeidon (1.15-2build1) ... 189s Selecting previously unselected package python3.14. 189s Preparing to unpack .../20-python3.14_3.14.2-1_arm64.deb ... 189s Unpacking python3.14 (3.14.2-1) ... 190s Selecting previously unselected package python3-all. 190s Preparing to unpack .../21-python3-all_3.13.9-3_arm64.deb ... 190s Unpacking python3-all (3.13.9-3) ... 190s Selecting previously unselected package python3-soupsieve. 190s Preparing to unpack .../22-python3-soupsieve_2.8.3-1_all.deb ... 190s Unpacking python3-soupsieve (2.8.3-1) ... 190s Selecting previously unselected package python3-bs4. 190s Preparing to unpack .../23-python3-bs4_4.14.3-2build1_all.deb ... 190s Unpacking python3-bs4 (4.14.3-2build1) ... 190s Selecting previously unselected package python3-charset-normalizer. 190s Preparing to unpack .../24-python3-charset-normalizer_3.4.4-2_arm64.deb ... 190s Unpacking python3-charset-normalizer (3.4.4-2) ... 190s Selecting previously unselected package python3-cheroot. 190s Preparing to unpack .../25-python3-cheroot_11.1.2+ds1-1_all.deb ... 190s Unpacking python3-cheroot (11.1.2+ds1-1) ... 190s Selecting previously unselected package python3-diff-match-patch. 190s Preparing to unpack .../26-python3-diff-match-patch_20241021-1_all.deb ... 190s Unpacking python3-diff-match-patch (20241021-1) ... 190s Selecting previously unselected package python3-enchant. 190s Preparing to unpack .../27-python3-enchant_3.3.0-1_all.deb ... 190s Unpacking python3-enchant (3.3.0-1) ... 190s Selecting previously unselected package python3-iniconfig. 190s Preparing to unpack .../28-python3-iniconfig_2.1.0-2_all.deb ... 190s Unpacking python3-iniconfig (2.1.0-2) ... 190s Selecting previously unselected package python3-rapidfuzz. 190s Preparing to unpack .../29-python3-rapidfuzz_3.12.2+ds-1build1_arm64.deb ... 190s Unpacking python3-rapidfuzz (3.12.2+ds-1build1) ... 190s Selecting previously unselected package python3-levenshtein. 190s Preparing to unpack .../30-python3-levenshtein_0.27.1-2build1_arm64.deb ... 190s Unpacking python3-levenshtein (0.27.1-2build1) ... 190s Selecting previously unselected package python3-lxml:arm64. 190s Preparing to unpack .../31-python3-lxml_6.0.2-1_arm64.deb ... 190s Unpacking python3-lxml:arm64 (6.0.2-1) ... 190s Selecting previously unselected package python3-mistletoe. 190s Preparing to unpack .../32-python3-mistletoe_1.5.1-1_all.deb ... 190s Unpacking python3-mistletoe (1.5.1-1) ... 190s Selecting previously unselected package python3-ply. 190s Preparing to unpack .../33-python3-ply_3.11-10_all.deb ... 190s Unpacking python3-ply (3.11-10) ... 190s Selecting previously unselected package python3-phply. 190s Preparing to unpack .../34-python3-phply_1.2.6-1build1_all.deb ... 190s Unpacking python3-phply (1.2.6-1build1) ... 190s Selecting previously unselected package python3-pluggy. 190s Preparing to unpack .../35-python3-pluggy_1.6.0-2_all.deb ... 190s Unpacking python3-pluggy (1.6.0-2) ... 190s Selecting previously unselected package python3-pytest. 190s Preparing to unpack .../36-python3-pytest_9.0.2-2_all.deb ... 190s Unpacking python3-pytest (9.0.2-2) ... 190s Selecting previously unselected package python3-pytz. 190s Preparing to unpack .../37-python3-pytz_2025.2-5_all.deb ... 190s Unpacking python3-pytz (2025.2-5) ... 190s Selecting previously unselected package python3-ruamel.yaml.clib. 190s Preparing to unpack .../38-python3-ruamel.yaml.clib_0.2.15+ds-1_arm64.deb ... 190s Unpacking python3-ruamel.yaml.clib (0.2.15+ds-1) ... 190s Selecting previously unselected package python3-ruamel.yaml. 190s Preparing to unpack .../39-python3-ruamel.yaml_0.18.10+ds-1build1_all.deb ... 190s Unpacking python3-ruamel.yaml (0.18.10+ds-1build1) ... 190s Selecting previously unselected package python3-syrupy. 190s Preparing to unpack .../40-python3-syrupy_5.0.0-1_all.deb ... 190s Unpacking python3-syrupy (5.0.0-1) ... 191s Selecting previously unselected package python3-tomlkit. 191s Preparing to unpack .../41-python3-tomlkit_0.13.3-2_all.deb ... 191s Unpacking python3-tomlkit (0.13.3-2) ... 191s Selecting previously unselected package python3-translate. 191s Preparing to unpack .../42-python3-translate_3.18.1-1_all.deb ... 191s Unpacking python3-translate (3.18.1-1) ... 191s Selecting previously unselected package python3-unicode-segmentation-rs. 191s Preparing to unpack .../43-python3-unicode-segmentation-rs_0.2.1-1_arm64.deb ... 191s Unpacking python3-unicode-segmentation-rs (0.2.1-1) ... 191s Selecting previously unselected package python3-vobject. 191s Preparing to unpack .../44-python3-vobject_0.9.9+dfsg-1_all.deb ... 191s Unpacking python3-vobject (0.9.9+dfsg-1) ... 191s Selecting previously unselected package python3-xapian. 191s Preparing to unpack .../45-python3-xapian_1.4.29-1build1_arm64.deb ... 191s Unpacking python3-xapian (1.4.29-1build1) ... 191s Selecting previously unselected package subversion. 191s Preparing to unpack .../46-subversion_1.14.5-5_arm64.deb ... 191s Unpacking subversion (1.14.5-5) ... 191s Selecting previously unselected package python3-iniparse. 191s Preparing to unpack .../47-python3-iniparse_0.5.1-2_all.deb ... 191s Unpacking python3-iniparse (0.5.1-2) ... 191s Selecting previously unselected package python3-pycountry. 191s Preparing to unpack .../48-python3-pycountry_24.6.1+ds1-1_all.deb ... 191s Unpacking python3-pycountry (24.6.1+ds1-1) ... 191s Setting up python3-iniconfig (2.1.0-2) ... 191s Setting up libxapian30:arm64 (1.4.29-3) ... 191s Setting up python3-rapidfuzz (3.12.2+ds-1build1) ... 192s Setting up python3-diff-match-patch (20241021-1) ... 192s Setting up python3-aeidon (1.15-2build1) ... 192s Setting up libutf8proc3:arm64 (2.10.0-2) ... 192s Setting up libaspell15:arm64 (0.60.8.1-6) ... 192s Setting up python3-charset-normalizer (3.4.4-2) ... 193s Setting up python3-ply (3.11-10) ... 193s Setting up libpython3.14-minimal:arm64 (3.14.2-1) ... 193s Setting up python3-ruamel.yaml.clib (0.2.15+ds-1) ... 193s Setting up python3-pytz (2025.2-5) ... 193s Setting up python3-unicode-segmentation-rs (0.2.1-1) ... 193s Setting up libgomp1:arm64 (15.2.0-12ubuntu1) ... 193s Setting up emacsen-common (3.0.8) ... 193s Setting up python3-cheroot (11.1.2+ds1-1) ... 194s Setting up python3-pycountry (24.6.1+ds1-1) ... 194s Setting up python3-xapian (1.4.29-1build1) ... 194s Setting up python3-pluggy (1.6.0-2) ... 194s Setting up python3-ruamel.yaml (0.18.10+ds-1build1) ... 195s Setting up python3-mistletoe (1.5.1-1) ... 195s Setting up libexttextcat-data (3.4.7-1ubuntu2) ... 195s Setting up libapr1t64:arm64 (1.7.6-3) ... 195s Setting up libxslt1.1:arm64 (1.1.43-0.3) ... 195s Setting up python3-levenshtein (0.27.1-2build1) ... 195s Setting up libhunspell-1.7-0:arm64 (1.7.2+really1.7.2-11) ... 195s Setting up python3-tomlkit (0.13.3-2) ... 196s Setting up python3-soupsieve (2.8.3-1) ... 196s Setting up python3.14-minimal (3.14.2-1) ... 197s Setting up python3-iniparse (0.5.1-2) ... 197s Setting up libaprutil1t64:arm64 (1.6.3-3ubuntu3) ... 197s Setting up python3-vobject (0.9.9+dfsg-1) ... 197s Setting up gettext (0.23.2-1) ... 197s Setting up python3-phply (1.2.6-1build1) ... 198s Setting up dictionaries-common (1.31.3) ... 198s Setting up libpython3.14-stdlib:arm64 (3.14.2-1) ... 198s Setting up python3-pytest (9.0.2-2) ... 199s Setting up python3-syrupy (5.0.0-1) ... 199s Setting up libserf-1-1:arm64 (1.3.10-3ubuntu1) ... 199s Setting up python3-bs4 (4.14.3-2build1) ... 199s Setting up python3-lxml:arm64 (6.0.2-1) ... 200s Setting up hunspell-en-us (1:2020.12.07-4build1) ... 200s Setting up python3.14 (3.14.2-1) ... 201s Setting up libsvn1:arm64 (1.14.5-5) ... 201s Setting up libenchant-2-2:arm64 (2.8.2+dfsg1-3build1) ... 201s Setting up subversion (1.14.5-5) ... 201s Setting up python3-all (3.13.9-3) ... 201s Setting up python3-enchant (3.3.0-1) ... 201s Setting up python3-translate (3.18.1-1) ... 202s Processing triggers for libc-bin (2.42-2ubuntu4) ... 202s Processing triggers for systemd (259-1ubuntu2) ... 202s Processing triggers for man-db (2.13.1-1) ... 203s Processing triggers for install-info (7.2-5) ... 203s Processing triggers for dictionaries-common (1.31.3) ... 206s autopkgtest [05:41:27]: test python3-translate: [----------------------- 207s ============================= test session starts ============================== 207s platform linux -- Python 3.14.2, pytest-9.0.2, pluggy-1.6.0 -- /usr/bin/python3.14 207s cachedir: .pytest_cache 207s rootdir: /tmp/autopkgtest.g1gmkF/autopkgtest_tmp 207s plugins: typeguard-4.4.4, syrupy-5.0.0 213s collecting ... collected 3902 items / 2 skipped 213s 213s tests/odf_xliff/test_odf_xliff.py::test_odf2xliff PASSED [ 0%] 213s tests/odf_xliff/test_odf_xliff.py::test_roundtrip PASSED [ 0%] 213s tests/odf_xliff/test_odf_xliff.py::test_odf2xliff2_inline PASSED [ 0%] 213s tests/translate/convert/test_accesskey.py::test_get_label_and_accesskey PASSED [ 0%] 213s tests/translate/convert/test_accesskey.py::test_extract_bad_accesskeys PASSED [ 0%] 213s tests/translate/convert/test_accesskey.py::test_ignore_entities PASSED [ 0%] 213s tests/translate/convert/test_accesskey.py::test_alternate_accesskey_marker PASSED [ 0%] 213s tests/translate/convert/test_accesskey.py::test_unicode PASSED [ 0%] 213s tests/translate/convert/test_accesskey.py::test_numeric PASSED [ 0%] 213s tests/translate/convert/test_accesskey.py::test_empty_string PASSED [ 0%] 213s tests/translate/convert/test_accesskey.py::test_end_of_string PASSED [ 0%] 213s tests/translate/convert/test_accesskey.py::test_combine_label_accesskey PASSED [ 0%] 213s tests/translate/convert/test_accesskey.py::test_combine_label_accesskey_different_capitals PASSED [ 0%] 213s tests/translate/convert/test_accesskey.py::test_uncombinable PASSED [ 0%] 213s tests/translate/convert/test_accesskey.py::test_accesskey_already_in_text PASSED [ 0%] 213s tests/translate/convert/test_android2po.py::TestAndroid2PO::test_no_template_units PASSED [ 0%] 213s tests/translate/convert/test_android2po.py::TestAndroid2PO::test_template_units PASSED [ 0%] 213s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_no_template_units PASSED [ 0%] 213s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_template_units PASSED [ 0%] 213s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_help PASSED [ 0%] 213s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_convertandroid PASSED [ 0%] 213s tests/translate/convert/test_convert.py::TestConvertCommand::test_help PASSED [ 0%] 213s tests/translate/convert/test_csv2po.py::test_replacestrings PASSED [ 0%] 214s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_simpleentity PASSED [ 0%] 214s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_simpleentity_with_template PASSED [ 0%] 214s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_newlines PASSED [ 0%] 214s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_tabs PASSED [ 0%] 214s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_quotes PASSED [ 0%] 214s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_empties PASSED [ 0%] 214s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_kdecomment PASSED [ 0%] 214s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_escaped_newlines PASSED [ 0%] 214s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_line_numbers_in_errors PASSED [ 0%] 214s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_simpleentity PASSED [ 0%] 214s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_simpleentity_with_template PASSED [ 0%] 214s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_newlines PASSED [ 0%] 214s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_tabs PASSED [ 0%] 214s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_quotes PASSED [ 0%] 214s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_empties PASSED [ 0%] 214s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_kdecomment PASSED [ 0%] 214s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_escaped_newlines PASSED [ 1%] 214s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_line_numbers_in_errors PASSED [ 1%] 214s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_help PASSED [ 1%] 214s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder PASSED [ 1%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_simpleentity PASSED [ 1%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_convertdtd PASSED [ 1%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_apos PASSED [ 1%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_quotes PASSED [ 1%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_emptyentity PASSED [ 1%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_two_empty_entities PASSED [ 1%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_emptyentity_translated PASSED [ 1%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_localisaton_note_simple PASSED [ 1%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_localisation_note_merge PASSED [ 1%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_simple PASSED [ 1%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_label PASSED [ 1%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_onlyentity PASSED [ 1%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_commentedout PASSED [ 1%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_spaces_at_start_of_dtd_lines PASSED [ 1%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accesskeys_folding PASSED [ 1%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accesskeys_mismatch PASSED [ 1%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_carriage_return_in_multiline_dtd PASSED [ 1%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_multiline_with_blankline PASSED [ 1%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_multiline_closing_quotes PASSED [ 1%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_preserving_spaces PASSED [ 1%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_escaping_newline_tabs PASSED [ 1%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_abandoned_accelerator PASSED [ 1%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_unassociable_accelerator PASSED [ 1%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_changed_labels_and_accelerators PASSED [ 1%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accelerator_keys_not_in_sentence XFAIL [ 1%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_exclude_entity_includes PASSED [ 1%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_linewraps PASSED [ 1%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_merging_with_new_untranslated PASSED [ 1%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_merge_without_template PASSED [ 1%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_simpleentity PASSED [ 1%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_convertdtd PASSED [ 1%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_apos PASSED [ 1%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_quotes PASSED [ 1%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_emptyentity PASSED [ 1%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_two_empty_entities PASSED [ 1%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_emptyentity_translated PASSED [ 2%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_localisaton_note_simple PASSED [ 2%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_localisation_note_merge PASSED [ 2%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_simple PASSED [ 2%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_label PASSED [ 2%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_onlyentity PASSED [ 2%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_commentedout PASSED [ 2%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_spaces_at_start_of_dtd_lines PASSED [ 2%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accesskeys_folding PASSED [ 2%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accesskeys_mismatch PASSED [ 2%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_carriage_return_in_multiline_dtd PASSED [ 2%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_multiline_with_blankline PASSED [ 2%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_multiline_closing_quotes PASSED [ 2%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_preserving_spaces PASSED [ 2%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_escaping_newline_tabs PASSED [ 2%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_abandoned_accelerator PASSED [ 2%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_unassociable_accelerator PASSED [ 2%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_changed_labels_and_accelerators PASSED [ 2%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accelerator_keys_not_in_sentence XFAIL [ 2%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_exclude_entity_includes PASSED [ 2%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_linewraps PASSED [ 2%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_merging_with_new_untranslated PASSED [ 2%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_merge_without_template PASSED [ 2%] 214s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_help PASSED [ 2%] 214s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_defaults PASSED [ 2%] 214s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_root_name PASSED [ 2%] 214s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_value_name PASSED [ 2%] 214s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_key PASSED [ 2%] 214s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_default_namespace PASSED [ 2%] 214s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_namespace_prefix PASSED [ 2%] 214s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_all_parameters PASSED [ 2%] 214s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_empty_file_is_empty_store PASSED [ 2%] 214s tests/translate/convert/test_flatxml2po.py::TestFlatXML2POCommand::test_help PASSED [ 2%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_extract_lang_attribute_from_html_tag PASSED [ 2%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_do_not_extract_lang_attribute_from_tags_other_than_html PASSED [ 2%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_title PASSED [ 2%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_title_with_linebreak PASSED [ 2%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta PASSED [ 2%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p PASSED [ 2%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_br PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_linebreak PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_linebreak_and_embedded_br PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_uppercase_html PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_div PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_div_with_linebreaks PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_a PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_a_with_linebreak PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_sequence_of_anchor_elements PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_img PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_img_empty PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_img_inside_a PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_table_summary PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_simple PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_complex PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_empty PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_address PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_headings PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_headings_with_linebreaks PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_dt PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_dd PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_span PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_ul PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_nested_lists PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_duplicates PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_multiline_reflow PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_nested_tags PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_carriage_return PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_encoding_latin1 PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_strip_html PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_entityrefs_in_text PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_entityrefs_in_attributes PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_charrefs PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_multiple_php PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php_multiline PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php_with_embedded_html PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_comments PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_attribute_without_value PASSED [ 3%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_data_translate_ignore_attribute PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_translate_comment_directives PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta_social_media_tags PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta_non_translatable_tags_not_extracted PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta_mixed_translatable_and_non_translatable PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_data_translate_comment_attribute PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_data_translate_comment_without_keepcomments PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2PO::test_text_after_empty_tags PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_extract_lang_attribute_from_html_tag PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_do_not_extract_lang_attribute_from_tags_other_than_html PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_title PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_title_with_linebreak PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_br PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_linebreak PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_linebreak_and_embedded_br PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_uppercase_html PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_div PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_div_with_linebreaks PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_a PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_a_with_linebreak PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_sequence_of_anchor_elements PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_img PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_img_empty PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_img_inside_a PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_table_summary PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_simple PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_complex PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_empty PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_address PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_headings PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_headings_with_linebreaks PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_dt PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_dd PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_span PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_ul PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_nested_lists PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_duplicates PASSED [ 4%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multiline_reflow PASSED [ 5%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_nested_tags PASSED [ 5%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_carriage_return PASSED [ 5%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_encoding_latin1 PASSED [ 5%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_strip_html PASSED [ 5%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_entityrefs_in_text PASSED [ 5%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_entityrefs_in_attributes PASSED [ 5%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_charrefs PASSED [ 5%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php PASSED [ 5%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multiple_php PASSED [ 5%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php_multiline PASSED [ 5%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php_with_embedded_html PASSED [ 5%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_comments PASSED [ 5%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_attribute_without_value PASSED [ 5%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_data_translate_ignore_attribute PASSED [ 5%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_translate_comment_directives PASSED [ 5%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta_social_media_tags PASSED [ 5%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta_non_translatable_tags_not_extracted PASSED [ 5%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta_mixed_translatable_and_non_translatable PASSED [ 5%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_data_translate_comment_attribute PASSED [ 5%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_data_translate_comment_without_keepcomments PASSED [ 5%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_text_after_empty_tags PASSED [ 5%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_help PASSED [ 5%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_single PASSED [ 5%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_onefile PASSED [ 5%] 214s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_onefile_to_stdout PASSED [ 5%] 214s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_convert_empty_file PASSED [ 5%] 214s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_no_translations PASSED [ 5%] 214s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_summary PASSED [ 5%] 214s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_description PASSED [ 5%] 214s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_location PASSED [ 5%] 214s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_comment PASSED [ 5%] 214s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_no_template_duplicate_style PASSED [ 5%] 214s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge PASSED [ 5%] 214s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_misaligned_files PASSED [ 5%] 214s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_blank_msgstr PASSED [ 5%] 214s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_duplicate_style PASSED [ 5%] 214s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_convert_empty_file PASSED [ 5%] 214s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_no_translations PASSED [ 5%] 214s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_summary PASSED [ 6%] 214s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_description PASSED [ 6%] 214s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_location PASSED [ 6%] 214s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_comment PASSED [ 6%] 214s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_no_template_duplicate_style PASSED [ 6%] 214s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge PASSED [ 6%] 214s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_misaligned_files PASSED [ 6%] 214s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_blank_msgstr PASSED [ 6%] 214s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_duplicate_style PASSED [ 6%] 214s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_help PASSED [ 6%] 214s tests/translate/convert/test_idml2po.py::TestIDML2POCommand::test_help PASSED [ 6%] 214s tests/translate/convert/test_idml2po.py::TestIDML2POCommand::test_convert PASSED [ 6%] 214s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_empty_file PASSED [ 6%] 214s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_no_translation PASSED [ 6%] 214s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_simple PASSED [ 6%] 214s tests/translate/convert/test_ini2po.py::TestIni2PO::test_no_duplicates PASSED [ 6%] 214s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_simple PASSED [ 6%] 214s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_misaligned_files PASSED [ 6%] 214s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_blank_msgstr PASSED [ 6%] 214s tests/translate/convert/test_ini2po.py::TestIni2PO::test_dialects_inno PASSED [ 6%] 214s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_empty_file PASSED [ 6%] 214s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_no_translation PASSED [ 6%] 214s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_simple PASSED [ 6%] 214s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_no_duplicates PASSED [ 6%] 214s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_simple PASSED [ 6%] 214s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_misaligned_files PASSED [ 6%] 214s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_blank_msgstr PASSED [ 6%] 214s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_dialects_inno PASSED [ 6%] 214s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_help PASSED [ 6%] 214s tests/translate/convert/test_json2po.py::TestJson2PO::test_simple PASSED [ 6%] 214s tests/translate/convert/test_json2po.py::TestJson2PO::test_three_same_keys PASSED [ 6%] 214s tests/translate/convert/test_json2po.py::TestJson2PO::test_filter PASSED [ 6%] 214s tests/translate/convert/test_json2po.py::TestJson2PO::test_multiple_units PASSED [ 6%] 214s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_simple PASSED [ 6%] 214s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_three_same_keys PASSED [ 6%] 214s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_filter PASSED [ 6%] 214s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_multiple_units PASSED [ 6%] 214s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_help PASSED [ 6%] 214s tests/translate/convert/test_md2po.py::TestMD2PO::test_help PASSED [ 6%] 214s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_file_with_multifile_single PASSED [ 7%] 214s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_file_with_multifile_onefile PASSED [ 7%] 214s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_directory_with_multifile_single PASSED [ 7%] 214s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_directory_with_multifile_onefile PASSED [ 7%] 214s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_frontmatter PASSED [ 7%] 214s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_translation_ignore_sections PASSED [ 7%] 214s tests/translate/convert/test_moz2po.py::TestMoz2PO::test_duplicate_locations PASSED [ 7%] 214s tests/translate/convert/test_moz2po.py::TestMoz2POCommand::test_duplicate_locations PASSED [ 7%] 214s tests/translate/convert/test_moz2po.py::TestMoz2POCommand::test_help PASSED [ 7%] 214s tests/translate/convert/test_mozfunny2prop.py::TestInc2PO::test_simpleentry PASSED [ 7%] 214s tests/translate/convert/test_mozfunny2prop.py::TestInc2PO::test_uncomment_contributors PASSED [ 7%] 214s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_convert_empty PASSED [ 7%] 214s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_string PASSED [ 7%] 214s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_merge PASSED [ 7%] 214s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_entry PASSED [ 7%] 214s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_comment PASSED [ 7%] 214s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_meta_tags PASSED [ 7%] 214s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_keep_duplicates PASSED [ 7%] 214s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_drop_duplicates PASSED [ 7%] 214s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_convert_empty PASSED [ 7%] 214s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_string PASSED [ 7%] 214s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_merge PASSED [ 7%] 214s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_entry PASSED [ 7%] 214s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_comment PASSED [ 7%] 214s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_meta_tags PASSED [ 7%] 214s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_keep_duplicates PASSED [ 7%] 214s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_drop_duplicates PASSED [ 7%] 214s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_help PASSED [ 7%] 214s tests/translate/convert/test_ods2xliff.py::TestODF2XLIFFCommand::test_help PASSED [ 7%] 214s tests/translate/convert/test_ods2xliff.py::TestODF2XLIFFCommand::test_convert PASSED [ 7%] 214s tests/translate/convert/test_oo2po.py::TestOO2PO::test_simpleentity PASSED [ 7%] 214s tests/translate/convert/test_oo2po.py::TestOO2PO::test_escapes PASSED [ 7%] 214s tests/translate/convert/test_oo2po.py::TestOO2PO::test_roundtrip_escape PASSED [ 7%] 214s tests/translate/convert/test_oo2po.py::TestOO2PO::test_roundtrip_whitespaceonly PASSED [ 7%] 214s tests/translate/convert/test_oo2po.py::TestOO2PO::test_double_escapes PASSED [ 7%] 214s tests/translate/convert/test_oo2po.py::TestOO2PO::test_escapes_helpcontent2 PASSED [ 7%] 214s tests/translate/convert/test_oo2po.py::TestOO2PO::test_msgid_bug_error_address PASSED [ 7%] 214s tests/translate/convert/test_oo2po.py::TestOO2PO::test_x_comment_inclusion PASSED [ 7%] 214s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simpleentity PASSED [ 7%] 214s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_escapes PASSED [ 8%] 214s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_roundtrip_escape PASSED [ 8%] 214s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_roundtrip_whitespaceonly PASSED [ 8%] 214s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_double_escapes PASSED [ 8%] 214s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_escapes_helpcontent2 PASSED [ 8%] 214s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_msgid_bug_error_address PASSED [ 8%] 214s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_x_comment_inclusion PASSED [ 8%] 214s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_help PASSED [ 8%] 214s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_preserve_filename PASSED [ 8%] 214s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_pot PASSED [ 8%] 214s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_po PASSED [ 8%] 214s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_onefile_nonrecursive PASSED [ 8%] 214s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_remove_duplicates PASSED [ 8%] 214s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_simpleentity PASSED [ 8%] 214s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_escapes PASSED [ 8%] 214s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_roundtrip_escape PASSED [ 8%] 214s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_roundtrip_whitespaceonly PASSED [ 8%] 214s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_double_escapes PASSED [ 8%] 214s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_escapes_helpcontent2 PASSED [ 8%] 214s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_x_comment_inclusion PASSED [ 8%] 214s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_msgid_bug_error_address PASSED [ 8%] 214s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simpleentity PASSED [ 8%] 214s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_escapes PASSED [ 8%] 214s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_roundtrip_escape PASSED [ 8%] 214s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_roundtrip_whitespaceonly PASSED [ 8%] 214s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_double_escapes PASSED [ 8%] 214s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_escapes_helpcontent2 PASSED [ 8%] 214s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_x_comment_inclusion PASSED [ 8%] 214s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_msgid_bug_error_address PASSED [ 8%] 214s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_help PASSED [ 8%] 214s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_preserve_filename PASSED [ 8%] 214s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_xlf PASSED [ 8%] 214s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_po PASSED [ 8%] 214s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_onefile_nonrecursive PASSED [ 8%] 214s tests/translate/convert/test_php2po.py::TestPhp2PO::test_simpleentry PASSED [ 8%] 214s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphp PASSED [ 8%] 214s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphptemplate PASSED [ 8%] 214s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphpmissing PASSED [ 8%] 214s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphpempty PASSED [ 8%] 214s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unicode PASSED [ 9%] 214s tests/translate/convert/test_php2po.py::TestPhp2PO::test_multiline PASSED [ 9%] 214s tests/translate/convert/test_php2po.py::TestPhp2PO::test_comments_before PASSED [ 9%] 214s tests/translate/convert/test_php2po.py::TestPhp2PO::test_emptyentry PASSED [ 9%] 214s tests/translate/convert/test_php2po.py::TestPhp2PO::test_hash_comment_with_equals PASSED [ 9%] 214s tests/translate/convert/test_php2po.py::TestPhp2PO::test_emptyentry_translated PASSED [ 9%] 214s tests/translate/convert/test_php2po.py::TestPhp2PO::test_newlines_in_value PASSED [ 9%] 214s tests/translate/convert/test_php2po.py::TestPhp2PO::test_spaces_in_name PASSED [ 9%] 214s tests/translate/convert/test_php2po.py::TestPhp2PO::test_named_array PASSED [ 9%] 214s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unnamed_array PASSED [ 9%] 214s tests/translate/convert/test_php2po.py::TestPhp2PO::test_named_nested_arrays PASSED [ 9%] 214s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unnamed_nested_arrays PASSED [ 9%] 215s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_simpleentry PASSED [ 9%] 215s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphp PASSED [ 9%] 215s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphptemplate PASSED [ 9%] 215s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphpmissing PASSED [ 9%] 215s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphpempty PASSED [ 9%] 215s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unicode PASSED [ 9%] 215s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_multiline PASSED [ 9%] 215s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_comments_before PASSED [ 9%] 215s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_emptyentry PASSED [ 9%] 215s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_hash_comment_with_equals PASSED [ 9%] 215s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_emptyentry_translated PASSED [ 9%] 215s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_newlines_in_value PASSED [ 9%] 215s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_spaces_in_name PASSED [ 9%] 215s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_named_array PASSED [ 9%] 215s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unnamed_array PASSED [ 9%] 215s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_named_nested_arrays PASSED [ 9%] 215s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unnamed_nested_arrays PASSED [ 9%] 215s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_help PASSED [ 9%] 215s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_simpleentity PASSED [ 9%] 215s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_multiline PASSED [ 9%] 215s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapednewlines PASSED [ 9%] 215s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedtabs PASSED [ 9%] 215s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedquotes PASSED [ 9%] 215s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedescape PASSED [ 9%] 215s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_singlequotes PASSED [ 9%] 215s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_empties PASSED [ 9%] 215s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_kdecomments PASSED [ 9%] 215s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_simpleentity PASSED [ 10%] 215s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_multiline PASSED [ 10%] 215s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapednewlines PASSED [ 10%] 215s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedtabs PASSED [ 10%] 215s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedquotes PASSED [ 10%] 215s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedescape PASSED [ 10%] 215s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_singlequotes PASSED [ 10%] 215s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_empties PASSED [ 10%] 215s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_kdecomments PASSED [ 10%] 215s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_help PASSED [ 10%] 215s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder PASSED [ 10%] 215s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_context PASSED [ 10%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_joinlines PASSED [ 10%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_escapedstr PASSED [ 10%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_missingaccesskey PASSED [ 10%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskeycase PASSED [ 10%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_types PASSED [ 10%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing PASSED [ 10%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey PASSED [ 10%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_source_no_amp_in_target PASSED [ 10%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_both_amp_and_accesskey PASSED [ 10%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey PASSED [ 10%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_entities_two PASSED [ 10%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_entities PASSED [ 10%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_comments_translator PASSED [ 10%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_retains_hashprefix PASSED [ 10%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_convertdtd PASSED [ 10%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_untranslated_with_template PASSED [ 10%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_untranslated_without_template PASSED [ 10%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_blank_source PASSED [ 10%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_newlines_escapes PASSED [ 10%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_simple PASSED [ 10%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_escape PASSED [ 10%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_quotes PASSED [ 10%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_amp PASSED [ 10%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_merging_entries_with_spaces_removed PASSED [ 10%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_preserving_spaces PASSED [ 10%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_preserving_spaces_after_value PASSED [ 10%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_comments PASSED [ 10%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_duplicates PASSED [ 11%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_joinlines PASSED [ 11%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_escapedstr PASSED [ 11%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_missingaccesskey PASSED [ 11%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskeycase PASSED [ 11%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_types PASSED [ 11%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing PASSED [ 11%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey PASSED [ 11%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_source_no_amp_in_target PASSED [ 11%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_both_amp_and_accesskey PASSED [ 11%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_amp_no_accesskey PASSED [ 11%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_entities_two PASSED [ 11%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_entities PASSED [ 11%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_comments_translator PASSED [ 11%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_retains_hashprefix PASSED [ 11%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_convertdtd PASSED [ 11%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_untranslated_with_template PASSED [ 11%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_untranslated_without_template PASSED [ 11%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_blank_source PASSED [ 11%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_newlines_escapes PASSED [ 11%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_simple PASSED [ 11%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_escape PASSED [ 11%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_quotes PASSED [ 11%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_amp PASSED [ 11%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_merging_entries_with_spaces_removed PASSED [ 11%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_preserving_spaces PASSED [ 11%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_preserving_spaces_after_value PASSED [ 11%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_comments PASSED [ 11%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_duplicates PASSED [ 11%] 215s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_help PASSED [ 11%] 215s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_defaults PASSED [ 11%] 215s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_root_name PASSED [ 11%] 215s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_value_name PASSED [ 11%] 215s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_key PASSED [ 11%] 215s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_default_namespace PASSED [ 11%] 215s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_namespace_prefix PASSED [ 11%] 215s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_indent_eight PASSED [ 11%] 215s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_noindent PASSED [ 11%] 215s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXMLCommand::test_help PASSED [ 11%] 215s tests/translate/convert/test_po2html.py::TestPO2Html::test_simple PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2Html::test_linebreaks PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2Html::test_replace_substrings PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_outside_translatable_content PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_within_translatable_content_not_embedded PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_embedded_within_translatable_content PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_without_value PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2Html::test_entities PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2Html::test_entities_template_vs_po_mismatch PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2Html::test_utf8_non_ascii_characters PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2Html::test_custom_entities_preserved PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2Html::test_escapes PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_auto_rtl PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_auto_ltr PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_added_when_missing PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_not_changed_without_lang_translation PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_translated PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_untranslated PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_fuzzy PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2Html::test_untranslated_attributes PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2Html::test_button_translation PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2Html::test_lang_attribute_only_on_html_tag PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2Html::test_data_translate_ignore_preserved PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2Html::test_translate_comment_directives_preserved PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2Html::test_data_translate_ignore_with_translation_in_po PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2Html::test_translate_comment_with_translation_in_po PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2Html::test_meta_social_media_tags_translation PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2Html::test_meta_non_translatable_tags_preserved PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_simple PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_linebreaks PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_replace_substrings PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_outside_translatable_content PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_within_translatable_content_not_embedded PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_embedded_within_translatable_content PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_without_value PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_entities PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_entities_template_vs_po_mismatch PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_utf8_non_ascii_characters PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_custom_entities_preserved PASSED [ 12%] 215s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_escapes PASSED [ 13%] 215s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_auto_rtl PASSED [ 13%] 215s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_auto_ltr PASSED [ 13%] 215s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_added_when_missing PASSED [ 13%] 215s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_not_changed_without_lang_translation PASSED [ 13%] 215s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_translated PASSED [ 13%] 215s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_untranslated PASSED [ 13%] 215s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_fuzzy PASSED [ 13%] 215s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_untranslated_attributes PASSED [ 13%] 215s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_button_translation PASSED [ 13%] 215s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_lang_attribute_only_on_html_tag PASSED [ 13%] 215s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_data_translate_ignore_preserved PASSED [ 13%] 215s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_translate_comment_directives_preserved PASSED [ 13%] 215s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_data_translate_ignore_with_translation_in_po PASSED [ 13%] 215s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_translate_comment_with_translation_in_po PASSED [ 13%] 215s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_meta_social_media_tags_translation PASSED [ 13%] 215s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_meta_non_translatable_tags_preserved PASSED [ 13%] 215s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_help PASSED [ 13%] 215s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_individual_files PASSED [ 13%] 215s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_fully_recursive PASSED [ 13%] 215s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_input_specified PASSED [ 13%] 215s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified PASSED [ 13%] 215s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_output_specified PASSED [ 13%] 215s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file PASSED [ 13%] 215s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file_and_templates_overwritten PASSED [ 13%] 215s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_empty_file PASSED [ 13%] 215s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_summary PASSED [ 13%] 215s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_description PASSED [ 13%] 215s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_location PASSED [ 13%] 215s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_comment PASSED [ 13%] 215s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_complex_icalendar PASSED [ 13%] 215s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_skip_fuzzy PASSED [ 13%] 215s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_include_fuzzy PASSED [ 13%] 215s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_no_template PASSED [ 13%] 215s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_template_location_not_in_source_file PASSED [ 13%] 215s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_completion_below_threshold PASSED [ 13%] 215s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_completion_above_threshold PASSED [ 13%] 215s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_empty_file PASSED [ 13%] 215s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_summary PASSED [ 13%] 215s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_description PASSED [ 14%] 215s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_location PASSED [ 14%] 215s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_comment PASSED [ 14%] 215s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_complex_icalendar PASSED [ 14%] 215s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_skip_fuzzy PASSED [ 14%] 215s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_include_fuzzy PASSED [ 14%] 215s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_no_template PASSED [ 14%] 215s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_template_location_not_in_source_file PASSED [ 14%] 215s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_completion_below_threshold PASSED [ 14%] 215s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_completion_above_threshold PASSED [ 14%] 215s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_help PASSED [ 14%] 215s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_help PASSED [ 14%] 215s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_convert PASSED [ 14%] 215s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_no_templates PASSED [ 14%] 215s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_simple PASSED [ 14%] 215s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_space_preservation PASSED [ 14%] 215s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_blank_entries PASSED [ 14%] 215s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_fuzzy PASSED [ 14%] 215s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_propertyless_template PASSED [ 14%] 215s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_empty_value PASSED [ 14%] 215s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_dialects_inno PASSED [ 14%] 215s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_misaligned_files PASSED [ 14%] 215s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_completion_below_threshold PASSED [ 14%] 215s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_completion_above_threshold PASSED [ 14%] 215s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_no_fuzzy PASSED [ 14%] 215s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_allow_fuzzy PASSED [ 14%] 215s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_missing_source PASSED [ 14%] 215s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_repeated_locations PASSED [ 14%] 215s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_no_templates PASSED [ 14%] 215s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_simple PASSED [ 14%] 215s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_space_preservation PASSED [ 14%] 215s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_blank_entries PASSED [ 14%] 215s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_fuzzy PASSED [ 14%] 215s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_propertyless_template PASSED [ 14%] 215s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_empty_value PASSED [ 14%] 215s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_dialects_inno PASSED [ 14%] 215s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_misaligned_files PASSED [ 14%] 215s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_completion_below_threshold PASSED [ 14%] 215s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_completion_above_threshold PASSED [ 14%] 215s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_no_fuzzy PASSED [ 15%] 215s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_allow_fuzzy PASSED [ 15%] 215s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_missing_source PASSED [ 15%] 215s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_repeated_locations PASSED [ 15%] 215s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_help PASSED [ 15%] 215s tests/translate/convert/test_po2json.py::TestPO2JSON::test_basic PASSED [ 15%] 215s tests/translate/convert/test_po2json.py::TestPO2JSON::test_ordering_serialize PASSED [ 15%] 215s tests/translate/convert/test_po2json.py::TestPO2JSON::test_dont_use_empty_translation PASSED [ 15%] 215s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_false_remove_untranslated_false PASSED [ 15%] 215s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_false_remove_untranslated_true PASSED [ 15%] 215s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_true_remove_untranslated_false PASSED [ 15%] 215s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_true_remove_untranslated_true PASSED [ 15%] 215s tests/translate/convert/test_po2md.py::TestPO2MD::test_help PASSED [ 15%] 215s tests/translate/convert/test_po2md.py::TestPO2MD::test_single_markdown_file_with_single_po PASSED [ 15%] 215s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_with_single_po PASSED [ 15%] 215s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_and_directory_of_po_files PASSED [ 15%] 215s tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_table XFAIL [ 15%] 215s tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_frontmatter PASSED [ 15%] 215s tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_translation_ignore_sections PASSED [ 15%] 215s tests/translate/convert/test_po2moz.py::TestPO2MozCommand::test_help PASSED [ 15%] 215s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_empty PASSED [ 15%] 215s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_simple PASSED [ 15%] 215s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_comment PASSED [ 15%] 215s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_ok_marker PASSED [ 15%] 215s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_completion_below_threshold PASSED [ 15%] 215s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_completion_above_threshold PASSED [ 15%] 215s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_skip_non_translatable_input PASSED [ 15%] 215s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_no_fuzzy PASSED [ 15%] 215s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_allow_fuzzy PASSED [ 15%] 215s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_mark_active PASSED [ 15%] 215s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_empty PASSED [ 15%] 215s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_simple PASSED [ 15%] 215s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_comment PASSED [ 15%] 215s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_ok_marker PASSED [ 15%] 215s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_completion_below_threshold PASSED [ 15%] 215s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_completion_above_threshold PASSED [ 15%] 215s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_skip_non_translatable_input PASSED [ 15%] 215s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_no_fuzzy PASSED [ 15%] 215s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_allow_fuzzy PASSED [ 15%] 215s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_mark_active PASSED [ 16%] 215s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_help PASSED [ 16%] 215s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_help PASSED [ 16%] 215s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert PASSED [ 16%] 215s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert_with_multiple_units PASSED [ 16%] 215s tests/translate/convert/test_po2oo.py::TestPO2OO::test_convertoo PASSED [ 16%] 215s tests/translate/convert/test_po2oo.py::TestPO2OO::test_pofilter PASSED [ 16%] 215s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_simple PASSED [ 16%] 215s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_escape PASSED [ 16%] 215s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_quotes PASSED [ 16%] 215s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_spaces PASSED [ 16%] 215s tests/translate/convert/test_po2oo.py::TestPO2OO::test_default_timestamp PASSED [ 16%] 215s tests/translate/convert/test_po2oo.py::TestPO2OO::test_escape_conversion PASSED [ 16%] 215s tests/translate/convert/test_po2oo.py::TestPO2OO::test_helpcontent_escapes PASSED [ 16%] 215s tests/translate/convert/test_po2oo.py::TestPO2OO::test_helpcontent_escapes2 PASSED [ 16%] 215s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_convertoo PASSED [ 16%] 215s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_pofilter PASSED [ 16%] 215s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_simple PASSED [ 16%] 215s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_escape PASSED [ 16%] 215s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_quotes PASSED [ 16%] 215s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_spaces PASSED [ 16%] 215s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_default_timestamp PASSED [ 16%] 215s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_escape_conversion PASSED [ 16%] 215s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_helpcontent_escapes PASSED [ 16%] 215s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_helpcontent_escapes2 PASSED [ 16%] 215s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_help PASSED [ 16%] 215s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp PASSED [ 16%] 215s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp_notemplate PASSED [ 16%] 215s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp_empty_template PASSED [ 16%] 215s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_simple PASSED [ 16%] 215s tests/translate/convert/test_po2php.py::TestPO2Php::test_space_preservation PASSED [ 16%] 215s tests/translate/convert/test_po2php.py::TestPO2Php::test_preserve_unused_statement PASSED [ 16%] 215s tests/translate/convert/test_po2php.py::TestPO2Php::test_not_translated_multiline PASSED [ 16%] 215s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_blank_entries PASSED [ 16%] 215s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_fuzzy PASSED [ 16%] 215s tests/translate/convert/test_po2php.py::TestPO2Php::test_locations_with_spaces PASSED [ 16%] 215s tests/translate/convert/test_po2php.py::TestPO2Php::test_inline_comments PASSED [ 16%] 215s tests/translate/convert/test_po2php.py::TestPO2Php::test_block_comments PASSED [ 16%] 215s tests/translate/convert/test_po2php.py::TestPO2Php::test_named_variables PASSED [ 16%] 215s tests/translate/convert/test_po2php.py::TestPO2Php::test_multiline PASSED [ 17%] 215s tests/translate/convert/test_po2php.py::TestPO2Php::test_hash_comment PASSED [ 17%] 215s tests/translate/convert/test_po2php.py::TestPO2Php::test_arrays PASSED [ 17%] 215s tests/translate/convert/test_po2php.py::TestPO2Php::test_named_nested_array PASSED [ 17%] 215s tests/translate/convert/test_po2php.py::TestPO2Php::test_unnamed_nested_arrays PASSED [ 17%] 215s tests/translate/convert/test_po2php.py::TestPO2Php::test_return_array_with_comments PASSED [ 17%] 215s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_propertyless_template XFAIL [ 17%] 215s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp PASSED [ 17%] 215s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp_notemplate PASSED [ 17%] 215s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp_empty_template PASSED [ 17%] 215s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_simple PASSED [ 17%] 215s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_space_preservation PASSED [ 17%] 215s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_preserve_unused_statement PASSED [ 17%] 215s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_not_translated_multiline PASSED [ 17%] 215s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_blank_entries PASSED [ 17%] 215s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_fuzzy PASSED [ 17%] 215s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_locations_with_spaces PASSED [ 17%] 215s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_inline_comments PASSED [ 17%] 215s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_block_comments PASSED [ 17%] 215s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_named_variables PASSED [ 17%] 215s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_multiline PASSED [ 17%] 215s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_hash_comment PASSED [ 17%] 215s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_arrays PASSED [ 17%] 215s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_named_nested_array PASSED [ 17%] 215s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_unnamed_nested_arrays PASSED [ 17%] 216s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_return_array_with_comments PASSED [ 17%] 216s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_propertyless_template XFAIL [ 17%] 216s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_help PASSED [ 17%] 216s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_simple PASSED [ 17%] 216s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated PASSED [ 17%] 216s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_hard_newlines_preserved PASSED [ 17%] 216s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_space_preservation PASSED [ 17%] 216s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_no_value PASSED [ 17%] 216s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_no_separator PASSED [ 17%] 216s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_value_no_key PASSED [ 17%] 216s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_blank_entries PASSED [ 17%] 216s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_fuzzy PASSED [ 17%] 216s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys PASSED [ 17%] 216s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey PASSED [ 17%] 216s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_margin_whitespace PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_all_whitespace PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_propertyless_template PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_delimiters PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_empty_value PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_personalities PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_simple PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_multiline PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_multiline2 PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_comments PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_unchanged PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_blank PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_gaia_plurals PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_duplicates PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_gwt_plurals PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_utf16_with_empty_lines PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_simple PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_hard_newlines_preserved PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_space_preservation PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_no_value PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_no_separator PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_value_no_key PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_blank_entries PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_fuzzy PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys_missing_accesskey PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_margin_whitespace PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_all_whitespace PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_propertyless_template PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_delimiters PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_empty_value PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_personalities PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_simple PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_multiline PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_multiline2 PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_comments PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_unchanged PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_blank PASSED [ 18%] 216s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_gaia_plurals PASSED [ 19%] 216s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_duplicates PASSED [ 19%] 216s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_gwt_plurals PASSED [ 19%] 216s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_utf16_with_empty_lines PASSED [ 19%] 216s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_help PASSED [ 19%] 216s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_help PASSED [ 19%] 216s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert PASSED [ 19%] 216s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_quotes PASSED [ 19%] 216s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment PASSED [ 19%] 216s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment_dos_eol PASSED [ 19%] 216s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_double_string PASSED [ 19%] 216s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_popup PASSED [ 19%] 216s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_discardable PASSED [ 19%] 216s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_menuex PASSED [ 19%] 216s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_newlines PASSED [ 19%] 216s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment_after PASSED [ 19%] 216s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_block_language PASSED [ 19%] 216s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_output_encoding PASSED [ 19%] 216s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_quotes_strintable PASSED [ 19%] 216s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_simpleunit PASSED [ 19%] 216s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_basic PASSED [ 19%] 216s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_multiline PASSED [ 19%] 216s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapednewlines PASSED [ 19%] 216s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapedtabs PASSED [ 19%] 216s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapedquotes PASSED [ 19%] 216s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_exclusions PASSED [ 19%] 216s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments PASSED [ 19%] 216s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingcomment PASSED [ 19%] 216s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingduplicatecomment PASSED [ 19%] 216s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingduplicatecommentwithwhitespace PASSED [ 19%] 216s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments PASSED [ 19%] 216s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments_existingcomment PASSED [ 19%] 216s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments_existingduplicatecomment PASSED [ 19%] 216s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments PASSED [ 19%] 216s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments_existingduplicatecomment PASSED [ 19%] 216s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments_existingcomment PASSED [ 19%] 216s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_existingcomments PASSED [ 19%] 216s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_plus_in_resourcekey PASSED [ 19%] 216s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_special_chars_in_resourcekey PASSED [ 19%] 216s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_simpleunit PASSED [ 20%] 216s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_basic PASSED [ 20%] 216s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_multiline PASSED [ 20%] 216s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapednewlines PASSED [ 20%] 216s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapedtabs PASSED [ 20%] 216s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapedquotes PASSED [ 20%] 216s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_exclusions PASSED [ 20%] 216s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments PASSED [ 20%] 216s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingcomment PASSED [ 20%] 216s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingduplicatecomment PASSED [ 20%] 216s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingduplicatecommentwithwhitespace PASSED [ 20%] 216s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments PASSED [ 20%] 217s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments_existingcomment PASSED [ 20%] 217s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments_existingduplicatecomment PASSED [ 20%] 217s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments PASSED [ 20%] 217s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments_existingduplicatecomment PASSED [ 20%] 217s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments_existingcomment PASSED [ 20%] 217s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_existingcomments PASSED [ 20%] 217s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_plus_in_resourcekey PASSED [ 20%] 217s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_special_chars_in_resourcekey PASSED [ 20%] 217s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_help PASSED [ 20%] 217s tests/translate/convert/test_po2sub.py::TestPO2Sub::test_subrip PASSED [ 20%] 217s tests/translate/convert/test_po2sub.py::TestPO2SubCommand::test_subrip PASSED [ 20%] 217s tests/translate/convert/test_po2sub.py::TestPO2SubCommand::test_help PASSED [ 20%] 217s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert_empty PASSED [ 20%] 217s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert PASSED [ 20%] 217s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert_marked_untranslated PASSED [ 20%] 217s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert_empty PASSED [ 20%] 217s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert PASSED [ 20%] 217s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert_marked_untranslated PASSED [ 20%] 217s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_help PASSED [ 20%] 217s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_basic PASSED [ 20%] 217s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_sourcelanguage PASSED [ 20%] 217s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_targetlanguage PASSED [ 20%] 217s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_multiline PASSED [ 20%] 217s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapednewlines PASSED [ 20%] 217s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapedtabs PASSED [ 20%] 217s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapedquotes PASSED [ 20%] 217s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_exclusions PASSED [ 20%] 217s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_nonascii PASSED [ 21%] 217s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_nonecomments PASSED [ 21%] 217s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_otherscomments PASSED [ 21%] 217s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_sourcecomments PASSED [ 21%] 217s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_typecomments PASSED [ 21%] 217s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_basic PASSED [ 21%] 217s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_sourcelanguage PASSED [ 21%] 217s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_targetlanguage PASSED [ 21%] 217s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_multiline PASSED [ 21%] 217s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapednewlines PASSED [ 21%] 217s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapedtabs PASSED [ 21%] 217s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapedquotes PASSED [ 21%] 217s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_exclusions PASSED [ 21%] 217s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_nonascii PASSED [ 21%] 217s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_nonecomments PASSED [ 21%] 217s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_otherscomments PASSED [ 21%] 217s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_sourcecomments PASSED [ 21%] 217s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_typecomments PASSED [ 21%] 217s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_help PASSED [ 21%] 217s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_context PASSED [ 21%] 217s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_simple_convert PASSED [ 21%] 217s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_nested_convert PASSED [ 21%] 217s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_template_required PASSED [ 21%] 217s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_untranslated_uses_source PASSED [ 21%] 217s tests/translate/convert/test_po2ts.py::TestPO2TS::test_simpleunit PASSED [ 21%] 217s tests/translate/convert/test_po2ts.py::TestPO2TS::test_simple_unicode_unit PASSED [ 21%] 217s tests/translate/convert/test_po2ts.py::TestPO2TS::test_fullunit PASSED [ 21%] 217s tests/translate/convert/test_po2ts.py::TestPO2TS::test_fuzzyunit PASSED [ 21%] 217s tests/translate/convert/test_po2ts.py::TestPO2TS::test_obsolete PASSED [ 21%] 217s tests/translate/convert/test_po2ts.py::TestPO2TS::test_duplicates PASSED [ 21%] 217s tests/translate/convert/test_po2ts.py::TestPO2TS::test_linebreak PASSED [ 21%] 217s tests/translate/convert/test_po2ts.py::TestPO2TS::test_linebreak_consecutive PASSED [ 21%] 217s tests/translate/convert/test_po2ts.py::TestPO2TS::test_plural PASSED [ 21%] 217s tests/translate/convert/test_po2ts.py::TestPO2TS::test_plural_fuzzy PASSED [ 21%] 217s tests/translate/convert/test_po2ts.py::TestPO2TS::test_unit_without_location PASSED [ 21%] 217s tests/translate/convert/test_po2ts.py::TestPO2TS::test_mixed_units_with_and_without_location PASSED [ 21%] 217s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_simpleunit PASSED [ 21%] 217s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_simple_unicode_unit PASSED [ 21%] 217s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_fullunit PASSED [ 21%] 217s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_fuzzyunit PASSED [ 22%] 217s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_obsolete PASSED [ 22%] 217s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_duplicates PASSED [ 22%] 217s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_linebreak PASSED [ 22%] 217s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_linebreak_consecutive PASSED [ 22%] 217s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_plural PASSED [ 22%] 217s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_plural_fuzzy PASSED [ 22%] 217s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_unit_without_location PASSED [ 22%] 217s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_mixed_units_with_and_without_location PASSED [ 22%] 217s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_help PASSED [ 22%] 217s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_basic PASSED [ 22%] 217s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_nonascii PASSED [ 22%] 217s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_blank_handling PASSED [ 22%] 217s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_fuzzy_handling PASSED [ 22%] 217s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_obsolete_ignore PASSED [ 22%] 217s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_header_ignore PASSED [ 22%] 217s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_convert_completion_below_threshold PASSED [ 22%] 217s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_convert_completion_above_threshold PASSED [ 22%] 217s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_substring_replacement PASSED [ 22%] 217s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_duplicate_text_segment_based_replacement PASSED [ 22%] 217s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_dokuwiki_flavour_segmentation PASSED [ 22%] 217s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_basic PASSED [ 22%] 217s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_nonascii PASSED [ 22%] 217s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_blank_handling PASSED [ 22%] 217s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_fuzzy_handling PASSED [ 22%] 217s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_obsolete_ignore PASSED [ 22%] 217s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_header_ignore PASSED [ 22%] 217s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_convert_completion_below_threshold PASSED [ 22%] 217s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_convert_completion_above_threshold PASSED [ 22%] 217s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_substring_replacement PASSED [ 22%] 217s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_duplicate_text_segment_based_replacement PASSED [ 22%] 217s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_dokuwiki_flavour_segmentation PASSED [ 22%] 217s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_help PASSED [ 22%] 217s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_basic PASSED [ 22%] 217s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_unicode PASSED [ 22%] 217s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_ordering_serialize PASSED [ 22%] 217s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_markmin PASSED [ 22%] 217s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_minimal PASSED [ 22%] 217s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_basic PASSED [ 22%] 217s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_multiline PASSED [ 23%] 217s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapednewlines PASSED [ 23%] 217s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapedtabs PASSED [ 23%] 217s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapedquotes PASSED [ 23%] 217s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_locationcomments PASSED [ 23%] 217s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_othercomments PASSED [ 23%] 217s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_automaticcomments PASSED [ 23%] 217s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_header PASSED [ 23%] 217s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_fuzzy PASSED [ 23%] 217s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_germanic_plurals PASSED [ 23%] 217s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_funny_plurals PASSED [ 23%] 217s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_language_tags PASSED [ 23%] 217s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_variables PASSED [ 23%] 217s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_approved PASSED [ 23%] 217s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_empty_PO PASSED [ 23%] 217s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_no_templates PASSED [ 23%] 217s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_simple_output PASSED [ 23%] 217s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_simple PASSED [ 23%] 217s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_translated PASSED [ 23%] 217s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_no_fuzzy PASSED [ 23%] 217s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_allow_fuzzy PASSED [ 23%] 217s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_nested PASSED [ 23%] 217s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_completion_below_threshold PASSED [ 23%] 217s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_completion_above_threshold PASSED [ 23%] 217s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_empty_PO PASSED [ 23%] 217s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_no_templates PASSED [ 23%] 217s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_simple_output PASSED [ 23%] 217s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_simple PASSED [ 23%] 217s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_translated PASSED [ 23%] 217s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_no_fuzzy PASSED [ 23%] 217s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_allow_fuzzy PASSED [ 23%] 217s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_nested PASSED [ 23%] 217s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_completion_below_threshold PASSED [ 23%] 217s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_completion_above_threshold PASSED [ 23%] 217s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_help PASSED [ 23%] 217s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_convertpot_blank PASSED [ 23%] 217s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_convertpot_blank_plurals PASSED [ 23%] 217s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_simple PASSED [ 23%] 217s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_messages_marked_fuzzy PASSED [ 23%] 217s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_plurals_with_fuzzy_matching PASSED [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_change XFAIL [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_change PASSED [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_and_whitespace_change PASSED [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_ambiguous_with_disambiguous PASSED [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_accelerator_changes XFAIL [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_lines_cut_differently XFAIL [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_automatic_comments_dont_duplicate PASSED [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_automatic_comments_new_overrides_old PASSED [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_comments_with_blank_comment_lines PASSED [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_empty_commentlines PASSED [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgidcomments PASSED [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_with_msgidcomment PASSED [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_plurals PASSED [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_obsoleting_messages PASSED [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_not_obsoleting_empty_messages PASSED [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_new_before_obsolete PASSED [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_resurrect_obsolete_messages PASSED [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_resurrect_obsolete_messages_into_msgidcomment PASSED [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_header_initialisation PASSED [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_comments PASSED [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_typecomments PASSED [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgctxt PASSED [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgctxt_multiline PASSED [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgid_merge_on_location PASSED [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgid_merge_on_id PASSED [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_empty_msgid PASSED [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_migrate_msgidcomment_to_msgctxt PASSED [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_obsolete_msgctxt PASSED [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_small_strings PASSED [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_convertpot_blank PASSED [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_convertpot_blank_plurals PASSED [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_simple PASSED [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_messages_marked_fuzzy PASSED [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_plurals_with_fuzzy_matching PASSED [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_change XFAIL [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_change PASSED [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_and_whitespace_change PASSED [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_ambiguous_with_disambiguous PASSED [ 24%] 217s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_accelerator_changes XFAIL [ 25%] 217s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_lines_cut_differently XFAIL [ 25%] 217s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_automatic_comments_dont_duplicate PASSED [ 25%] 217s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_automatic_comments_new_overrides_old PASSED [ 25%] 217s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_comments_with_blank_comment_lines PASSED [ 25%] 217s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_empty_commentlines PASSED [ 25%] 217s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgidcomments PASSED [ 25%] 217s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_with_msgidcomment PASSED [ 25%] 217s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_plurals PASSED [ 25%] 217s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_obsoleting_messages PASSED [ 25%] 217s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_not_obsoleting_empty_messages PASSED [ 25%] 217s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_new_before_obsolete PASSED [ 25%] 217s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_resurrect_obsolete_messages PASSED [ 25%] 217s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_resurrect_obsolete_messages_into_msgidcomment PASSED [ 25%] 217s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_header_initialisation PASSED [ 25%] 217s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_comments PASSED [ 25%] 217s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_typecomments PASSED [ 25%] 217s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgctxt PASSED [ 25%] 217s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgctxt_multiline PASSED [ 25%] 217s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgid_merge_on_location PASSED [ 25%] 217s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgid_merge_on_id PASSED [ 25%] 217s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_empty_msgid PASSED [ 25%] 217s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_migrate_msgidcomment_to_msgctxt PASSED [ 25%] 217s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_obsolete_msgctxt PASSED [ 25%] 217s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_small_strings PASSED [ 25%] 217s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_help PASSED [ 25%] 217s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_no_endlines_added PASSED [ 25%] 217s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_uncomment_contributors PASSED [ 25%] 217s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_multiline_comment_newlines PASSED [ 25%] 217s tests/translate/convert/test_prop2po.py::TestProp2PO::test_simpleentry PASSED [ 25%] 217s tests/translate/convert/test_prop2po.py::TestProp2PO::test_convertprop PASSED [ 25%] 217s tests/translate/convert/test_prop2po.py::TestProp2PO::test_no_value_entry PASSED [ 25%] 217s tests/translate/convert/test_prop2po.py::TestProp2PO::test_no_separator_entry PASSED [ 25%] 217s tests/translate/convert/test_prop2po.py::TestProp2PO::test_value_no_key_entry PASSED [ 25%] 217s tests/translate/convert/test_prop2po.py::TestProp2PO::test_tab_at_end_of_string PASSED [ 25%] 217s tests/translate/convert/test_prop2po.py::TestProp2PO::test_tab_at_start_of_value PASSED [ 25%] 217s tests/translate/convert/test_prop2po.py::TestProp2PO::test_unicode PASSED [ 25%] 217s tests/translate/convert/test_prop2po.py::TestProp2PO::test_multiline_escaping PASSED [ 25%] 217s tests/translate/convert/test_prop2po.py::TestProp2PO::test_comments PASSED [ 25%] 217s tests/translate/convert/test_prop2po.py::TestProp2PO::test_multiline_comments PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2PO::test_folding_accesskeys PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2PO::test_dont_translate PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2PO::test_duplicate_locations_mozilla PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2PO::test_emptyproperty PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2PO::test_emptyproperty_translated PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2PO::test_newlines_in_value PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2PO::test_header_comments PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2PO::test_unassociated_comment_order PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2PO::test_x_header PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2PO::test_gaia_plurals PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2PO::test_successive_gaia_plurals PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2PO::test_duplicate_keys PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2PO::test_gwt_plurals PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2PO::test_strings_bilingual_simple PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2PO::test_strings_bilingual_multiline PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_simpleentry PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_convertprop PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_no_value_entry PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_no_separator_entry PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_value_no_key_entry PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_tab_at_end_of_string PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_tab_at_start_of_value PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_unicode PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_multiline_escaping PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_comments PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_multiline_comments PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_folding_accesskeys PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_dont_translate PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_duplicate_locations_mozilla PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_emptyproperty PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_emptyproperty_translated PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_newlines_in_value PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_header_comments PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_unassociated_comment_order PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_x_header PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_gaia_plurals PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_successive_gaia_plurals PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_duplicate_keys PASSED [ 26%] 217s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_gwt_plurals PASSED [ 27%] 217s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_strings_bilingual_simple PASSED [ 27%] 217s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_strings_bilingual_multiline PASSED [ 27%] 217s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_help PASSED [ 27%] 217s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_help PASSED [ 27%] 217s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert PASSED [ 27%] 217s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf16 PASSED [ 27%] 217s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong PASSED [ 27%] 217s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf8 PASSED [ 27%] 217s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_menuex PASSED [ 27%] 217s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_simple PASSED [ 27%] 217s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_multiple_units PASSED [ 27%] 217s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_automaticcomments PASSED [ 27%] 217s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_translatorcomments PASSED [ 27%] 217s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_locations PASSED [ 27%] 217s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple PASSED [ 27%] 217s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_multiple_units PASSED [ 27%] 217s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_automaticcomments PASSED [ 27%] 217s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_translatorcomments PASSED [ 27%] 217s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_locations PASSED [ 27%] 217s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_help PASSED [ 27%] 217s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_pot PASSED [ 27%] 217s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_po PASSED [ 27%] 217s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_remove_duplicates PASSED [ 27%] 217s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_convert_empty PASSED [ 27%] 217s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_converttiki_defaults PASSED [ 27%] 217s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_converttiki_includeunused PASSED [ 27%] 217s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_convert_empty PASSED [ 27%] 217s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_converttiki_defaults PASSED [ 27%] 217s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_converttiki_includeunused PASSED [ 27%] 217s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_help PASSED [ 27%] 217s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_simple_convert PASSED [ 27%] 217s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_nested_convert PASSED [ 27%] 217s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_comment_extraction PASSED [ 27%] 217s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_merge_with_template PASSED [ 27%] 217s tests/translate/convert/test_ts2po.py::TestTS2PO::test_blank PASSED [ 27%] 217s tests/translate/convert/test_ts2po.py::TestTS2PO::test_basic PASSED [ 27%] 217s tests/translate/convert/test_ts2po.py::TestTS2PO::test_unfinished PASSED [ 27%] 217s tests/translate/convert/test_ts2po.py::TestTS2PO::test_multiline PASSED [ 27%] 217s tests/translate/convert/test_ts2po.py::TestTS2PO::test_obsolete PASSED [ 28%] 217s tests/translate/convert/test_ts2po.py::TestTS2PO::test_comment PASSED [ 28%] 217s tests/translate/convert/test_ts2po.py::TestTS2PO::test_extracomment PASSED [ 28%] 217s tests/translate/convert/test_ts2po.py::TestTS2PO::test_emptycontext PASSED [ 28%] 217s tests/translate/convert/test_ts2po.py::TestTS2PO::test_plural PASSED [ 28%] 217s tests/translate/convert/test_ts2po.py::TestTS2PO::test_plural_unfinished PASSED [ 28%] 218s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_blank PASSED [ 28%] 218s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_basic PASSED [ 28%] 218s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_unfinished PASSED [ 28%] 218s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_multiline PASSED [ 28%] 218s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_obsolete PASSED [ 28%] 218s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_comment PASSED [ 28%] 218s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_extracomment PASSED [ 28%] 218s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_emptycontext PASSED [ 28%] 218s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_plural PASSED [ 28%] 218s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_plural_unfinished PASSED [ 28%] 218s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_help PASSED [ 28%] 218s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_convert_empty PASSED [ 28%] 218s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_keep_duplicates PASSED [ 28%] 218s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_drop_duplicates PASSED [ 28%] 218s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_simple PASSED [ 28%] 218s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_multiple_units PASSED [ 28%] 218s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_carriage_return PASSED [ 28%] 218s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_merge PASSED [ 28%] 218s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_no_segmentation PASSED [ 28%] 218s tests/translate/convert/test_txt2po.py::TestDoku2po::test_convert_empty PASSED [ 28%] 218s tests/translate/convert/test_txt2po.py::TestDoku2po::test_keep_duplicates PASSED [ 28%] 218s tests/translate/convert/test_txt2po.py::TestDoku2po::test_drop_duplicates PASSED [ 28%] 218s tests/translate/convert/test_txt2po.py::TestDoku2po::test_basic PASSED [ 28%] 218s tests/translate/convert/test_txt2po.py::TestDoku2po::test_bullet_list PASSED [ 28%] 218s tests/translate/convert/test_txt2po.py::TestDoku2po::test_numbered_list PASSED [ 28%] 218s tests/translate/convert/test_txt2po.py::TestDoku2po::test_spacing PASSED [ 28%] 218s tests/translate/convert/test_txt2po.py::TestDoku2po::test_merge PASSED [ 28%] 218s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_convert_empty PASSED [ 28%] 218s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_keep_duplicates PASSED [ 28%] 218s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_drop_duplicates PASSED [ 28%] 218s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_simple PASSED [ 28%] 218s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_multiple_units PASSED [ 28%] 218s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_carriage_return PASSED [ 28%] 218s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_merge PASSED [ 29%] 218s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_no_segmentation PASSED [ 29%] 218s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_help PASSED [ 29%] 218s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_basic PASSED [ 29%] 218s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_unicode PASSED [ 29%] 218s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_markmin PASSED [ 29%] 218s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_help PASSED [ 29%] 218s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert PASSED [ 29%] 218s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_minimal PASSED [ 29%] 218s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_basic PASSED [ 29%] 218s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_translatorcomments PASSED [ 29%] 218s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_autocomment PASSED [ 29%] 218s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_locations PASSED [ 29%] 218s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_fuzzy PASSED [ 29%] 218s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_plurals PASSED [ 29%] 218s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_minimal PASSED [ 29%] 218s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_basic PASSED [ 29%] 218s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_translatorcomments PASSED [ 29%] 218s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_autocomment PASSED [ 29%] 218s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_locations PASSED [ 29%] 218s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_fuzzy PASSED [ 29%] 218s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_plurals PASSED [ 29%] 218s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_help PASSED [ 29%] 218s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_simple_convert PASSED [ 29%] 218s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_minimal PASSED [ 29%] 218s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_basic PASSED [ 29%] 218s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_translatorcomments PASSED [ 29%] 218s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_autocomment PASSED [ 29%] 218s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_locations PASSED [ 29%] 218s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_fuzzy PASSED [ 29%] 218s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_plurals PASSED [ 29%] 218s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_help PASSED [ 29%] 218s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_preserve_filename PASSED [ 29%] 218s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_pot PASSED [ 29%] 218s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_po PASSED [ 29%] 218s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_remove_duplicates PASSED [ 29%] 218s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_convert_empty_YAML PASSED [ 29%] 218s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_simple_output PASSED [ 29%] 218s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_simple PASSED [ 29%] 218s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_nested PASSED [ 30%] 218s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_no_duplicates XFAIL [ 30%] 218s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_convert_with_template PASSED [ 30%] 218s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_comment_extraction PASSED [ 30%] 218s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_comment_extraction_nested PASSED [ 30%] 218s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_convert_empty_YAML PASSED [ 30%] 218s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_simple_output PASSED [ 30%] 218s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_simple PASSED [ 30%] 218s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_nested PASSED [ 30%] 218s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_no_duplicates XFAIL [ 30%] 218s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_convert_with_template PASSED [ 30%] 218s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_comment_extraction PASSED [ 30%] 218s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_comment_extraction_nested PASSED [ 30%] 218s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_help PASSED [ 30%] 218s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_empty_target PASSED [ 30%] 218s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_ellipsis PASSED [ 30%] 218s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_spacestart_spaceend PASSED [ 30%] 218s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_start_capitals PASSED [ 30%] 218s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_end_punc PASSED [ 30%] 218s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_combinations PASSED [ 30%] 218s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_nothing_to_do PASSED [ 30%] 218s tests/translate/filters/test_checks.py::test_defaults PASSED [ 30%] 218s tests/translate/filters/test_checks.py::test_construct PASSED [ 30%] 218s tests/translate/filters/test_checks.py::test_accelerator_markers PASSED [ 30%] 218s tests/translate/filters/test_checks.py::test_messages PASSED [ 30%] 218s tests/translate/filters/test_checks.py::test_accelerators PASSED [ 30%] 218s tests/translate/filters/test_checks.py::test_acceleratedvariables XFAIL [ 30%] 218s tests/translate/filters/test_checks.py::test_acronyms PASSED [ 30%] 218s tests/translate/filters/test_checks.py::test_blank PASSED [ 30%] 218s tests/translate/filters/test_checks.py::test_brackets PASSED [ 30%] 218s tests/translate/filters/test_checks.py::test_compendiumconflicts PASSED [ 30%] 218s tests/translate/filters/test_checks.py::test_doublequoting PASSED [ 30%] 218s tests/translate/filters/test_checks.py::test_doublespacing PASSED [ 30%] 218s tests/translate/filters/test_checks.py::test_doublewords PASSED [ 30%] 218s tests/translate/filters/test_checks.py::test_endpunc PASSED [ 30%] 218s tests/translate/filters/test_checks.py::test_endwhitespace PASSED [ 30%] 218s tests/translate/filters/test_checks.py::test_escapes PASSED [ 30%] 218s tests/translate/filters/test_checks.py::test_newlines PASSED [ 30%] 218s tests/translate/filters/test_checks.py::test_tabs PASSED [ 30%] 218s tests/translate/filters/test_checks.py::test_filepaths PASSED [ 31%] 218s tests/translate/filters/test_checks.py::test_kdecomments PASSED [ 31%] 218s tests/translate/filters/test_checks.py::test_long PASSED [ 31%] 218s tests/translate/filters/test_checks.py::test_musttranslatewords XFAIL [ 31%] 218s tests/translate/filters/test_checks.py::test_notranslatewords PASSED [ 31%] 218s tests/translate/filters/test_checks.py::test_numbers PASSED [ 31%] 218s tests/translate/filters/test_checks.py::test_persian_numbers PASSED [ 31%] 218s tests/translate/filters/test_checks.py::test_bengali_numbers PASSED [ 31%] 218s tests/translate/filters/test_checks.py::test_arabic_numbers PASSED [ 31%] 218s tests/translate/filters/test_checks.py::test_assamese_numbers PASSED [ 31%] 218s tests/translate/filters/test_checks.py::test_options PASSED [ 31%] 218s tests/translate/filters/test_checks.py::test_printf PASSED [ 31%] 218s tests/translate/filters/test_checks.py::test_pythonbraceformat PASSED [ 31%] 218s tests/translate/filters/test_checks.py::test_puncspacing PASSED [ 31%] 218s tests/translate/filters/test_checks.py::test_purepunc PASSED [ 31%] 218s tests/translate/filters/test_checks.py::test_sentencecount PASSED [ 31%] 218s tests/translate/filters/test_checks.py::test_short PASSED [ 31%] 218s tests/translate/filters/test_checks.py::test_singlequoting PASSED [ 31%] 218s tests/translate/filters/test_checks.py::test_vietnamese_singlequoting PASSED [ 31%] 218s tests/translate/filters/test_checks.py::test_persian_single_and_double_quote_fail_at_the_same_time XFAIL [ 31%] 218s tests/translate/filters/test_checks.py::test_persian_quoting PASSED [ 31%] 218s tests/translate/filters/test_checks.py::test_simplecaps PASSED [ 31%] 218s tests/translate/filters/test_checks.py::test_spellcheck SKIPPED (Spe...) [ 31%] 218s tests/translate/filters/test_checks.py::test_startcaps PASSED [ 31%] 218s tests/translate/filters/test_checks.py::test_startpunc PASSED [ 31%] 218s tests/translate/filters/test_checks.py::test_startwhitespace PASSED [ 31%] 218s tests/translate/filters/test_checks.py::test_unchanged PASSED [ 31%] 218s tests/translate/filters/test_checks.py::test_untranslated PASSED [ 31%] 218s tests/translate/filters/test_checks.py::test_validchars PASSED [ 31%] 218s tests/translate/filters/test_checks.py::test_minimalchecker PASSED [ 31%] 218s tests/translate/filters/test_checks.py::test_reducedchecker PASSED [ 31%] 218s tests/translate/filters/test_checks.py::test_variables_kde PASSED [ 31%] 218s tests/translate/filters/test_checks.py::test_variables_gnome PASSED [ 31%] 218s tests/translate/filters/test_checks.py::test_variables_mozilla PASSED [ 31%] 218s tests/translate/filters/test_checks.py::test_variables_openoffice PASSED [ 31%] 218s tests/translate/filters/test_checks.py::test_variables_cclicense PASSED [ 31%] 218s tests/translate/filters/test_checks.py::test_variables_ios PASSED [ 31%] 218s tests/translate/filters/test_checks.py::test_xmltags PASSED [ 31%] 218s tests/translate/filters/test_checks.py::test_bengali_mozilla_inverted_xmltags XFAIL [ 31%] 218s tests/translate/filters/test_checks.py::test_ooxmltags PASSED [ 32%] 218s tests/translate/filters/test_checks.py::test_functions PASSED [ 32%] 218s tests/translate/filters/test_checks.py::test_emails PASSED [ 32%] 218s tests/translate/filters/test_checks.py::test_urls PASSED [ 32%] 218s tests/translate/filters/test_checks.py::test_simpleplurals PASSED [ 32%] 218s tests/translate/filters/test_checks.py::test_nplurals PASSED [ 32%] 218s tests/translate/filters/test_checks.py::test_credits PASSED [ 32%] 218s tests/translate/filters/test_checks.py::test_gconf PASSED [ 32%] 218s tests/translate/filters/test_checks.py::test_validxml PASSED [ 32%] 218s tests/translate/filters/test_checks.py::test_hassuggestion PASSED [ 32%] 218s tests/translate/filters/test_checks.py::test_dialogsizes PASSED [ 32%] 218s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers PASSED [ 32%] 218s tests/translate/filters/test_checks.py::test_mozilla_no_accelerators_for_indic PASSED [ 32%] 218s tests/translate/filters/test_checks.py::test_noaccelerators_only_in_mozilla_checker PASSED [ 32%] 218s tests/translate/filters/test_checks.py::test_ensure_accelerators_not_in_target_if_not_in_source PASSED [ 32%] 218s tests/translate/filters/test_checks.py::test_ensure_bengali_languages_script_is_correct PASSED [ 32%] 218s tests/translate/filters/test_checks.py::test_category PASSED [ 32%] 218s tests/translate/filters/test_decoration.py::test_spacestart PASSED [ 32%] 218s tests/translate/filters/test_decoration.py::test_isvalidaccelerator PASSED [ 32%] 218s tests/translate/filters/test_decoration.py::test_find_marked_variables PASSED [ 32%] 218s tests/translate/filters/test_decoration.py::test_getnumbers PASSED [ 32%] 218s tests/translate/filters/test_decoration.py::test_getfunctions PASSED [ 32%] 218s tests/translate/filters/test_pofilter.py::TestPOFilter::test_simplepass PASSED [ 32%] 218s tests/translate/filters/test_pofilter.py::TestPOFilter::test_simplefail PASSED [ 32%] 218s tests/translate/filters/test_pofilter.py::TestPOFilter::test_variables_across_lines PASSED [ 32%] 218s tests/translate/filters/test_pofilter.py::TestPOFilter::test_ignore_if_already_marked PASSED [ 32%] 218s tests/translate/filters/test_pofilter.py::TestPOFilter::test_non_existent_check PASSED [ 32%] 218s tests/translate/filters/test_pofilter.py::TestPOFilter::test_list_all_tests PASSED [ 32%] 218s tests/translate/filters/test_pofilter.py::TestPOFilter::test_test_against_fuzzy PASSED [ 32%] 218s tests/translate/filters/test_pofilter.py::TestPOFilter::test_test_against_review PASSED [ 32%] 218s tests/translate/filters/test_pofilter.py::TestPOFilter::test_isfuzzy PASSED [ 32%] 218s tests/translate/filters/test_pofilter.py::TestPOFilter::test_isreview PASSED [ 32%] 218s tests/translate/filters/test_pofilter.py::TestPOFilter::test_notes PASSED [ 32%] 218s tests/translate/filters/test_pofilter.py::TestPOFilter::test_unicode PASSED [ 32%] 218s tests/translate/filters/test_pofilter.py::TestPOFilter::test_preconditions PASSED [ 32%] 218s tests/translate/filters/test_pofilter.py::TestPOFilter::test_msgid_comments PASSED [ 32%] 218s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_simplepass PASSED [ 32%] 218s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_simplefail PASSED [ 32%] 218s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_variables_across_lines PASSED [ 32%] 218s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_ignore_if_already_marked PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_non_existent_check PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_list_all_tests PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_test_against_fuzzy PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_test_against_review PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_isfuzzy PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_isreview PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_notes PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_unicode PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_preconditions PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_simplepass PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_simplefail PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_variables_across_lines PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_ignore_if_already_marked PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_non_existent_check PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_list_all_tests PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_notes PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_unicode PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_preconditions PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_test_against_fuzzy PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_test_against_review PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_isfuzzy PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_isreview PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_simplepass PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_simplefail PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_variables_across_lines PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_ignore_if_already_marked PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_non_existent_check PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_list_all_tests PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_test_against_fuzzy PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_test_against_review PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_isfuzzy PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_isreview PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_notes PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_unicode PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_preconditions PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_msgid_comments PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_cedillas PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_niciun PASSED [ 33%] 218s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_nicio PASSED [ 34%] 218s tests/translate/filters/test_prefilters.py::test_removekdecomments PASSED [ 34%] 218s tests/translate/filters/test_prefilters.py::test_filterwordswithpunctuation PASSED [ 34%] 218s tests/translate/lang/test_af.py::test_sentences PASSED [ 34%] 218s tests/translate/lang/test_af.py::test_capsstart PASSED [ 34%] 218s tests/translate/lang/test_af.py::test_transliterate_cyrillic PASSED [ 34%] 218s tests/translate/lang/test_am.py::test_punctranslate PASSED [ 34%] 219s tests/translate/lang/test_am.py::test_sentences PASSED [ 34%] 219s tests/translate/lang/test_ar.py::test_punctranslate PASSED [ 34%] 219s tests/translate/lang/test_ar.py::test_sentences PASSED [ 34%] 219s tests/translate/lang/test_common.py::test_characters PASSED [ 34%] 219s tests/translate/lang/test_common.py::test_words PASSED [ 34%] 219s tests/translate/lang/test_common.py::test_word_khmer PASSED [ 34%] 219s tests/translate/lang/test_common.py::test_sentences PASSED [ 34%] 219s tests/translate/lang/test_common.py::test_capsstart PASSED [ 34%] 219s tests/translate/lang/test_common.py::test_numstart PASSED [ 34%] 219s tests/translate/lang/test_common.py::test_punctranslate PASSED [ 34%] 219s tests/translate/lang/test_common.py::test_length_difference PASSED [ 34%] 219s tests/translate/lang/test_common.py::test_alter_length PASSED [ 34%] 219s tests/translate/lang/test_data.py::test_normalise_code PASSED [ 34%] 219s tests/translate/lang/test_data.py::test_simplify_to_common PASSED [ 34%] 219s tests/translate/lang/test_data.py::test_is_rtl PASSED [ 34%] 219s tests/translate/lang/test_el.py::test_punctranslate PASSED [ 34%] 219s tests/translate/lang/test_el.py::test_sentences PASSED [ 34%] 219s tests/translate/lang/test_es.py::test_punctranslate PASSED [ 34%] 219s tests/translate/lang/test_es.py::test_sentences PASSED [ 34%] 219s tests/translate/lang/test_fa.py::test_punctranslate PASSED [ 34%] 219s tests/translate/lang/test_fa.py::test_sentences PASSED [ 34%] 219s tests/translate/lang/test_factory.py::test_getlanguage PASSED [ 34%] 219s tests/translate/lang/test_factory.py::test_get_all_languages PASSED [ 34%] 219s tests/translate/lang/test_fr.py::test_punctranslate PASSED [ 34%] 219s tests/translate/lang/test_fr.py::test_sentences PASSED [ 34%] 219s tests/translate/lang/test_hy.py::test_punctranslate PASSED [ 34%] 219s tests/translate/lang/test_hy.py::test_sentences PASSED [ 34%] 219s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_identify_lang PASSED [ 34%] 219s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_identify_store PASSED [ 34%] 219s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_bad_init_data PASSED [ 34%] 219s tests/translate/lang/test_ja.py::test_punctranslate PASSED [ 34%] 219s tests/translate/lang/test_ja.py::test_sentences PASSED [ 34%] 219s tests/translate/lang/test_km.py::test_punctranslate PASSED [ 35%] 219s tests/translate/lang/test_km.py::test_sentences PASSED [ 35%] 219s tests/translate/lang/test_ko.py::test_punctranslate PASSED [ 35%] 219s tests/translate/lang/test_ko.py::test_sentences PASSED [ 35%] 219s tests/translate/lang/test_ne.py::test_punctranslate PASSED [ 35%] 219s tests/translate/lang/test_ne.py::test_sentences PASSED [ 35%] 219s tests/translate/lang/test_nqo.py::test_punctranslate PASSED [ 35%] 219s tests/translate/lang/test_nqo.py::test_sentences PASSED [ 35%] 219s tests/translate/lang/test_or.py::test_punctranslate PASSED [ 35%] 219s tests/translate/lang/test_or.py::test_country_code PASSED [ 35%] 219s tests/translate/lang/test_or.py::test_sentences PASSED [ 35%] 219s tests/translate/lang/test_poedit.py::test_isocode PASSED [ 35%] 219s tests/translate/lang/test_ro.py::test_cedillas PASSED [ 35%] 219s tests/translate/lang/test_ro.py::test_niciun PASSED [ 35%] 219s tests/translate/lang/test_scn.py::test_italianisms PASSED [ 35%] 219s tests/translate/lang/test_scn.py::test_vocalism PASSED [ 35%] 219s tests/translate/lang/test_scn.py::test_suffixes PASSED [ 35%] 219s tests/translate/lang/test_team.py::test_simple PASSED [ 35%] 219s tests/translate/lang/test_th.py::test_punctranslate PASSED [ 35%] 219s tests/translate/lang/test_th.py::test_sentences PASSED [ 35%] 219s tests/translate/lang/test_tr.py::test_sentences PASSED [ 35%] 219s tests/translate/lang/test_uk.py::test_sentences PASSED [ 35%] 219s tests/translate/lang/test_vi.py::test_punctranslate PASSED [ 35%] 219s tests/translate/lang/test_vi.py::test_sentences PASSED [ 35%] 219s tests/translate/lang/test_zh.py::test_punctranslate PASSED [ 35%] 219s tests/translate/lang/test_zh.py::test_sentences PASSED [ 35%] 219s tests/translate/misc/test_deprecation.py::TestDeprecation::test_deprecated_decorator PASSED [ 35%] 219s tests/translate/misc/test_deprecation.py::TestDeprecation::test_no_deprecated_decorator PASSED [ 35%] 219s tests/translate/misc/test_dictutils.py::test_cidict_has_key PASSED [ 35%] 219s tests/translate/misc/test_dictutils.py::test_cidict_pop PASSED [ 35%] 219s tests/translate/misc/test_dictutils.py::test_cidict_getitem PASSED [ 35%] 219s tests/translate/misc/test_dictutils.py::test_cidict_setitem PASSED [ 35%] 219s tests/translate/misc/test_dictutils.py::test_cidict_delitem PASSED [ 35%] 219s tests/translate/misc/test_multistring.py::TestMultistring::test_constructor PASSED [ 35%] 219s tests/translate/misc/test_multistring.py::TestMultistring::test_constructor_validation PASSED [ 35%] 219s tests/translate/misc/test_multistring.py::TestMultistring::test_repr PASSED [ 35%] 219s tests/translate/misc/test_multistring.py::TestMultistring::test_replace PASSED [ 35%] 219s tests/translate/misc/test_multistring.py::TestMultistring::test_comparison PASSED [ 35%] 219s tests/translate/misc/test_multistring.py::TestMultistring::test_coercion PASSED [ 35%] 219s tests/translate/misc/test_multistring.py::TestMultistring::test_unicode_coercion PASSED [ 36%] 219s tests/translate/misc/test_multistring.py::TestMultistring::test_list_coercion PASSED [ 36%] 219s tests/translate/misc/test_multistring.py::TestMultistring::test_multistring_hash PASSED [ 36%] 219s tests/translate/misc/test_multistring.py::TestMultistring::test_bool PASSED [ 36%] 219s tests/translate/misc/test_optrecurse.py::TestRecursiveOptionParser::test_splitext PASSED [ 36%] 219s tests/translate/misc/test_optrecurse.py::TestRecursiveOptionParser::test_outputfile_receives_bytes PASSED [ 36%] 219s tests/translate/misc/test_progressbar.py::test_hashprogressbar PASSED [ 36%] 219s tests/translate/misc/test_quote.py::test_find_all PASSED [ 36%] 219s tests/translate/misc/test_quote.py::test_extract PASSED [ 36%] 219s tests/translate/misc/test_quote.py::test_extractwithoutquotes PASSED [ 36%] 219s tests/translate/misc/test_quote.py::test_extractwithoutquotes_passfunc PASSED [ 36%] 219s tests/translate/misc/test_quote.py::test_stripcomment PASSED [ 36%] 219s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode PASSED [ 36%] 219s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode_iso_8859_1 PASSED [ 36%] 219s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode_ascii PASSED [ 36%] 219s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode_unicode_range PASSED [ 36%] 219s tests/translate/misc/test_quote.py::TestEncoding::test_java_utf8_properties_encode PASSED [ 36%] 219s tests/translate/misc/test_quote.py::TestEncoding::test_escapespace PASSED [ 36%] 219s tests/translate/misc/test_quote.py::TestEncoding::test_mozillaescapemarginspaces PASSED [ 36%] 219s tests/translate/misc/test_quote.py::TestEncoding::test_mozilla_control_escapes PASSED [ 36%] 219s tests/translate/misc/test_quote.py::TestEncoding::test_propertiesdecode PASSED [ 36%] 219s tests/translate/misc/test_quote.py::TestEncoding::test_controlchars PASSED [ 36%] 219s tests/translate/misc/test_quote.py::TestEncoding::test_properties_decode_slashu PASSED [ 36%] 219s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding PASSED [ 36%] 219s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_existing_entities PASSED [ 36%] 219s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_passthrough PASSED [ 36%] 219s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_nonentities PASSED [ 36%] 219s tests/translate/misc/test_xml_helpers.py::TestReindent::test_indent_four_spaces PASSED [ 36%] 219s tests/translate/misc/test_xml_helpers.py::TestReindent::test_indent_tab PASSED [ 36%] 219s tests/translate/search/test_lshtein.py::TestLevenshtein::test_basic_distance PASSED [ 36%] 219s tests/translate/search/test_lshtein.py::TestLevenshtein::test_basic_similarity PASSED [ 36%] 219s tests/translate/search/test_lshtein.py::TestLevenshtein::test_long_similarity PASSED [ 36%] 219s tests/translate/search/test_match.py::TestMatch::test_matching PASSED [ 36%] 219s tests/translate/search/test_match.py::TestMatch::test_multiple_store PASSED [ 36%] 219s tests/translate/search/test_match.py::TestMatch::test_extendtm PASSED [ 36%] 219s tests/translate/search/test_match.py::TestMatch::test_terminology PASSED [ 36%] 219s tests/translate/search/test_match.py::TestMatch::test_brackets PASSED [ 36%] 219s tests/translate/search/test_match.py::TestMatch::test_past_tences PASSED [ 36%] 219s tests/translate/search/test_match.py::TestMatch::test_space_mismatch PASSED [ 36%] 219s tests/translate/search/test_match.py::TestMatch::test_hyphen_mismatch PASSED [ 37%] 219s tests/translate/search/test_terminology.py::TestTerminology::test_basic PASSED [ 37%] 219s tests/translate/services/test_tmserver.py::TestTMServer::test_import PASSED [ 37%] 219s tests/translate/services/test_tmserver.py::TestTMServer::test_server PASSED [ 37%] 219s tests/translate/storage/placeables/test_base.py::TestStringElem::test_parse PASSED [ 37%] 219s tests/translate/storage/placeables/test_base.py::TestStringElem::test_tree PASSED [ 37%] 219s tests/translate/storage/placeables/test_base.py::TestStringElem::test_add PASSED [ 37%] 219s tests/translate/storage/placeables/test_base.py::TestStringElem::test_contains PASSED [ 37%] 220s tests/translate/storage/placeables/test_base.py::TestStringElem::test_getitem PASSED [ 37%] 220s tests/translate/storage/placeables/test_base.py::TestStringElem::test_getslice PASSED [ 37%] 220s tests/translate/storage/placeables/test_base.py::TestStringElem::test_iter PASSED [ 37%] 220s tests/translate/storage/placeables/test_base.py::TestStringElem::test_len PASSED [ 37%] 220s tests/translate/storage/placeables/test_base.py::TestStringElem::test_mul PASSED [ 37%] 220s tests/translate/storage/placeables/test_base.py::TestStringElem::test_elem_offset PASSED [ 37%] 220s tests/translate/storage/placeables/test_base.py::TestStringElem::test_elem_at_offset PASSED [ 37%] 220s tests/translate/storage/placeables/test_base.py::TestStringElem::test_find PASSED [ 37%] 220s tests/translate/storage/placeables/test_base.py::TestStringElem::test_find_elems_with PASSED [ 37%] 220s tests/translate/storage/placeables/test_base.py::TestStringElem::test_flatten PASSED [ 37%] 220s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case1 PASSED [ 37%] 220s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case2 PASSED [ 37%] 220s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case3 PASSED [ 37%] 220s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case4 PASSED [ 37%] 220s tests/translate/storage/placeables/test_base.py::TestStringElem::test_insert PASSED [ 37%] 220s tests/translate/storage/placeables/test_base.py::TestStringElem::test_isleaf PASSED [ 37%] 220s tests/translate/storage/placeables/test_base.py::TestStringElem::test_prune PASSED [ 37%] 220s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_base_placeables PASSED [ 37%] 220s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_general_placeables XFAIL [ 37%] 220s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_xliff_placeables XFAIL [ 37%] 220s tests/translate/storage/placeables/test_general.py::test_placeable_numbers PASSED [ 37%] 220s tests/translate/storage/placeables/test_general.py::test_placeable_newline PASSED [ 37%] 220s tests/translate/storage/placeables/test_general.py::test_placeable_alt_attr PASSED [ 37%] 220s tests/translate/storage/placeables/test_general.py::test_placeable_qt_formatting PASSED [ 37%] 220s tests/translate/storage/placeables/test_general.py::test_placeable_camelcase PASSED [ 37%] 220s tests/translate/storage/placeables/test_general.py::test_placeable_space PASSED [ 37%] 220s tests/translate/storage/placeables/test_general.py::test_placeable_punctuation PASSED [ 37%] 220s tests/translate/storage/placeables/test_general.py::test_placeable_xml_entity PASSED [ 37%] 220s tests/translate/storage/placeables/test_general.py::test_placeable_xml_tag PASSED [ 37%] 220s tests/translate/storage/placeables/test_general.py::test_placeable_option PASSED [ 37%] 220s tests/translate/storage/placeables/test_general.py::test_placeable_file PASSED [ 37%] 220s tests/translate/storage/placeables/test_general.py::test_placeable_email PASSED [ 38%] 220s tests/translate/storage/placeables/test_general.py::test_placeable_caps PASSED [ 38%] 220s tests/translate/storage/placeables/test_general.py::test_placeable_formatting PASSED [ 38%] 220s tests/translate/storage/placeables/test_general.py::test_placeable_doubleat PASSED [ 38%] 220s tests/translate/storage/placeables/test_general.py::test_placeable_brace PASSED [ 38%] 220s tests/translate/storage/placeables/test_general.py::test_python_placeable PASSED [ 38%] 220s tests/translate/storage/placeables/test_lisa.py::test_xml_to_strelem PASSED [ 38%] 220s tests/translate/storage/placeables/test_lisa.py::test_xml_space PASSED [ 38%] 220s tests/translate/storage/placeables/test_lisa.py::test_chunk_list PASSED [ 38%] 220s tests/translate/storage/placeables/test_lisa.py::test_set_strelem_to_xml PASSED [ 38%] 220s tests/translate/storage/placeables/test_lisa.py::test_unknown_xml_placeable PASSED [ 38%] 220s tests/translate/storage/placeables/test_terminology.py::TestTerminologyPlaceable::test_simple_terminology PASSED [ 38%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_isfuzzy PASSED [ 38%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_create PASSED [ 38%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_eq PASSED [ 38%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escapes PASSED [ 38%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_difficult_escapes PASSED [ 38%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_note_sanity PASSED [ 38%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_line_number_default PASSED [ 38%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_target PASSED [ 38%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_rich_get PASSED [ 38%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_rich_set PASSED [ 38%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_message_with_newline PASSED [ 38%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quotes_with_newline PASSED [ 38%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_message_with_newline_in_xml PASSED [ 38%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_twitter PASSED [ 38%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quote PASSED [ 38%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_question PASSED [ 38%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_double_space PASSED [ 38%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_leading_space PASSED [ 38%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_tailing_space PASSED [ 38%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_xml_entities PASSED [ 38%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code PASSED [ 38%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code_quote PASSED [ 38%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code_quote_newline PASSED [ 38%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_arrows PASSED [ 38%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_link PASSED [ 38%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_link_and_text PASSED [ 38%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_blank_string PASSED [ 38%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_escape_message_with_newline PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_invalid_lang PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_quote PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_leading_space PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_trailing_space PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_with_ampersand PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_double_space PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_deep_double_space PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_complex_xml PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quoted_newlines PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_message_with_newline PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_message_with_newline_in_xml PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_twitter PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_question PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quote PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_double_space PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_space PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_newlines PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_xml_entities PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_code PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_arrows PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_link PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_link_and_text PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_blank_string PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_space PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_spaces PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_escaped_newline PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_escaped_newline PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_spaces PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_newline PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_many_quotes PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_blank_string_again PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_double_quotes_string PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_newline_in_string PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_not_translatable_string PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_parse_message_with_newline PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_parse_message_with_comments PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_quote PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_leading_space PASSED [ 39%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_leading_space_quoted PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_trailing_space PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_trailing_space_quoted PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_with_ampersand PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_double_space_quoted PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_deep_double_space_quoted PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_complex_xml PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_unicode PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_unescaped PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_escaped_alone PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_escaped_full PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_escaped_percent PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_percent PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_quote PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_unparied_quote PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escape_slash PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escape_ignored PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escaped_quote_end PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_xml PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_create_blank PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_add PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_remove PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_find PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_parse PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_files PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_save PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_extensions PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_mimetypes PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_translate PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_nonascii PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_default_handlings PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_filename PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_filename_default_language PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_invalid_filename PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_namespaces PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_serialize PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_add_formatting PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity PASSED [ 40%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_invalid_entity PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_indent PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_markup PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_parse_decimal_plurals PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_to_plurals PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity_add_edit PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity_add_noedit PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_remove PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_set PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_others PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_quotes_set PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_xliff_g PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_xliff_namespace PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_zh_hk PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_b_zh_hk PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_missing_plural PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_empty_missing_plural_tag PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_removeunit PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_cdata PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_cdata_text PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_prefix PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_rtl PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_tail PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_translatable_marking PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_escaping PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_isfuzzy PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_create PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_eq PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_escapes PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_difficult_escapes PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_note_sanity PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_line_number_default PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_target PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_rich_get PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_rich_set PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_escape_quote PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_create_blank PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_add PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_remove PASSED [ 41%] 220s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_find PASSED [ 42%] 220s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_parse PASSED [ 42%] 220s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_files PASSED [ 42%] 220s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_save PASSED [ 42%] 220s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_extensions PASSED [ 42%] 220s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_mimetypes PASSED [ 42%] 220s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_translate PASSED [ 42%] 220s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_markup PASSED [ 42%] 220s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_nonascii PASSED [ 42%] 220s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_plural PASSED [ 42%] 220s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_isfuzzy PASSED [ 42%] 220s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_create PASSED [ 42%] 220s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_eq PASSED [ 42%] 220s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_escapes PASSED [ 42%] 220s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_difficult_escapes PASSED [ 42%] 220s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_note_sanity PASSED [ 42%] 220s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_line_number_default PASSED [ 42%] 220s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_target PASSED [ 42%] 220s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_rich_get PASSED [ 42%] 220s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_rich_set PASSED [ 42%] 220s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_escape_quote PASSED [ 42%] 220s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_create_blank PASSED [ 42%] 220s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_add PASSED [ 42%] 220s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_remove PASSED [ 42%] 220s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_find PASSED [ 42%] 220s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_parse PASSED [ 42%] 220s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_files PASSED [ 42%] 220s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_save PASSED [ 42%] 220s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_extensions PASSED [ 42%] 220s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_mimetypes PASSED [ 42%] 220s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_translate PASSED [ 42%] 220s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_markup PASSED [ 42%] 220s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_nonascii PASSED [ 42%] 220s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_quote_escape PASSED [ 42%] 220s tests/translate/storage/test_base.py::TestTranslationUnit::test_isfuzzy PASSED [ 42%] 220s tests/translate/storage/test_base.py::TestTranslationUnit::test_create PASSED [ 42%] 220s tests/translate/storage/test_base.py::TestTranslationUnit::test_eq PASSED [ 42%] 220s tests/translate/storage/test_base.py::TestTranslationUnit::test_target PASSED [ 42%] 220s tests/translate/storage/test_base.py::TestTranslationUnit::test_escapes PASSED [ 42%] 220s tests/translate/storage/test_base.py::TestTranslationUnit::test_difficult_escapes PASSED [ 43%] 220s tests/translate/storage/test_base.py::TestTranslationUnit::test_note_sanity PASSED [ 43%] 220s tests/translate/storage/test_base.py::TestTranslationUnit::test_line_number_default PASSED [ 43%] 220s tests/translate/storage/test_base.py::TestTranslationUnit::test_rich_get PASSED [ 43%] 220s tests/translate/storage/test_base.py::TestTranslationUnit::test_rich_set PASSED [ 43%] 220s tests/translate/storage/test_base.py::TestTranslationStore::test_create_blank PASSED [ 43%] 220s tests/translate/storage/test_base.py::TestTranslationStore::test_add PASSED [ 43%] 220s tests/translate/storage/test_base.py::TestTranslationStore::test_remove PASSED [ 43%] 220s tests/translate/storage/test_base.py::TestTranslationStore::test_find PASSED [ 43%] 220s tests/translate/storage/test_base.py::TestTranslationStore::test_translate PASSED [ 43%] 220s tests/translate/storage/test_base.py::TestTranslationStore::test_parse PASSED [ 43%] 220s tests/translate/storage/test_base.py::TestTranslationStore::test_files PASSED [ 43%] 220s tests/translate/storage/test_base.py::TestTranslationStore::test_save PASSED [ 43%] 220s tests/translate/storage/test_base.py::TestTranslationStore::test_markup PASSED [ 43%] 220s tests/translate/storage/test_base.py::TestTranslationStore::test_nonascii PASSED [ 43%] 220s tests/translate/storage/test_base.py::TestTranslationStore::test_extensions PASSED [ 43%] 220s tests/translate/storage/test_base.py::TestTranslationStore::test_mimetypes PASSED [ 43%] 220s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_create_empty_bundle PASSED [ 43%] 220s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_create_bundle_from_nonexistent_file PASSED [ 43%] 220s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_save_bundle PASSED [ 43%] 220s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_cross_device_save PASSED [ 43%] 220s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_replace_project_zip PASSED [ 43%] 220s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle PASSED [ 43%] 220s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_update_file_in_bundle PASSED [ 43%] 220s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle PASSED [ 43%] 220s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_invalid_bundle_error PASSED [ 43%] 220s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_isfuzzy PASSED [ 43%] 220s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_create PASSED [ 43%] 220s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_eq PASSED [ 43%] 220s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_target PASSED [ 43%] 220s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_escapes PASSED [ 43%] 220s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_line_number_default PASSED [ 43%] 220s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_rich_get PASSED [ 43%] 220s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_rich_set PASSED [ 43%] 220s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_difficult_escapes PASSED [ 43%] 220s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_newlines PASSED [ 43%] 220s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_istranslated PASSED [ 43%] 220s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_note_sanity PASSED [ 43%] 220s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_create_blank PASSED [ 43%] 220s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_add PASSED [ 44%] 220s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_remove PASSED [ 44%] 220s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_find PASSED [ 44%] 220s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_translate PASSED [ 44%] 220s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_parse PASSED [ 44%] 220s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_files PASSED [ 44%] 220s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_save PASSED [ 44%] 220s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_markup PASSED [ 44%] 220s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_nonascii PASSED [ 44%] 220s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_extensions PASSED [ 44%] 220s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_mimetypes PASSED [ 44%] 220s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_checksum PASSED [ 44%] 220s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_isfuzzy PASSED [ 44%] 220s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_create PASSED [ 44%] 220s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_eq PASSED [ 44%] 220s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_target PASSED [ 44%] 220s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_escapes PASSED [ 44%] 220s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_difficult_escapes PASSED [ 44%] 220s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_note_sanity PASSED [ 44%] 220s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_line_number_default PASSED [ 44%] 220s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_rich_get PASSED [ 44%] 220s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_rich_set PASSED [ 44%] 220s tests/translate/storage/test_csvl10n.py::TestCSV::test_create_blank PASSED [ 44%] 220s tests/translate/storage/test_csvl10n.py::TestCSV::test_add PASSED [ 44%] 220s tests/translate/storage/test_csvl10n.py::TestCSV::test_remove PASSED [ 44%] 220s tests/translate/storage/test_csvl10n.py::TestCSV::test_find PASSED [ 44%] 220s tests/translate/storage/test_csvl10n.py::TestCSV::test_translate PASSED [ 44%] 220s tests/translate/storage/test_csvl10n.py::TestCSV::test_parse PASSED [ 44%] 220s tests/translate/storage/test_csvl10n.py::TestCSV::test_files PASSED [ 44%] 220s tests/translate/storage/test_csvl10n.py::TestCSV::test_save PASSED [ 44%] 220s tests/translate/storage/test_csvl10n.py::TestCSV::test_markup PASSED [ 44%] 220s tests/translate/storage/test_csvl10n.py::TestCSV::test_nonascii PASSED [ 44%] 220s tests/translate/storage/test_csvl10n.py::TestCSV::test_extensions PASSED [ 44%] 220s tests/translate/storage/test_csvl10n.py::TestCSV::test_mimetypes PASSED [ 44%] 220s tests/translate/storage/test_csvl10n.py::TestCSV::test_singlequoting PASSED [ 44%] 220s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8 PASSED [ 44%] 220s tests/translate/storage/test_csvl10n.py::TestCSV::test_dialect PASSED [ 44%] 220s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8_sig PASSED [ 44%] 220s tests/translate/storage/test_csvl10n.py::TestCSV::test_default PASSED [ 44%] 220s tests/translate/storage/test_csvl10n.py::TestCSV::test_location_is_parsed PASSED [ 45%] 220s tests/translate/storage/test_csvl10n.py::TestCSV::test_context_is_parsed PASSED [ 45%] 220s tests/translate/storage/test_csvl10n.py::TestCSV::test_newline PASSED [ 45%] 220s tests/translate/storage/test_csvl10n.py::TestCSV::test_parse_sample PASSED [ 45%] 220s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8_detection PASSED [ 45%] 220s tests/translate/storage/test_csvl10n.py::TestCSV::test_encoding PASSED [ 45%] 220s tests/translate/storage/test_csvl10n.py::TestCSV::test_corrupt PASSED [ 45%] 220s tests/translate/storage/test_csvl10n.py::TestCSV::test_encoding_save PASSED [ 45%] 220s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_id_target PASSED [ 45%] 220s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_context_target PASSED [ 45%] 220s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_key_translation PASSED [ 45%] 220s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_roundtrip PASSED [ 45%] 220s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_context_roundtrip PASSED [ 45%] 220s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_id_context_roundtrip PASSED [ 45%] 220s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_target_only_roundtrip PASSED [ 45%] 220s tests/translate/storage/test_csvl10n.py::TestCSV::test_quote_nonnumeric_handling PASSED [ 45%] 220s tests/translate/storage/test_csvl10n.py::TestCSV::test_quote_nonnumeric_with_single_quotes PASSED [ 45%] 220s tests/translate/storage/test_csvl10n.py::TestCSV::test_line_number PASSED [ 45%] 220s tests/translate/storage/test_dtd.py::test_roundtrip_quoting PASSED [ 45%] 220s tests/translate/storage/test_dtd.py::test_quotefordtd_unimplemented_cases XFAIL [ 45%] 220s tests/translate/storage/test_dtd.py::test_quotefordtd PASSED [ 45%] 220s tests/translate/storage/test_dtd.py::test_unquotefromdtd_unimplemented_cases XFAIL [ 45%] 220s tests/translate/storage/test_dtd.py::test_unquotefromdtd PASSED [ 45%] 220s tests/translate/storage/test_dtd.py::test_android_roundtrip_quoting PASSED [ 45%] 220s tests/translate/storage/test_dtd.py::test_quoteforandroid PASSED [ 45%] 220s tests/translate/storage/test_dtd.py::test_unquotefromandroid PASSED [ 45%] 220s tests/translate/storage/test_dtd.py::test_removeinvalidamp PASSED [ 45%] 220s tests/translate/storage/test_dtd.py::TestDTDUnit::test_isfuzzy PASSED [ 45%] 220s tests/translate/storage/test_dtd.py::TestDTDUnit::test_create PASSED [ 45%] 220s tests/translate/storage/test_dtd.py::TestDTDUnit::test_eq PASSED [ 45%] 220s tests/translate/storage/test_dtd.py::TestDTDUnit::test_escapes PASSED [ 45%] 220s tests/translate/storage/test_dtd.py::TestDTDUnit::test_difficult_escapes PASSED [ 45%] 220s tests/translate/storage/test_dtd.py::TestDTDUnit::test_note_sanity PASSED [ 45%] 220s tests/translate/storage/test_dtd.py::TestDTDUnit::test_line_number_default PASSED [ 45%] 220s tests/translate/storage/test_dtd.py::TestDTDUnit::test_target PASSED [ 45%] 220s tests/translate/storage/test_dtd.py::TestDTDUnit::test_rich_get PASSED [ 45%] 220s tests/translate/storage/test_dtd.py::TestDTDUnit::test_rich_set PASSED [ 45%] 220s tests/translate/storage/test_dtd.py::TestDTD::test_create_blank PASSED [ 45%] 220s tests/translate/storage/test_dtd.py::TestDTD::test_add PASSED [ 45%] 220s tests/translate/storage/test_dtd.py::TestDTD::test_remove PASSED [ 46%] 220s tests/translate/storage/test_dtd.py::TestDTD::test_find PASSED [ 46%] 220s tests/translate/storage/test_dtd.py::TestDTD::test_parse PASSED [ 46%] 220s tests/translate/storage/test_dtd.py::TestDTD::test_files PASSED [ 46%] 220s tests/translate/storage/test_dtd.py::TestDTD::test_save PASSED [ 46%] 220s tests/translate/storage/test_dtd.py::TestDTD::test_extensions PASSED [ 46%] 220s tests/translate/storage/test_dtd.py::TestDTD::test_mimetypes PASSED [ 46%] 220s tests/translate/storage/test_dtd.py::TestDTD::test_translate PASSED [ 46%] 220s tests/translate/storage/test_dtd.py::TestDTD::test_markup PASSED [ 46%] 220s tests/translate/storage/test_dtd.py::TestDTD::test_nonascii PASSED [ 46%] 220s tests/translate/storage/test_dtd.py::TestDTD::test_simpleentity PASSED [ 46%] 220s tests/translate/storage/test_dtd.py::TestDTD::test_blanklines PASSED [ 46%] 220s tests/translate/storage/test_dtd.py::TestDTD::test_simpleentity_source PASSED [ 46%] 220s tests/translate/storage/test_dtd.py::TestDTD::test_hashcomment_source PASSED [ 46%] 220s tests/translate/storage/test_dtd.py::TestDTD::test_commentclosing PASSED [ 46%] 220s tests/translate/storage/test_dtd.py::TestDTD::test_commententity PASSED [ 46%] 220s tests/translate/storage/test_dtd.py::TestDTD::test_newlines_in_entity PASSED [ 46%] 220s tests/translate/storage/test_dtd.py::TestDTD::test_conflate_comments PASSED [ 46%] 220s tests/translate/storage/test_dtd.py::TestDTD::test_localisation_notes PASSED [ 46%] 220s tests/translate/storage/test_dtd.py::TestDTD::test_entitityreference_in_source PASSED [ 46%] 220s tests/translate/storage/test_dtd.py::TestDTD::test_entitityreference_order_in_source PASSED [ 46%] 220s tests/translate/storage/test_dtd.py::TestDTD::test_comment_following XFAIL [ 46%] 220s tests/translate/storage/test_dtd.py::TestDTD::test_comment_newline_space_closing PASSED [ 46%] 220s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting XFAIL [ 46%] 220s tests/translate/storage/test_dtd.py::TestDTD::test_missing_quotes PASSED [ 46%] 220s tests/translate/storage/test_dtd.py::TestDTD::test_entity_escaping PASSED [ 46%] 220s tests/translate/storage/test_dtd.py::TestDTD::test_entity_escaping_roundtrip PASSED [ 46%] 220s tests/translate/storage/test_dtd.py::TestDTD::test_multiple_blank_lines PASSED [ 46%] 220s tests/translate/storage/test_dtd.py::TestDTD::test_entity_with_extra_spaces PASSED [ 46%] 220s tests/translate/storage/test_dtd.py::TestDTD::test_mixed_content_preservation PASSED [ 46%] 220s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_create_blank PASSED [ 46%] 220s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_add PASSED [ 46%] 220s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_remove PASSED [ 46%] 220s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_find PASSED [ 46%] 220s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_parse PASSED [ 46%] 220s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_files PASSED [ 46%] 220s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_save PASSED [ 46%] 220s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_extensions PASSED [ 46%] 220s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_mimetypes PASSED [ 46%] 220s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_translate PASSED [ 47%] 220s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_markup PASSED [ 47%] 220s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_nonascii PASSED [ 47%] 220s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_single_quote_escape PASSED [ 47%] 220s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_single_quote_escape_parse_and_convert_back PASSED [ 47%] 220s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_double_quote_escape PASSED [ 47%] 220s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_double_quote_escape_parse_and_convert_back PASSED [ 47%] 220s tests/translate/storage/test_factory.py::TestPOFactory::test_getclass PASSED [ 47%] 220s tests/translate/storage/test_factory.py::TestPOFactory::test_getobject_store PASSED [ 47%] 220s tests/translate/storage/test_factory.py::TestPOFactory::test_getobject PASSED [ 47%] 220s tests/translate/storage/test_factory.py::TestPOFactory::test_get_noname_object PASSED [ 47%] 220s tests/translate/storage/test_factory.py::TestPOFactory::test_gzfile PASSED [ 47%] 220s tests/translate/storage/test_factory.py::TestPOFactory::test_bz2file PASSED [ 47%] 220s tests/translate/storage/test_factory.py::TestPOFactory::test_directory PASSED [ 47%] 220s tests/translate/storage/test_factory.py::TestXliffFactory::test_getclass PASSED [ 47%] 220s tests/translate/storage/test_factory.py::TestXliffFactory::test_getobject_store PASSED [ 47%] 220s tests/translate/storage/test_factory.py::TestXliffFactory::test_getobject PASSED [ 47%] 220s tests/translate/storage/test_factory.py::TestXliffFactory::test_get_noname_object PASSED [ 47%] 220s tests/translate/storage/test_factory.py::TestXliffFactory::test_gzfile PASSED [ 47%] 220s tests/translate/storage/test_factory.py::TestXliffFactory::test_bz2file PASSED [ 47%] 220s tests/translate/storage/test_factory.py::TestXliffFactory::test_directory PASSED [ 47%] 220s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getclass PASSED [ 47%] 220s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getobject_store PASSED [ 47%] 220s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getobject PASSED [ 47%] 220s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_get_noname_object PASSED [ 47%] 220s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_gzfile PASSED [ 47%] 220s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_bz2file PASSED [ 47%] 220s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_directory PASSED [ 47%] 220s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getclass PASSED [ 47%] 220s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getobject_store PASSED [ 47%] 220s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getobject PASSED [ 47%] 220s tests/translate/storage/test_factory.py::TestWordfastFactory::test_get_noname_object PASSED [ 47%] 220s tests/translate/storage/test_factory.py::TestWordfastFactory::test_gzfile PASSED [ 47%] 220s tests/translate/storage/test_factory.py::TestWordfastFactory::test_bz2file PASSED [ 47%] 220s tests/translate/storage/test_factory.py::TestWordfastFactory::test_directory PASSED [ 47%] 220s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_isfuzzy PASSED [ 47%] 220s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_create PASSED [ 47%] 220s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_eq PASSED [ 47%] 220s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_escapes PASSED [ 47%] 220s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_difficult_escapes PASSED [ 48%] 220s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_note_sanity PASSED [ 48%] 220s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_line_number_default PASSED [ 48%] 220s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_target PASSED [ 48%] 220s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_rich_get PASSED [ 48%] 220s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_rich_set PASSED [ 48%] 220s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_create_blank PASSED [ 48%] 220s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_add PASSED [ 48%] 220s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_remove PASSED [ 48%] 220s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_find PASSED [ 48%] 220s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_parse PASSED [ 48%] 220s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_files PASSED [ 48%] 220s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_save PASSED [ 48%] 220s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_extensions PASSED [ 48%] 220s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_mimetypes PASSED [ 48%] 220s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_translate PASSED [ 48%] 220s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_markup PASSED [ 48%] 220s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_nonascii PASSED [ 48%] 220s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_root_config_detect PASSED [ 48%] 220s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_value_config_detect PASSED [ 48%] 220s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_key_config_detect PASSED [ 48%] 220s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_value_config_mixed_ok PASSED [ 48%] 220s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_namespace_config_detect PASSED [ 48%] 220s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_four_spaces PASSED [ 48%] 220s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_tab PASSED [ 48%] 220s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_none_linearizes PASSED [ 48%] 220s tests/translate/storage/test_html.py::test_guess_encoding PASSED [ 48%] 220s tests/translate/storage/test_html.py::TestHTMLParsing::test_mismatched_tags PASSED [ 48%] 220s tests/translate/storage/test_html.py::TestHTMLParsing::test_self_closing_tags PASSED [ 48%] 220s tests/translate/storage/test_html.py::TestHTMLParsing::test_escaping_script_and_pre PASSED [ 48%] 220s tests/translate/storage/test_html.py::TestHTMLExtraction::test_strip_html PASSED [ 48%] 220s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_tag_figcaption PASSED [ 48%] 220s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_tag_caption_td_th PASSED [ 48%] 220s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_attr_alt PASSED [ 48%] 220s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_attr_title PASSED [ 48%] 220s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_pre PASSED [ 48%] 220s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_pre_code PASSED [ 48%] 220s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_button PASSED [ 48%] 220s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_lang_attribute PASSED [ 48%] 220s tests/translate/storage/test_html.py::TestHTMLExtraction::test_dir_attribute_not_extracted PASSED [ 49%] 220s tests/translate/storage/test_html.py::TestHTMLExtraction::test_data_translate_ignore_attribute PASSED [ 49%] 220s tests/translate/storage/test_html.py::TestHTMLExtraction::test_translate_comment_directives PASSED [ 49%] 220s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_meta_social_media_tags PASSED [ 49%] 220s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_meta_non_translatable_tags PASSED [ 49%] 220s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_meta_mixed_translatable_and_non_translatable PASSED [ 49%] 220s tests/translate/storage/test_html.py::TestHTMLExtraction::test_data_translate_comment_attribute PASSED [ 49%] 220s tests/translate/storage/test_html_context.py::test_html_context_basic PASSED [ 49%] 220s tests/translate/storage/test_html_context.py::test_html_context_attribute PASSED [ 49%] 220s tests/translate/storage/test_html_context.py::test_html_context_attribute_with_id PASSED [ 49%] 220s tests/translate/storage/test_html_context.py::test_html_context_same_source_different_contexts PASSED [ 49%] 220s tests/translate/storage/test_html_context.py::test_html_context_nested_outer_wins PASSED [ 49%] 220s tests/translate/storage/test_html_context.py::test_html_context_absent PASSED [ 49%] 220s tests/translate/storage/test_html_context.py::test_html_context_id_overridden_by_explicit PASSED [ 49%] 220s tests/translate/storage/test_html_context.py::test_html_context_id_not_used_when_no_duplicates PASSED [ 49%] 220s tests/translate/storage/test_html_context.py::test_html_context_id_not_used_when_data_translate_context_identical PASSED [ 49%] 220s tests/translate/storage/test_html_context.py::test_html_context_disambiguates_duplicates_with_id PASSED [ 49%] 220s tests/translate/storage/test_html_context.py::test_html_context_disambiguates_duplicates_with_ancestor_id PASSED [ 49%] 220s tests/translate/storage/test_ini.py::TestINIUnit::test_isfuzzy PASSED [ 49%] 220s tests/translate/storage/test_ini.py::TestINIUnit::test_create PASSED [ 49%] 220s tests/translate/storage/test_ini.py::TestINIUnit::test_eq PASSED [ 49%] 220s tests/translate/storage/test_ini.py::TestINIUnit::test_escapes PASSED [ 49%] 220s tests/translate/storage/test_ini.py::TestINIUnit::test_difficult_escapes PASSED [ 49%] 220s tests/translate/storage/test_ini.py::TestINIUnit::test_note_sanity PASSED [ 49%] 220s tests/translate/storage/test_ini.py::TestINIUnit::test_line_number_default PASSED [ 49%] 220s tests/translate/storage/test_ini.py::TestINIUnit::test_target PASSED [ 49%] 220s tests/translate/storage/test_ini.py::TestINIUnit::test_rich_get PASSED [ 49%] 220s tests/translate/storage/test_ini.py::TestINIUnit::test_rich_set PASSED [ 49%] 220s tests/translate/storage/test_ini.py::TestINIStore::test_create_blank PASSED [ 49%] 220s tests/translate/storage/test_ini.py::TestINIStore::test_add PASSED [ 49%] 220s tests/translate/storage/test_ini.py::TestINIStore::test_remove PASSED [ 49%] 220s tests/translate/storage/test_ini.py::TestINIStore::test_find PASSED [ 49%] 220s tests/translate/storage/test_ini.py::TestINIStore::test_parse PASSED [ 49%] 220s tests/translate/storage/test_ini.py::TestINIStore::test_files PASSED [ 49%] 220s tests/translate/storage/test_ini.py::TestINIStore::test_save PASSED [ 49%] 220s tests/translate/storage/test_ini.py::TestINIStore::test_extensions PASSED [ 49%] 220s tests/translate/storage/test_ini.py::TestINIStore::test_mimetypes PASSED [ 49%] 220s tests/translate/storage/test_ini.py::TestINIStore::test_translate PASSED [ 49%] 220s tests/translate/storage/test_ini.py::TestINIStore::test_markup PASSED [ 49%] 220s tests/translate/storage/test_ini.py::TestINIStore::test_nonascii PASSED [ 50%] 220s tests/translate/storage/test_ini.py::TestINIStore::test_serialize PASSED [ 50%] 220s tests/translate/storage/test_ini.py::TestINIStore::test_rem PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_isfuzzy PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_create PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_eq PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_escapes PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_difficult_escapes PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_note_sanity PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_line_number_default PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_target PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_rich_get PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_rich_set PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_create_blank PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_remove PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_find PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_parse PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_files PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_save PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_extensions PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_mimetypes PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_translate PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_markup PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_nonascii PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_serialize PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_can_not_detect PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_error PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_filter PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_ordering PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_args PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_bom PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_complex PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_complex_array PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add_list_like PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add_blank PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_types PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_null PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_isfuzzy PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_create PASSED [ 50%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_eq PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_escapes PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_difficult_escapes PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_note_sanity PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_line_number_default PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_target PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_rich_get PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_rich_set PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_serialize PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_ordering PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_array PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_index PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_index_nested PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_nested_list_mixed PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_list_to_dict PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_complex_keys PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_other PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[0]-expected0] PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[test[0]-expected1] PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[test[0][1][2][3]-expected2] PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[test]selection-expected3] PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[test][0]selection-expected4] PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[0][test]selection-expected5] PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[-expected6] PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_dot_keys PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_isfuzzy PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_create PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_eq PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_escapes PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_difficult_escapes PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_note_sanity PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_line_number_default PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_target PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_rich_get PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_rich_set PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_create_blank PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_add PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_remove PASSED [ 51%] 220s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_find PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_parse PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_files PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_save PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_extensions PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_mimetypes PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_translate PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_markup PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_nonascii PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_serialize PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_dot_keys PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_leading_dot_keys PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_serialize_no_description PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_set_target PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_placeholders PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_comments PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_create_blank PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_add PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_remove PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_find PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_parse PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_files PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_save PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_extensions PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_mimetypes PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_translate PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_markup PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_nonascii PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_serialize PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_units PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_plurals PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_nested_array PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_new_plural PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_new_plural_id PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_create_blank PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_add PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_remove PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_find PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_parse PASSED [ 52%] 220s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_files PASSED [ 53%] 220s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_save PASSED [ 53%] 220s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_extensions PASSED [ 53%] 220s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_mimetypes PASSED [ 53%] 220s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_translate PASSED [ 53%] 220s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_markup PASSED [ 53%] 220s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_nonascii PASSED [ 53%] 220s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_plurals PASSED [ 53%] 220s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_plurals_missing PASSED [ 53%] 220s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_case_no_msg PASSED [ 53%] 220s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_complex_id PASSED [ 53%] 220s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_create_blank PASSED [ 53%] 220s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_add PASSED [ 53%] 220s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_remove PASSED [ 53%] 220s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_find PASSED [ 53%] 220s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_parse PASSED [ 53%] 220s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_files PASSED [ 53%] 220s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_save PASSED [ 53%] 220s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_extensions PASSED [ 53%] 220s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_mimetypes PASSED [ 53%] 220s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_translate PASSED [ 53%] 220s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_markup PASSED [ 53%] 220s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_nonascii PASSED [ 53%] 220s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_serialize PASSED [ 53%] 220s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_units PASSED [ 53%] 220s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_plurals PASSED [ 53%] 221s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_nested_array PASSED [ 53%] 221s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_new_plural PASSED [ 53%] 221s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_ru PASSED [ 53%] 221s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_create_blank PASSED [ 53%] 221s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_add PASSED [ 53%] 221s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_remove PASSED [ 53%] 221s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_find PASSED [ 53%] 221s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_parse PASSED [ 53%] 221s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_files PASSED [ 53%] 221s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_save PASSED [ 53%] 221s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_extensions PASSED [ 53%] 221s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_mimetypes PASSED [ 53%] 221s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_translate PASSED [ 53%] 221s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_markup PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_nonascii PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_serialize PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_units PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_plurals PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_nested_array PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_new_plural PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_ru PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_create_blank PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_add PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_remove PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_find PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_parse PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_files PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_save PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_extensions PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_mimetypes PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_translate PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_markup PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_nonascii PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_plurals PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_plurals_missing PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_invalid PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_dot_keys PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_create_blank PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_add PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_remove PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_find PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_parse PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_files PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_save PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_extensions PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_mimetypes PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_translate PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_markup PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_nonascii PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_1 PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_2 PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_blank PASSED [ 54%] 221s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_missing PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_simplification PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_invalid PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_dot_keys PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_create_blank PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_add PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_remove PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_find PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_parse PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_files PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_save PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_extensions PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_mimetypes PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_translate PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_markup PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_nonascii PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_roundtrip PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_leading_dot_keys PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_invalid_nesting PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_empty_metadata_not_stored PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_create_blank PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_add PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_remove PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_find PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_parse PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_files PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_save PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_extensions PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_mimetypes PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_translate PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_markup PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_nonascii PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_roundtrip PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_leading_dot_keys PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_invalid PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_isfuzzy PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_create PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_eq PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_escapes PASSED [ 55%] 221s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_difficult_escapes PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_note_sanity PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_line_number_default PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_target PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_rich_get PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_rich_set PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_source_property_maps_to_id PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_source_roundtrip PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_create_blank PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_add PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_remove PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_find PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_parse PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_files PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_save PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_extensions PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_mimetypes PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_translate PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_markup PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_nonascii PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_parse_simple PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_serialize_simple PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_parse_with_plurals PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_preserve_plural_form PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_roundtrip_with_plurals PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_ignore_non_translations_keys PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_preserve_other_metadata PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_add_unit PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_add_plural_unit PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_empty_translations PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_create_blank PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_add PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_remove PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_find PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_parse PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_files PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_save PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_extensions PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_mimetypes PASSED [ 56%] 221s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_translate PASSED [ 57%] 221s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_markup PASSED [ 57%] 221s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_nonascii PASSED [ 57%] 221s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_roundtrip PASSED [ 57%] 221s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_basic_parsing PASSED [ 57%] 221s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_multiple_metadata PASSED [ 57%] 221s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_no_metadata PASSED [ 57%] 221s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_edit_target PASSED [ 57%] 221s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_edit_notes PASSED [ 57%] 221s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_keys_with_dots PASSED [ 57%] 221s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_leading_dot_keys PASSED [ 57%] 221s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_invalid_nesting PASSED [ 57%] 221s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_source_property_get_set PASSED [ 57%] 221s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_source_property_persists PASSED [ 57%] 221s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_getcontext_returns_id PASSED [ 57%] 221s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_parsing_preserves_order PASSED [ 57%] 221s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_metadata_without_translation PASSED [ 57%] 221s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_complex_keys_with_multiple_dots PASSED [ 57%] 221s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_source_empty_string PASSED [ 57%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_atx_heading PASSED [ 57%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_autolink PASSED [ 57%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_block_quote PASSED [ 57%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_code_block PASSED [ 57%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_code_span PASSED [ 57%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_atx_heading PASSED [ 57%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_document PASSED [ 57%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_list_item PASSED [ 57%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_escaped_character PASSED [ 57%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_hard_line_break PASSED [ 57%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_block PASSED [ 57%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_character_entities PASSED [ 57%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_span PASSED [ 57%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_image_embedded_in_link PASSED [ 57%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_collapsed_reference_link PASSED [ 57%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_full_reference_link PASSED [ 57%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_shortcut_reference_link PASSED [ 57%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_merging_of_adjacent_placeholders PASSED [ 57%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_nested_block_tokens PASSED [ 57%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_nested_list PASSED [ 57%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_paragraph_with_basic_markup PASSED [ 58%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_paragraph_with_only_whitespace_and_placeholders PASSED [ 58%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_placeholder_trimming PASSED [ 58%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_image PASSED [ 58%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_image_no_title PASSED [ 58%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_link PASSED [ 58%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_text_paragraph PASSED [ 58%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_remove_placeholders_from_both_ends_of_translation_units PASSED [ 58%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_setext_heading PASSED [ 58%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_table_with_header PASSED [ 58%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_thematic_break PASSED [ 58%] 221s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_hard_line_break_in_translation_unit PASSED [ 58%] 221s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_missing_placeholder PASSED [ 58%] 221s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_duplicate_placeholder PASSED [ 58%] 221s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_extraneous_placeholder PASSED [ 58%] 221s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_reordered_placeholders PASSED [ 58%] 221s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_invalid_markdown_in_translation PASSED [ 58%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_section_basic PASSED [ 58%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_section_with_markup PASSED [ 58%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_section_with_code_block PASSED [ 58%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_multiple_ignore_sections PASSED [ 58%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_at_start PASSED [ 58%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_at_end PASSED [ 58%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_nested_structures_in_ignore PASSED [ 58%] 221s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_link_references_in_ignore PASSED [ 58%] 221s tests/translate/storage/test_mo.py::TestMOUnit::test_isfuzzy PASSED [ 58%] 221s tests/translate/storage/test_mo.py::TestMOUnit::test_create PASSED [ 58%] 221s tests/translate/storage/test_mo.py::TestMOUnit::test_eq PASSED [ 58%] 221s tests/translate/storage/test_mo.py::TestMOUnit::test_target PASSED [ 58%] 221s tests/translate/storage/test_mo.py::TestMOUnit::test_escapes PASSED [ 58%] 221s tests/translate/storage/test_mo.py::TestMOUnit::test_difficult_escapes PASSED [ 58%] 221s tests/translate/storage/test_mo.py::TestMOUnit::test_note_sanity PASSED [ 58%] 221s tests/translate/storage/test_mo.py::TestMOUnit::test_line_number_default PASSED [ 58%] 221s tests/translate/storage/test_mo.py::TestMOUnit::test_rich_get PASSED [ 58%] 221s tests/translate/storage/test_mo.py::TestMOUnit::test_rich_set PASSED [ 58%] 221s tests/translate/storage/test_mo.py::TestMOUnit::test_context PASSED [ 58%] 221s tests/translate/storage/test_mo.py::TestMOFile::test_create_blank PASSED [ 58%] 221s tests/translate/storage/test_mo.py::TestMOFile::test_add PASSED [ 58%] 221s tests/translate/storage/test_mo.py::TestMOFile::test_remove PASSED [ 58%] 221s tests/translate/storage/test_mo.py::TestMOFile::test_find PASSED [ 59%] 221s tests/translate/storage/test_mo.py::TestMOFile::test_translate PASSED [ 59%] 221s tests/translate/storage/test_mo.py::TestMOFile::test_parse PASSED [ 59%] 221s tests/translate/storage/test_mo.py::TestMOFile::test_files PASSED [ 59%] 221s tests/translate/storage/test_mo.py::TestMOFile::test_save PASSED [ 59%] 221s tests/translate/storage/test_mo.py::TestMOFile::test_markup PASSED [ 59%] 221s tests/translate/storage/test_mo.py::TestMOFile::test_nonascii PASSED [ 59%] 221s tests/translate/storage/test_mo.py::TestMOFile::test_extensions PASSED [ 59%] 221s tests/translate/storage/test_mo.py::TestMOFile::test_mimetypes PASSED [ 59%] 221s tests/translate/storage/test_mo.py::TestMOFile::test_language PASSED [ 59%] 221s tests/translate/storage/test_mo.py::TestMOFile::test_context PASSED [ 59%] 221s tests/translate/storage/test_mo.py::TestMOFile::test_output SKIPPED [ 59%] 221s tests/translate/storage/test_mo.py::TestMOFile::test_endian_version_parsing PASSED [ 59%] 221s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_isfuzzy PASSED [ 59%] 221s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_create PASSED [ 59%] 221s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_eq PASSED [ 59%] 221s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_escapes PASSED [ 59%] 221s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_difficult_escapes PASSED [ 59%] 221s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_note_sanity PASSED [ 59%] 221s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_line_number_default PASSED [ 59%] 221s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_target PASSED [ 59%] 221s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_rich_get PASSED [ 59%] 221s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_rich_set PASSED [ 59%] 221s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_create_blank PASSED [ 59%] 221s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_add PASSED [ 59%] 221s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_remove PASSED [ 59%] 221s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_find PASSED [ 59%] 221s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_parse PASSED [ 59%] 221s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_files PASSED [ 59%] 221s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_save PASSED [ 59%] 221s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_extensions PASSED [ 59%] 221s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_mimetypes PASSED [ 59%] 221s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_translate PASSED [ 59%] 221s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_markup PASSED [ 59%] 221s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_nonascii PASSED [ 59%] 221s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[-] PASSED [ 59%] 221s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String-String] PASSED [ 59%] 221s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok}-String] PASSED [ 59%] 221s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {OK}-String] PASSED [ 59%] 221s 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%] 221s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String{ok}-String] PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String{OK}-String] PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok}-String] PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok} -String] PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_isfuzzy PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_create PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_eq PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_target PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_escapes PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_difficult_escapes PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_note_sanity PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_line_number_default PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_rich_get PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_rich_set PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_translate_but_same PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_untranslated PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_comments PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_copy_target PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_create_blank PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_add PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_remove PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_find PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_translate PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_parse PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_files PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_save PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_markup PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_extensions PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_mimetypes PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_nonascii PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_format_layout PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_crlf PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_active_flag PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_multiline_comments PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_template PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[--False] PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ -Source -True] PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ {ok}-Source-True] PASSED [ 60%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ {ok} -Source-True] PASSED [ 61%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[{ok}-Source-True] PASSED [ 61%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_headers PASSED [ 61%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_not_headers PASSED [ 61%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[0] PASSED [ 61%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[1] PASSED [ 61%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[2] PASSED [ 61%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[3] PASSED [ 61%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_tag_comments PASSED [ 61%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_maxlength PASSED [ 61%] 221s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_line_number PASSED [ 61%] 221s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_isfuzzy PASSED [ 61%] 221s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_create PASSED [ 61%] 221s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_eq PASSED [ 61%] 221s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_target PASSED [ 61%] 221s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_escapes PASSED [ 61%] 221s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_difficult_escapes PASSED [ 61%] 221s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_note_sanity PASSED [ 61%] 221s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_line_number_default PASSED [ 61%] 221s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_rich_get PASSED [ 61%] 221s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_rich_set PASSED [ 61%] 221s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_create_blank PASSED [ 61%] 221s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_add PASSED [ 61%] 221s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_remove PASSED [ 61%] 221s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_find PASSED [ 61%] 221s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_translate PASSED [ 61%] 221s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_parse PASSED [ 61%] 221s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_files PASSED [ 61%] 221s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_save PASSED [ 61%] 221s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_markup PASSED [ 61%] 221s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_nonascii PASSED [ 61%] 221s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_mimetypes PASSED [ 61%] 221s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_extensions XFAIL [ 61%] 221s tests/translate/storage/test_oo.py::test_makekey PASSED [ 61%] 221s tests/translate/storage/test_oo.py::test_escape_help_text PASSED [ 61%] 221s tests/translate/storage/test_oo.py::TestOO::test_simpleentry PASSED [ 61%] 221s tests/translate/storage/test_oo.py::TestOO::test_simpleentry_quickhelptest PASSED [ 61%] 221s tests/translate/storage/test_oo.py::TestOO::test_simpleentry_title PASSED [ 61%] 221s tests/translate/storage/test_oo.py::TestOO::test_blankline PASSED [ 61%] 221s tests/translate/storage/test_oo.py::TestOO::test_fieldlength PASSED [ 62%] 221s tests/translate/storage/test_oo.py::TestOO::test_escapes PASSED [ 62%] 221s tests/translate/storage/test_php.py::test_php_escaping_single_quote PASSED [ 62%] 221s tests/translate/storage/test_php.py::test_php_escaping_double_quote PASSED [ 62%] 221s tests/translate/storage/test_php.py::TestPhpUnit::test_isfuzzy PASSED [ 62%] 221s tests/translate/storage/test_php.py::TestPhpUnit::test_create PASSED [ 62%] 221s tests/translate/storage/test_php.py::TestPhpUnit::test_eq PASSED [ 62%] 221s tests/translate/storage/test_php.py::TestPhpUnit::test_escapes PASSED [ 62%] 221s tests/translate/storage/test_php.py::TestPhpUnit::test_note_sanity PASSED [ 62%] 221s tests/translate/storage/test_php.py::TestPhpUnit::test_line_number_default PASSED [ 62%] 221s tests/translate/storage/test_php.py::TestPhpUnit::test_target PASSED [ 62%] 221s tests/translate/storage/test_php.py::TestPhpUnit::test_rich_get PASSED [ 62%] 221s tests/translate/storage/test_php.py::TestPhpUnit::test_rich_set PASSED [ 62%] 221s tests/translate/storage/test_php.py::TestPhpUnit::test_difficult_escapes PASSED [ 62%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_create_blank PASSED [ 62%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_add PASSED [ 62%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_remove PASSED [ 62%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_find PASSED [ 62%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_parse PASSED [ 62%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_files PASSED [ 62%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_save PASSED [ 62%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_extensions PASSED [ 62%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_mimetypes PASSED [ 62%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_translate PASSED [ 62%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_markup PASSED [ 62%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_nonascii PASSED [ 62%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition PASSED [ 62%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition_source PASSED [ 62%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_spaces_in_name PASSED [ 62%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_comment_definition PASSED [ 62%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_comment_blocks PASSED [ 62%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_comment_output PASSED [ 62%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_comment_add PASSED [ 62%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_multiline PASSED [ 62%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays PASSED [ 62%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_array_no_array_syntax PASSED [ 62%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_spaces PASSED [ 62%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_quotes PASSED [ 62%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_number_as_value PASSED [ 62%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_non_textual PASSED [ 63%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_define PASSED [ 63%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_define_with_spaces_before_key PASSED [ 63%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_after_equal_delimiter PASSED [ 63%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_after_equal_delimiter_and_before_key PASSED [ 63%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_no_spaces_after_equal_delimiter PASSED [ 63%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_no_spaces_after_equaldel_but_before_key PASSED [ 63%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_entries_with_quotes PASSED [ 63%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_comments_at_entry_line_end PASSED [ 63%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_double_slash_comments_before_entries PASSED [ 63%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_before_end_delimiter PASSED [ 63%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simpledefinition_spaces_before_end_delimiter PASSED [ 63%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_no_trailing_comma PASSED [ 63%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_space_before_comma PASSED [ 63%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_space_before_array_declaration PASSED [ 63%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_declared_in_a_single_line PASSED [ 63%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_no_keys PASSED [ 63%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_no_keys_assigned_to_array PASSED [ 63%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_no_keys PASSED [ 63%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_assignment_in_line_where_multiline_comment_ends PASSED [ 63%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_using_short_array_syntax PASSED [ 63%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays PASSED [ 63%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_space_before_array_declaration PASSED [ 63%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_unnamed_nested_arrays PASSED [ 63%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_array_declaration_in_next_line PASSED [ 63%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_array_with_newline_after_delimiter PASSED [ 63%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_blank_entries PASSED [ 63%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_slashstar_in_string PASSED [ 63%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_heredoc_syntax PASSED [ 63%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition_after_define PASSED [ 63%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_quotes PASSED [ 63%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_concatenation PASSED [ 63%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_serialize PASSED [ 63%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_space_before_comma PASSED [ 63%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_equals_in_id PASSED [ 63%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_comma_in_string PASSED [ 63%] 221s tests/translate/storage/test_php.py::TestPhpFile::test_nowdoc PASSED [ 63%] 222s tests/translate/storage/test_php.py::TestPhpFile::test_plain_concatenation PASSED [ 63%] 222s tests/translate/storage/test_php.py::TestPhpFile::test_array_keys PASSED [ 63%] 222s tests/translate/storage/test_php.py::TestPhpFile::test_double_var PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestPhpFile::test_return_array PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_with_spaces PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_with_comments PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_short PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_short_quotes PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestPhpFile::test_addunit PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_isfuzzy PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_create PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_eq PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_escapes PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_difficult_escapes PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_note_sanity PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_line_number_default PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_target PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_rich_get PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_rich_set PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_create_blank PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_remove PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_find PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_parse PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_files PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_save PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_extensions PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_mimetypes PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_translate PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_markup PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_nonascii PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_plurals PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_key_stripping PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_key_stripping_array_syntax PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_key_stripping_numeric_keys PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_roundtrip_short_array PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_roundtrip_array_syntax PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_setid_preserves_structure PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_setid_with_array_syntax PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_addunit_with_setid PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_unit_to_short_array_file PASSED [ 64%] 222s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_unit_to_array_function_file PASSED [ 65%] 222s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_multiple_units_to_short_array PASSED [ 65%] 222s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_multiple_units_to_array_function PASSED [ 65%] 222s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_numeric_keys_no_quotes PASSED [ 65%] 222s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_empty_string_key PASSED [ 65%] 222s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_setid_with_non_string_value PASSED [ 65%] 222s tests/translate/storage/test_po.py::test_roundtrip_quoting PASSED [ 65%] 222s tests/translate/storage/test_po.py::TestPOUnit::test_isfuzzy PASSED [ 65%] 222s tests/translate/storage/test_po.py::TestPOUnit::test_create PASSED [ 65%] 222s tests/translate/storage/test_po.py::TestPOUnit::test_eq PASSED [ 65%] 222s tests/translate/storage/test_po.py::TestPOUnit::test_target PASSED [ 65%] 222s tests/translate/storage/test_po.py::TestPOUnit::test_escapes PASSED [ 65%] 222s tests/translate/storage/test_po.py::TestPOUnit::test_difficult_escapes PASSED [ 65%] 222s tests/translate/storage/test_po.py::TestPOUnit::test_note_sanity PASSED [ 65%] 222s tests/translate/storage/test_po.py::TestPOUnit::test_line_number_default PASSED [ 65%] 222s tests/translate/storage/test_po.py::TestPOUnit::test_rich_get PASSED [ 65%] 222s tests/translate/storage/test_po.py::TestPOUnit::test_rich_set PASSED [ 65%] 222s tests/translate/storage/test_po.py::TestPOUnit::test_istranslatable PASSED [ 65%] 222s tests/translate/storage/test_po.py::TestPOUnit::test_locations PASSED [ 65%] 222s tests/translate/storage/test_po.py::TestPOUnit::test_nongettext_location PASSED [ 65%] 222s tests/translate/storage/test_po.py::TestPOUnit::test_adding_empty_note PASSED [ 65%] 222s tests/translate/storage/test_po.py::TestPOUnit::test_markreview PASSED [ 65%] 222s tests/translate/storage/test_po.py::TestPOUnit::test_errors PASSED [ 65%] 222s tests/translate/storage/test_po.py::TestPOUnit::test_no_plural_settarget PASSED [ 65%] 222s tests/translate/storage/test_po.py::TestPOUnit::test_wrapping_bug PASSED [ 65%] 222s tests/translate/storage/test_po.py::TestPOUnit::test_extract_msgidcomments_from_text PASSED [ 65%] 222s tests/translate/storage/test_po.py::TestPOUnit::test_isheader PASSED [ 65%] 222s tests/translate/storage/test_po.py::TestPOUnit::test_buildfromunit PASSED [ 65%] 222s tests/translate/storage/test_po.py::TestPOFile::test_create_blank PASSED [ 65%] 222s tests/translate/storage/test_po.py::TestPOFile::test_add PASSED [ 65%] 222s tests/translate/storage/test_po.py::TestPOFile::test_remove PASSED [ 65%] 222s tests/translate/storage/test_po.py::TestPOFile::test_find PASSED [ 65%] 222s tests/translate/storage/test_po.py::TestPOFile::test_translate PASSED [ 65%] 222s tests/translate/storage/test_po.py::TestPOFile::test_parse PASSED [ 65%] 222s tests/translate/storage/test_po.py::TestPOFile::test_files PASSED [ 65%] 222s tests/translate/storage/test_po.py::TestPOFile::test_save PASSED [ 65%] 222s tests/translate/storage/test_po.py::TestPOFile::test_markup PASSED [ 65%] 222s tests/translate/storage/test_po.py::TestPOFile::test_nonascii PASSED [ 65%] 222s tests/translate/storage/test_po.py::TestPOFile::test_extensions PASSED [ 65%] 222s tests/translate/storage/test_po.py::TestPOFile::test_mimetypes PASSED [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_context_only PASSED [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_simpleentry PASSED [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_copy PASSED [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_parse_source_string PASSED [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_parse_file PASSED [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_unicode PASSED [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_plurals PASSED [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_plural_unicode PASSED [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_nongettext_location PASSED [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_percent_location PASSED [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_kde_plurals XFAIL [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_empty_lines_notes PASSED [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_fuzzy PASSED [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_untranslated XFAIL [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_merging_automaticcomments PASSED [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_malformed_units PASSED [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_invalid_keyword PASSED [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_malformed_obsolete_units PASSED [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_uniforum_po PASSED [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_obsolete PASSED [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_obsolete_with_prev_msgid PASSED [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_header_escapes PASSED [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete PASSED [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_plural PASSED [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_msgctxt PASSED [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_msgidcomments PASSED [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_multiline_obsolete PASSED [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_merge_duplicates PASSED [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_merge_mixed_sources PASSED [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_parse_context PASSED [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_parse_advanced_context PASSED [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_kde_context PASSED [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_broken_kde_context PASSED [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_id PASSED [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_non_ascii_header_comments PASSED [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_non_ascii_header_comments_2 PASSED [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_final_slash PASSED [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_unfinished_lines PASSED [ 66%] 222s tests/translate/storage/test_po.py::TestPOFile::test_encoding_change PASSED [ 67%] 222s tests/translate/storage/test_po.py::TestPOFile::test_istranslated PASSED [ 67%] 222s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_spaces PASSED [ 67%] 222s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long PASSED [ 67%] 222s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_fit PASSED [ 67%] 222s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_overflow PASSED [ 67%] 222s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_multiline PASSED [ 67%] 222s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_escapes PASSED [ 67%] 222s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_cjk PASSED [ 67%] 222s tests/translate/storage/test_po.py::TestPOFile::test_wrap_emoji PASSED [ 67%] 222s tests/translate/storage/test_po.py::TestPOFile::test_wrap_parenthesis PASSED [ 67%] 222s tests/translate/storage/test_po.py::TestPOFile::test_wrap_escape_line PASSED [ 67%] 222s tests/translate/storage/test_po.py::TestPOFile::test_wrap_parenthesis_long PASSED [ 67%] 222s tests/translate/storage/test_po.py::TestPOFile::test_wrap_gettext PASSED [ 67%] 222s tests/translate/storage/test_po.py::TestPOFile::test_wrap_wide_stop PASSED [ 67%] 222s tests/translate/storage/test_po.py::TestPOFile::test_wrap_escape PASSED [ 67%] 222s tests/translate/storage/test_po.py::TestPOFile::test_msgidcomments PASSED [ 67%] 222s tests/translate/storage/test_po.py::TestPOFile::test_unicode_ids PASSED [ 67%] 222s tests/translate/storage/test_po.py::TestPOFile::test_syntax_error PASSED [ 67%] 222s tests/translate/storage/test_po.py::TestPOFile::test_invalid PASSED [ 67%] 222s tests/translate/storage/test_po.py::TestPOFile::test_c_style_comment_error_reporting PASSED [ 67%] 222s tests/translate/storage/test_po.py::TestPOFile::test_wrapped_msgid PASSED [ 67%] 222s tests/translate/storage/test_po.py::TestPOFile::test_missing_plural PASSED [ 67%] 222s tests/translate/storage/test_po.py::TestPOFile::test_unusual_line_endings PASSED [ 67%] 222s tests/translate/storage/test_po.py::TestPOFile::test_charset_with_space PASSED [ 67%] 222s tests/translate/storage/test_po.py::TestPOFile::test_duplicate_msgid_error PASSED [ 67%] 222s tests/translate/storage/test_pocommon.py::test_roundtrip_quote_plus PASSED [ 67%] 222s tests/translate/storage/test_poheader.py::test_parseheaderstring PASSED [ 67%] 222s tests/translate/storage/test_poheader.py::test_update PASSED [ 67%] 222s tests/translate/storage/test_poheader.py::test_po_dates PASSED [ 67%] 222s tests/translate/storage/test_poheader.py::test_timezones PASSED [ 67%] 222s tests/translate/storage/test_poheader.py::test_header_blank PASSED [ 67%] 222s tests/translate/storage/test_poheader.py::test_plural_equation PASSED [ 67%] 222s tests/translate/storage/test_poheader.py::test_plural_equation_across_lines PASSED [ 67%] 222s tests/translate/storage/test_poheader.py::test_updatecontributor PASSED [ 67%] 222s tests/translate/storage/test_poheader.py::test_updatecontributor_header PASSED [ 67%] 222s tests/translate/storage/test_poheader.py::test_language PASSED [ 67%] 222s tests/translate/storage/test_poheader.py::test_project PASSED [ 67%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_isfuzzy PASSED [ 67%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_create PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_eq PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_target PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_escapes PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_difficult_escapes PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_note_sanity PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_line_number_default PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_rich_get PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_rich_set PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_markreview PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_errors PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_accepted_control_chars PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_unaccepted_control_chars PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_plurals PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_ids PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_create_blank PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_remove PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_find PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_translate PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_files PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_save PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_markup PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_nonascii PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_extensions PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_mimetypes PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_basic PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_namespace PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_rich_source PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_rich_target PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_source PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_target PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_sourcelanguage PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_targetlanguage PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_targetlanguage_multi PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_alttrans PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_fuzzy PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_xml_space PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parsing PASSED [ 68%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_marktranslatable PASSED [ 69%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_entities PASSED [ 69%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_multiple_filenodes PASSED [ 69%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_groups_when_adding_units PASSED [ 69%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_multiple_files_and_groups PASSED [ 69%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_unit_to_existing_group PASSED [ 69%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_unit_to_different_file PASSED [ 69%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_mixed_groups_and_body PASSED [ 69%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_addunit_with_new_false PASSED [ 69%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_namespace_preservation_across_versions PASSED [ 69%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_units_between_different_files PASSED [ 69%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_group_preservation_across_different_namespaces PASSED [ 69%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_cross_namespace_group_and_file_preservation PASSED [ 69%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_indent PASSED [ 69%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_target PASSED [ 69%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve PASSED [ 69%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_closing_tags PASSED [ 69%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_context_groups PASSED [ 69%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_getlocations PASSED [ 69%] 222s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_addlocation PASSED [ 69%] 223s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_huge PASSED [ 69%] 223s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_add PASSED [ 69%] 223s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parse PASSED [ 69%] 223s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parse_plural_alpha_id PASSED [ 69%] 223s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_notes PASSED [ 69%] 223s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_plural PASSED [ 69%] 223s tests/translate/storage/test_properties.py::test_find_delimiter_pos_simple PASSED [ 69%] 223s tests/translate/storage/test_properties.py::test_find_delimiter_pos_multiple PASSED [ 69%] 223s tests/translate/storage/test_properties.py::test_find_delimiter_pos_none PASSED [ 69%] 223s tests/translate/storage/test_properties.py::test_find_delimiter_pos_whitespace PASSED [ 69%] 223s tests/translate/storage/test_properties.py::test_find_delimiter_pos_escapes PASSED [ 69%] 223s tests/translate/storage/test_properties.py::test_find_delimiter_pos_empty_and_whitespace PASSED [ 69%] 223s tests/translate/storage/test_properties.py::test_find_delimiter_pos_tabs PASSED [ 69%] 223s tests/translate/storage/test_properties.py::test_is_line_continuation PASSED [ 69%] 223s tests/translate/storage/test_properties.py::test_key_strip PASSED [ 69%] 223s tests/translate/storage/test_properties.py::test_get_comment_one_line PASSED [ 69%] 223s tests/translate/storage/test_properties.py::test_get_comment_start PASSED [ 69%] 223s tests/translate/storage/test_properties.py::test_get_comment_end PASSED [ 69%] 223s tests/translate/storage/test_properties.py::TestPropUnit::test_isfuzzy PASSED [ 69%] 223s tests/translate/storage/test_properties.py::TestPropUnit::test_create PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestPropUnit::test_eq PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestPropUnit::test_escapes PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestPropUnit::test_difficult_escapes PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestPropUnit::test_note_sanity PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestPropUnit::test_line_number_default PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestPropUnit::test_target PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestPropUnit::test_rich_get PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestPropUnit::test_rich_set PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestGwtProp::test_create_blank PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestGwtProp::test_add PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestGwtProp::test_remove PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestGwtProp::test_find PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestGwtProp::test_parse PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestGwtProp::test_files PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestGwtProp::test_save PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestGwtProp::test_extensions PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestGwtProp::test_mimetypes PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestGwtProp::test_translate PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestGwtProp::test_markup PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestGwtProp::test_nonascii PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestGwtProp::test_quotes PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestGwtProp::test_simpledefinition PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestGwtProp::test_doubledefinition PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestGwtProp::test_doubledefinition_source PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestGwtProp::test_reduce PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestGwtProp::test_increase PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestGwtProp::test_extra_plurals PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestGwtProp::test_non_plurals PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestGwtProp::test_encoding PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestGwtProp::test_other_plurals PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestProp::test_create_blank PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestProp::test_add PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestProp::test_remove PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestProp::test_find PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestProp::test_parse PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestProp::test_files PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestProp::test_save PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestProp::test_extensions PASSED [ 70%] 223s tests/translate/storage/test_properties.py::TestProp::test_mimetypes PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_translate PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_markup PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_nonascii PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_simpledefinition PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_simpledefinition_source PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_controlutf8_source PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_control_source PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_unicode_escaping PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_newlines_startend PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_space PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_whitespace_handling PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_key_value_delimiters_simple PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_tab_delimiter_parsing PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_comments PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_latin1 PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_fullspec_delimiters PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_fullspec_escaped_key PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_fullspec_line_continuation PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_fullspec_key_without_value PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_mac_strings PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_utf_16_save PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_mac_multiline_strings PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_unicode PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_utf8 PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_newlines PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comments PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_multilines_comments PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comments_dropping PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_inline_comments PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_inline_comments_nested PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_inline_comment_with_spaces PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_before_entry PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_between_key_and_equals PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_between_equals_and_value PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_after_value_before_semicolon PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_multiple_inline_comments PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_nested_comment PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_inside_value PASSED [ 71%] 223s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_trailing_whitespace_after_semicolon PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_quotes PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_equals PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_serialization PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_double_backslashes PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestProp::test_override_encoding PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestProp::test_trailing_comments PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestProp::test_utf16_byte_order_mark PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestProp::test_raise_ioerror_if_cannot_detect_encoding PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestProp::test_utf8_byte_order_mark PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestProp::test_utf16_bom_no_warning PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestProp::test_joomla_set_target PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestProp::test_joomla PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestProp::test_joomla_escape PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestProp::test_serialize_missing_delimiter PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestProp::test_serialize_missing_value PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestProp::test_multi_comments PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestProp::test_serialize_note PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestProp::test_serialize_long_note PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestProp::test_trailing_newlines PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestXWiki::test_create_blank PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestXWiki::test_add PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestXWiki::test_remove PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestXWiki::test_find PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestXWiki::test_parse PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestXWiki::test_files PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestXWiki::test_save PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestXWiki::test_extensions PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestXWiki::test_mimetypes PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestXWiki::test_translate PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestXWiki::test_markup PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestXWiki::test_nonascii PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestXWiki::test_simpledefinition PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestXWiki::test_missing_definition PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestXWiki::test_missing_definition_source PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestXWiki::test_definition_with_simple_quote PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestXWiki::test_definition_with_simple_quote_and_argument PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestXWiki::test_header_preserved PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestXWiki::test_blank_line_before_comment_preserved PASSED [ 72%] 223s tests/translate/storage/test_properties.py::TestXWiki::test_deprecated_comments_preserved PASSED [ 73%] 223s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_create_blank PASSED [ 73%] 223s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_add PASSED [ 73%] 223s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_remove PASSED [ 73%] 223s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_find PASSED [ 73%] 223s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_parse PASSED [ 73%] 223s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_files PASSED [ 73%] 223s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_save PASSED [ 73%] 223s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_extensions PASSED [ 73%] 223s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_mimetypes PASSED [ 73%] 223s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_translate PASSED [ 73%] 223s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_markup PASSED [ 73%] 223s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_nonascii PASSED [ 73%] 223s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_simpledefinition PASSED [ 73%] 223s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_missing_definition PASSED [ 73%] 223s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_missing_definition_source PASSED [ 73%] 223s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_simple_quote PASSED [ 73%] 223s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_simple_quote_and_argument PASSED [ 73%] 223s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_encoded_html PASSED [ 73%] 223s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_cleaning_attributes PASSED [ 73%] 223s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_translate_source PASSED [ 73%] 223s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_create_blank PASSED [ 73%] 223s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_add PASSED [ 73%] 223s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_find PASSED [ 73%] 223s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_extensions PASSED [ 73%] 223s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_mimetypes PASSED [ 73%] 223s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_translate PASSED [ 73%] 223s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_markup PASSED [ 73%] 223s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_nonascii PASSED [ 73%] 223s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_simpledefinition PASSED [ 73%] 223s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_parse PASSED [ 73%] 223s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_files PASSED [ 73%] 223s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_save PASSED [ 73%] 223s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_cleaning_attributes PASSED [ 73%] 223s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_remove XFAIL [ 73%] 223s tests/translate/storage/test_pypo.py::TestHelpers::test_unescape PASSED [ 73%] 223s tests/translate/storage/test_pypo.py::TestHelpers::test_quoteforpo PASSED [ 73%] 223s tests/translate/storage/test_pypo.py::TestHelpers::test_quoteforpo_escaped_quotes PASSED [ 73%] 223s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_isfuzzy PASSED [ 73%] 223s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_create PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_eq PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_target PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_escapes PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_difficult_escapes PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_note_sanity PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_line_number_default PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_rich_get PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_rich_set PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_istranslatable PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_locations PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_nongettext_location PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_adding_empty_note PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_markreview PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_errors PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_no_plural_settarget PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrapping_bug PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_extract_msgidcomments_from_text PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_isheader PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_buildfromunit PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_plurals PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_plural_reduction PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes_withcomments PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes_with_blank_lines PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_firstlines PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_newlines PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_max_line_length PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_slash PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_spacing_max_line PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_create_blank PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_add PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_remove PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_find PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_translate PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_files PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_save PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_markup PASSED [ 74%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_nonascii PASSED [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_extensions PASSED [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mimetypes PASSED [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_context_only PASSED [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_simpleentry PASSED [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_copy PASSED [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_source_string PASSED [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_file PASSED [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode PASSED [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_plurals PASSED [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_plural_unicode PASSED [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_nongettext_location PASSED [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_percent_location PASSED [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_plurals XFAIL [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_empty_lines_notes PASSED [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_fuzzy PASSED [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_untranslated XFAIL [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merging_automaticcomments PASSED [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_malformed_units PASSED [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_invalid_keyword PASSED [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_malformed_obsolete_units PASSED [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_uniforum_po PASSED [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_obsolete PASSED [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_obsolete_with_prev_msgid PASSED [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_header_escapes PASSED [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete PASSED [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_plural PASSED [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_msgctxt PASSED [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_msgidcomments PASSED [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_multiline_obsolete PASSED [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_duplicates PASSED [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_mixed_sources PASSED [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_context PASSED [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_advanced_context PASSED [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_context PASSED [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_broken_kde_context PASSED [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_id PASSED [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_non_ascii_header_comments PASSED [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_non_ascii_header_comments_2 PASSED [ 75%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_final_slash PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unfinished_lines PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_encoding_change PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_istranslated PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_spaces PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_fit PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_overflow PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_multiline PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_escapes PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_cjk PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_emoji PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_parenthesis PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_escape_line PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_parenthesis_long PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_gettext PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_wide_stop PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_escape PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_msgidcomments PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode_ids PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_syntax_error PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_c_style_comment_error_reporting PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapped_msgid PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_missing_plural PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unusual_line_endings PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_charset_with_space PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_duplicate_msgid_error PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_combine_msgidcomments PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_duplicates_msgctxt PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_blanks PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_output_str_unicode PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_posections PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_typecomments PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_future_flags PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unassociated_comments PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode_header PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_prevmsgid_parse PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_newlines PASSED [ 76%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unix_newlines PASSED [ 77%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines PASSED [ 77%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mac_newlines PASSED [ 77%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines PASSED [ 77%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_header PASSED [ 77%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_comment PASSED [ 77%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_bom PASSED [ 77%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_long_msgidcomments PASSED [ 77%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_incomplete PASSED [ 77%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_invalid PASSED [ 77%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines_write PASSED [ 77%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_typecomment XFAIL [ 77%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines_typecomment PASSED [ 77%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_custom PASSED [ 77%] 223s tests/translate/storage/test_pypo.py::TestPYPOFile::test_line_number PASSED [ 77%] 223s tests/translate/storage/test_qm.py::TestQtUnit::test_isfuzzy PASSED [ 77%] 223s tests/translate/storage/test_qm.py::TestQtUnit::test_create PASSED [ 77%] 223s tests/translate/storage/test_qm.py::TestQtUnit::test_eq PASSED [ 77%] 223s tests/translate/storage/test_qm.py::TestQtUnit::test_target PASSED [ 77%] 223s tests/translate/storage/test_qm.py::TestQtUnit::test_escapes PASSED [ 77%] 223s tests/translate/storage/test_qm.py::TestQtUnit::test_difficult_escapes PASSED [ 77%] 223s tests/translate/storage/test_qm.py::TestQtUnit::test_note_sanity PASSED [ 77%] 223s tests/translate/storage/test_qm.py::TestQtUnit::test_line_number_default PASSED [ 77%] 223s tests/translate/storage/test_qm.py::TestQtUnit::test_rich_get PASSED [ 77%] 223s tests/translate/storage/test_qm.py::TestQtUnit::test_rich_set PASSED [ 77%] 223s tests/translate/storage/test_qm.py::TestQtFile::test_create_blank PASSED [ 77%] 223s tests/translate/storage/test_qm.py::TestQtFile::test_find PASSED [ 77%] 223s tests/translate/storage/test_qm.py::TestQtFile::test_translate PASSED [ 77%] 223s tests/translate/storage/test_qm.py::TestQtFile::test_markup PASSED [ 77%] 223s tests/translate/storage/test_qm.py::TestQtFile::test_extensions PASSED [ 77%] 223s tests/translate/storage/test_qm.py::TestQtFile::test_mimetypes PASSED [ 77%] 223s tests/translate/storage/test_qm.py::TestQtFile::test_parse PASSED [ 77%] 223s tests/translate/storage/test_qm.py::TestQtFile::test_save PASSED [ 77%] 223s tests/translate/storage/test_qm.py::TestQtFile::test_files PASSED [ 77%] 223s tests/translate/storage/test_qm.py::TestQtFile::test_nonascii PASSED [ 77%] 223s tests/translate/storage/test_qm.py::TestQtFile::test_add PASSED [ 77%] 223s tests/translate/storage/test_qm.py::TestQtFile::test_remove PASSED [ 77%] 223s tests/translate/storage/test_qph.py::TestQphUnit::test_isfuzzy PASSED [ 77%] 223s tests/translate/storage/test_qph.py::TestQphUnit::test_create PASSED [ 77%] 223s tests/translate/storage/test_qph.py::TestQphUnit::test_eq PASSED [ 78%] 223s tests/translate/storage/test_qph.py::TestQphUnit::test_target PASSED [ 78%] 223s tests/translate/storage/test_qph.py::TestQphUnit::test_escapes PASSED [ 78%] 223s tests/translate/storage/test_qph.py::TestQphUnit::test_difficult_escapes PASSED [ 78%] 223s tests/translate/storage/test_qph.py::TestQphUnit::test_note_sanity PASSED [ 78%] 223s tests/translate/storage/test_qph.py::TestQphUnit::test_line_number_default PASSED [ 78%] 223s tests/translate/storage/test_qph.py::TestQphUnit::test_rich_get PASSED [ 78%] 223s tests/translate/storage/test_qph.py::TestQphUnit::test_rich_set PASSED [ 78%] 223s tests/translate/storage/test_qph.py::TestQphFile::test_create_blank PASSED [ 78%] 223s tests/translate/storage/test_qph.py::TestQphFile::test_add PASSED [ 78%] 223s tests/translate/storage/test_qph.py::TestQphFile::test_remove PASSED [ 78%] 223s tests/translate/storage/test_qph.py::TestQphFile::test_find PASSED [ 78%] 223s tests/translate/storage/test_qph.py::TestQphFile::test_translate PASSED [ 78%] 223s tests/translate/storage/test_qph.py::TestQphFile::test_parse PASSED [ 78%] 223s tests/translate/storage/test_qph.py::TestQphFile::test_files PASSED [ 78%] 223s tests/translate/storage/test_qph.py::TestQphFile::test_save PASSED [ 78%] 223s tests/translate/storage/test_qph.py::TestQphFile::test_markup PASSED [ 78%] 223s tests/translate/storage/test_qph.py::TestQphFile::test_nonascii PASSED [ 78%] 223s tests/translate/storage/test_qph.py::TestQphFile::test_extensions PASSED [ 78%] 223s tests/translate/storage/test_qph.py::TestQphFile::test_mimetypes PASSED [ 78%] 223s tests/translate/storage/test_qph.py::TestQphFile::test_basic PASSED [ 78%] 223s tests/translate/storage/test_qph.py::TestQphFile::test_source PASSED [ 78%] 223s tests/translate/storage/test_qph.py::TestQphFile::test_target PASSED [ 78%] 223s tests/translate/storage/test_qph.py::TestQphFile::test_language PASSED [ 78%] 223s tests/translate/storage/test_rc.py::test_escaping PASSED [ 78%] 224s tests/translate/storage/test_rc.py::TestRcFile::test_parse_only_comments PASSED [ 78%] 224s tests/translate/storage/test_rc.py::TestRcFile::test_parse_only_textinclude PASSED [ 78%] 224s tests/translate/storage/test_rc.py::TestRcFile::test_parse_dialog PASSED [ 78%] 224s tests/translate/storage/test_rc.py::TestRcFile::test_parse_stringtable PASSED [ 78%] 224s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_lf PASSED [ 78%] 224s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_crlf PASSED [ 78%] 224s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_cr PASSED [ 78%] 224s tests/translate/storage/test_rc.py::TestRcFile::test_parse_no_language PASSED [ 78%] 224s tests/translate/storage/test_rc.py::TestRcFile::test_textinclude PASSED [ 78%] 224s tests/translate/storage/test_rc.py::TestRcFile::test_multiline PASSED [ 78%] 224s tests/translate/storage/test_rc.py::TestRcFile::test_str PASSED [ 78%] 224s tests/translate/storage/test_rc.py::TestRcFile::test_empty PASSED [ 78%] 224s tests/translate/storage/test_rc.py::TestRcFile::test_utf_8 PASSED [ 78%] 224s tests/translate/storage/test_rc.py::TestRcFile::test_utf_16 PASSED [ 78%] 224s tests/translate/storage/test_rc.py::TestRcFile::test_comment PASSED [ 79%] 224s tests/translate/storage/test_rc.py::TestRcFile::test_stringtables PASSED [ 79%] 224s tests/translate/storage/test_rc.py::TestRcFile::test_textinclude_appstudio PASSED [ 79%] 224s tests/translate/storage/test_rc.py::TestRcFile::test_id_whitespace PASSED [ 79%] 224s tests/translate/storage/test_rc.py::TestRcFile::test_menu_comment PASSED [ 79%] 224s tests/translate/storage/test_rc.py::TestRcFile::test_decompiled PASSED [ 79%] 224s tests/translate/storage/test_rc.py::TestRcFile::test_quotes PASSED [ 79%] 224s tests/translate/storage/test_rc.py::TestRcFile::test_utf16_pragma_code_page PASSED [ 79%] 224s tests/translate/storage/test_rc.py::TestRcFile::test_utf8_pragma_code_page PASSED [ 79%] 224s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_isfuzzy PASSED [ 79%] 224s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_create PASSED [ 79%] 224s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_eq PASSED [ 79%] 224s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_escapes PASSED [ 79%] 224s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_difficult_escapes PASSED [ 79%] 224s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_note_sanity PASSED [ 79%] 224s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_line_number_default PASSED [ 79%] 224s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_target PASSED [ 79%] 224s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_rich_get PASSED [ 79%] 224s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_rich_set PASSED [ 79%] 224s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_create_blank PASSED [ 79%] 224s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_add PASSED [ 79%] 224s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_remove PASSED [ 79%] 224s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_find PASSED [ 79%] 224s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_parse PASSED [ 79%] 224s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_files PASSED [ 79%] 224s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_save PASSED [ 79%] 224s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_extensions PASSED [ 79%] 224s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_mimetypes PASSED [ 79%] 224s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_translate PASSED [ 79%] 224s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_markup PASSED [ 79%] 224s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_nonascii PASSED [ 79%] 224s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_roundtrip PASSED [ 79%] 224s tests/translate/storage/test_resx.py::TestRESXUnit::test_isfuzzy PASSED [ 79%] 224s tests/translate/storage/test_resx.py::TestRESXUnit::test_create PASSED [ 79%] 224s tests/translate/storage/test_resx.py::TestRESXUnit::test_eq PASSED [ 79%] 224s tests/translate/storage/test_resx.py::TestRESXUnit::test_escapes PASSED [ 79%] 224s tests/translate/storage/test_resx.py::TestRESXUnit::test_difficult_escapes PASSED [ 79%] 224s tests/translate/storage/test_resx.py::TestRESXUnit::test_note_sanity PASSED [ 79%] 224s tests/translate/storage/test_resx.py::TestRESXUnit::test_line_number_default PASSED [ 79%] 224s tests/translate/storage/test_resx.py::TestRESXUnit::test_target PASSED [ 80%] 224s tests/translate/storage/test_resx.py::TestRESXUnit::test_rich_get PASSED [ 80%] 224s tests/translate/storage/test_resx.py::TestRESXUnit::test_rich_set PASSED [ 80%] 224s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_isfuzzy PASSED [ 80%] 224s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_create PASSED [ 80%] 224s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_eq PASSED [ 80%] 224s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_escapes PASSED [ 80%] 224s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_difficult_escapes PASSED [ 80%] 224s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_note_sanity PASSED [ 80%] 224s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_line_number_default PASSED [ 80%] 224s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_target PASSED [ 80%] 224s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_rich_get PASSED [ 80%] 224s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_rich_set PASSED [ 80%] 224s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_newunit PASSED [ 80%] 224s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_newunit_comment PASSED [ 80%] 224s tests/translate/storage/test_resx.py::TestRESXfile::test_create_blank PASSED [ 80%] 224s tests/translate/storage/test_resx.py::TestRESXfile::test_add PASSED [ 80%] 224s tests/translate/storage/test_resx.py::TestRESXfile::test_remove PASSED [ 80%] 224s tests/translate/storage/test_resx.py::TestRESXfile::test_find PASSED [ 80%] 224s tests/translate/storage/test_resx.py::TestRESXfile::test_parse PASSED [ 80%] 224s tests/translate/storage/test_resx.py::TestRESXfile::test_files PASSED [ 80%] 224s tests/translate/storage/test_resx.py::TestRESXfile::test_save PASSED [ 80%] 224s tests/translate/storage/test_resx.py::TestRESXfile::test_extensions PASSED [ 80%] 224s tests/translate/storage/test_resx.py::TestRESXfile::test_mimetypes PASSED [ 80%] 224s tests/translate/storage/test_resx.py::TestRESXfile::test_translate PASSED [ 80%] 224s tests/translate/storage/test_resx.py::TestRESXfile::test_markup PASSED [ 80%] 224s tests/translate/storage/test_resx.py::TestRESXfile::test_nonascii PASSED [ 80%] 224s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_isfuzzy PASSED [ 80%] 224s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_create PASSED [ 80%] 224s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_eq PASSED [ 80%] 224s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_escapes PASSED [ 80%] 224s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_difficult_escapes PASSED [ 80%] 224s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_note_sanity PASSED [ 80%] 224s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_line_number_default PASSED [ 80%] 224s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_target PASSED [ 80%] 224s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_rich_get PASSED [ 80%] 224s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_rich_set PASSED [ 80%] 224s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_source PASSED [ 80%] 224s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_eq_formatvaluetype PASSED [ 80%] 224s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_innerkey PASSED [ 81%] 224s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_create_blank PASSED [ 81%] 224s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_add PASSED [ 81%] 224s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_remove PASSED [ 81%] 224s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_find PASSED [ 81%] 224s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_parse PASSED [ 81%] 224s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_files PASSED [ 81%] 224s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_save PASSED [ 81%] 224s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_extensions PASSED [ 81%] 224s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_mimetypes PASSED [ 81%] 224s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_translate PASSED [ 81%] 224s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_markup PASSED [ 81%] 224s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_nonascii PASSED [ 81%] 224s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_serialize PASSED [ 81%] 224s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_default_handlings PASSED [ 81%] 224s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_filename PASSED [ 81%] 224s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_base_filename PASSED [ 81%] 224s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_filename_default_language PASSED [ 81%] 224s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_plural_zero_always_set PASSED [ 81%] 224s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_add_unit PASSED [ 81%] 224s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_create_blank PASSED [ 81%] 224s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_add PASSED [ 81%] 224s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_remove PASSED [ 81%] 224s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_find PASSED [ 81%] 224s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_parse PASSED [ 81%] 224s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_files PASSED [ 81%] 224s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_save PASSED [ 81%] 224s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_extensions PASSED [ 81%] 224s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_mimetypes PASSED [ 81%] 224s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_translate PASSED [ 81%] 224s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_markup PASSED [ 81%] 224s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_nonascii PASSED [ 81%] 224s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_ordering PASSED [ 81%] 224s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_create_blank PASSED [ 81%] 224s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_add PASSED [ 81%] 224s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_remove PASSED [ 81%] 224s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_find PASSED [ 81%] 224s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_parse PASSED [ 81%] 224s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_files PASSED [ 81%] 224s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_save PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_extensions PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_mimetypes PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_translate PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_markup PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_nonascii PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_ordering PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_note_sanity XFAIL [ 82%] 224s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_create_blank PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_add PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_remove PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_find PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_parse PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_files PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_save PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_extensions PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_mimetypes PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_translate PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_markup PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_nonascii PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_ordering PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_create_blank PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_add PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_remove PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_find PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_parse PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_files PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_save PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_extensions PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_mimetypes PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_translate PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_markup PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_nonascii PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_ordering PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_style_preservation PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_create_blank PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_add PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_remove PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_find PASSED [ 82%] 224s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_parse PASSED [ 83%] 224s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_files PASSED [ 83%] 224s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_save PASSED [ 83%] 224s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_extensions PASSED [ 83%] 224s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_mimetypes PASSED [ 83%] 224s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_translate PASSED [ 83%] 224s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_markup PASSED [ 83%] 224s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_nonascii PASSED [ 83%] 224s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_ordering PASSED [ 83%] 224s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_style_preservation PASSED [ 83%] 224s tests/translate/storage/test_tbx.py::TestTBXUnit::test_isfuzzy PASSED [ 83%] 224s tests/translate/storage/test_tbx.py::TestTBXUnit::test_create PASSED [ 83%] 224s tests/translate/storage/test_tbx.py::TestTBXUnit::test_eq PASSED [ 83%] 224s tests/translate/storage/test_tbx.py::TestTBXUnit::test_target PASSED [ 83%] 224s tests/translate/storage/test_tbx.py::TestTBXUnit::test_escapes PASSED [ 83%] 224s tests/translate/storage/test_tbx.py::TestTBXUnit::test_difficult_escapes PASSED [ 83%] 224s tests/translate/storage/test_tbx.py::TestTBXUnit::test_note_sanity PASSED [ 83%] 224s tests/translate/storage/test_tbx.py::TestTBXUnit::test_line_number_default PASSED [ 83%] 224s tests/translate/storage/test_tbx.py::TestTBXUnit::test_rich_get PASSED [ 83%] 224s tests/translate/storage/test_tbx.py::TestTBXUnit::test_rich_set PASSED [ 83%] 224s tests/translate/storage/test_tbx.py::TestTBXfile::test_create_blank PASSED [ 83%] 224s tests/translate/storage/test_tbx.py::TestTBXfile::test_add PASSED [ 83%] 224s tests/translate/storage/test_tbx.py::TestTBXfile::test_remove PASSED [ 83%] 224s tests/translate/storage/test_tbx.py::TestTBXfile::test_find PASSED [ 83%] 224s tests/translate/storage/test_tbx.py::TestTBXfile::test_translate PASSED [ 83%] 224s tests/translate/storage/test_tbx.py::TestTBXfile::test_parse PASSED [ 83%] 224s tests/translate/storage/test_tbx.py::TestTBXfile::test_files PASSED [ 83%] 224s tests/translate/storage/test_tbx.py::TestTBXfile::test_save PASSED [ 83%] 224s tests/translate/storage/test_tbx.py::TestTBXfile::test_markup PASSED [ 83%] 224s tests/translate/storage/test_tbx.py::TestTBXfile::test_nonascii PASSED [ 83%] 224s tests/translate/storage/test_tbx.py::TestTBXfile::test_extensions PASSED [ 83%] 224s tests/translate/storage/test_tbx.py::TestTBXfile::test_mimetypes PASSED [ 83%] 224s tests/translate/storage/test_tbx.py::TestTBXfile::test_basic PASSED [ 83%] 224s tests/translate/storage/test_tbx.py::TestTBXfile::test_source PASSED [ 83%] 224s tests/translate/storage/test_tbx.py::TestTBXfile::test_target PASSED [ 83%] 224s tests/translate/storage/test_tbx.py::TestTBXfile::test_setid PASSED [ 83%] 224s tests/translate/storage/test_tbx.py::TestTBXfile::test_indent PASSED [ 83%] 224s tests/translate/storage/test_tbx.py::TestTBXfile::test_descrip PASSED [ 83%] 224s tests/translate/storage/test_tbx.py::TestTBXfile::test_note_from PASSED [ 83%] 224s tests/translate/storage/test_tbx.py::TestTBXfile::test_administrative_status_and_translation_needed PASSED [ 84%] 224s tests/translate/storage/test_tiki.py::TestTikiUnit::test_locations PASSED [ 84%] 224s tests/translate/storage/test_tiki.py::TestTikiUnit::test_to_unicode PASSED [ 84%] 224s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_simple PASSED [ 84%] 224s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_encode PASSED [ 84%] 224s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_locations PASSED [ 84%] 224s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_ignore_extras PASSED [ 84%] 224s tests/translate/storage/test_tmx.py::TestTMXUnit::test_isfuzzy PASSED [ 84%] 224s tests/translate/storage/test_tmx.py::TestTMXUnit::test_create PASSED [ 84%] 224s tests/translate/storage/test_tmx.py::TestTMXUnit::test_eq PASSED [ 84%] 224s tests/translate/storage/test_tmx.py::TestTMXUnit::test_target PASSED [ 84%] 224s tests/translate/storage/test_tmx.py::TestTMXUnit::test_escapes PASSED [ 84%] 224s tests/translate/storage/test_tmx.py::TestTMXUnit::test_difficult_escapes PASSED [ 84%] 224s tests/translate/storage/test_tmx.py::TestTMXUnit::test_note_sanity PASSED [ 84%] 224s tests/translate/storage/test_tmx.py::TestTMXUnit::test_line_number_default PASSED [ 84%] 224s tests/translate/storage/test_tmx.py::TestTMXUnit::test_rich_get PASSED [ 84%] 224s tests/translate/storage/test_tmx.py::TestTMXUnit::test_rich_set PASSED [ 84%] 224s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_isfuzzy PASSED [ 84%] 224s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_create PASSED [ 84%] 224s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_eq PASSED [ 84%] 224s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_target PASSED [ 84%] 224s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_escapes PASSED [ 84%] 224s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_difficult_escapes PASSED [ 84%] 224s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_note_sanity PASSED [ 84%] 224s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_line_number_default PASSED [ 84%] 224s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_rich_get PASSED [ 84%] 224s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_rich_set PASSED [ 84%] 224s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_context PASSED [ 84%] 224s tests/translate/storage/test_tmx.py::TestTMXfile::test_create_blank PASSED [ 84%] 224s tests/translate/storage/test_tmx.py::TestTMXfile::test_add PASSED [ 84%] 224s tests/translate/storage/test_tmx.py::TestTMXfile::test_remove PASSED [ 84%] 224s tests/translate/storage/test_tmx.py::TestTMXfile::test_find PASSED [ 84%] 224s tests/translate/storage/test_tmx.py::TestTMXfile::test_parse PASSED [ 84%] 224s tests/translate/storage/test_tmx.py::TestTMXfile::test_files PASSED [ 84%] 224s tests/translate/storage/test_tmx.py::TestTMXfile::test_save PASSED [ 84%] 224s tests/translate/storage/test_tmx.py::TestTMXfile::test_markup PASSED [ 84%] 224s tests/translate/storage/test_tmx.py::TestTMXfile::test_nonascii PASSED [ 84%] 224s tests/translate/storage/test_tmx.py::TestTMXfile::test_extensions PASSED [ 84%] 224s tests/translate/storage/test_tmx.py::TestTMXfile::test_mimetypes PASSED [ 84%] 224s tests/translate/storage/test_tmx.py::TestTMXfile::test_translate PASSED [ 85%] 224s tests/translate/storage/test_tmx.py::TestTMXfile::test_addtranslation PASSED [ 85%] 224s tests/translate/storage/test_tmx.py::TestTMXfile::test_withcomment PASSED [ 85%] 224s tests/translate/storage/test_tmx.py::TestTMXfile::test_withnewlines PASSED [ 85%] 224s tests/translate/storage/test_tmx.py::TestTMXfile::test_xmlentities PASSED [ 85%] 224s tests/translate/storage/test_tmx.py::TestTMXfile::test_controls_cleaning PASSED [ 85%] 224s tests/translate/storage/test_tmx.py::TestTMXfile::test_context PASSED [ 85%] 224s tests/translate/storage/test_tmx.py::TestTMXfile::test_note_order PASSED [ 85%] 224s tests/translate/storage/test_tmx.py::TestTMXfile::test_prop_and_note_order PASSED [ 85%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_isfuzzy PASSED [ 85%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_create PASSED [ 85%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_eq PASSED [ 85%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_escapes PASSED [ 85%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_difficult_escapes PASSED [ 85%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_note_sanity PASSED [ 85%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_line_number_default PASSED [ 85%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_target PASSED [ 85%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_rich_get PASSED [ 85%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_rich_set PASSED [ 85%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_getlocations PASSED [ 85%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_create_blank PASSED [ 85%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_add PASSED [ 85%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_find PASSED [ 85%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_parse PASSED [ 85%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_files PASSED [ 85%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_save PASSED [ 85%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_extensions PASSED [ 85%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_mimetypes PASSED [ 85%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_translate PASSED [ 85%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_markup PASSED [ 85%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_nonascii PASSED [ 85%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_serialize PASSED [ 85%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_empty PASSED [ 85%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_edit PASSED [ 85%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_edit_unicode PASSED [ 85%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_parse_unicode_list PASSED [ 85%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_ordering PASSED [ 85%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_nested PASSED [ 85%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_multiline PASSED [ 85%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_boolean PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_integer PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_no_quote_strings PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_double_quote_strings PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_single_quote_strings PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_escaped_double_quotes PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_newlines PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_list PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_inline_table PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_key_nesting PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_add_to_empty PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_dict_in_list PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_remove PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_special PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_extraction_simple PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_extraction_multiline PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_no_comment_backwards_compat PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_simple PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_multiline PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_nested PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_with_modification PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_literal_string PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_multiline_basic_string PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_multiline_literal_string PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_create_blank PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_add PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_remove PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_find PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_parse PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_files PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_save PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_extensions PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_mimetypes PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_translate PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_markup PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_nonascii PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_simple_plural PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_plural_with_other_keys PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_full_plural_forms PASSED [ 86%] 224s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_roundtrip_plural PASSED [ 87%] 224s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_mixed_content PASSED [ 87%] 224s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_letsencrypt_style PASSED [ 87%] 224s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_comment_preservation_goi18n PASSED [ 87%] 224s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_comment_preservation_goi18n_plural PASSED [ 87%] 224s tests/translate/storage/test_trados.py::test_unescape PASSED [ 87%] 224s tests/translate/storage/test_trados.py::test_escape PASSED [ 87%] 224s tests/translate/storage/test_ts.py::TestTS::test_construct PASSED [ 87%] 224s tests/translate/storage/test_ts2.py::TestTSUnit::test_isfuzzy PASSED [ 87%] 224s tests/translate/storage/test_ts2.py::TestTSUnit::test_create PASSED [ 87%] 224s tests/translate/storage/test_ts2.py::TestTSUnit::test_eq PASSED [ 87%] 224s tests/translate/storage/test_ts2.py::TestTSUnit::test_target PASSED [ 87%] 224s tests/translate/storage/test_ts2.py::TestTSUnit::test_escapes PASSED [ 87%] 224s tests/translate/storage/test_ts2.py::TestTSUnit::test_difficult_escapes PASSED [ 87%] 224s tests/translate/storage/test_ts2.py::TestTSUnit::test_note_sanity PASSED [ 87%] 224s tests/translate/storage/test_ts2.py::TestTSUnit::test_line_number_default PASSED [ 87%] 224s tests/translate/storage/test_ts2.py::TestTSUnit::test_rich_get PASSED [ 87%] 224s tests/translate/storage/test_ts2.py::TestTSUnit::test_rich_set PASSED [ 87%] 224s tests/translate/storage/test_ts2.py::TestTSfile::test_create_blank PASSED [ 87%] 224s tests/translate/storage/test_ts2.py::TestTSfile::test_add PASSED [ 87%] 224s tests/translate/storage/test_ts2.py::TestTSfile::test_remove PASSED [ 87%] 224s tests/translate/storage/test_ts2.py::TestTSfile::test_find PASSED [ 87%] 224s tests/translate/storage/test_ts2.py::TestTSfile::test_translate PASSED [ 87%] 224s tests/translate/storage/test_ts2.py::TestTSfile::test_parse PASSED [ 87%] 224s tests/translate/storage/test_ts2.py::TestTSfile::test_files PASSED [ 87%] 224s tests/translate/storage/test_ts2.py::TestTSfile::test_save PASSED [ 87%] 224s tests/translate/storage/test_ts2.py::TestTSfile::test_markup PASSED [ 87%] 224s tests/translate/storage/test_ts2.py::TestTSfile::test_nonascii PASSED [ 87%] 224s tests/translate/storage/test_ts2.py::TestTSfile::test_extensions PASSED [ 87%] 224s tests/translate/storage/test_ts2.py::TestTSfile::test_mimetypes PASSED [ 87%] 224s tests/translate/storage/test_ts2.py::TestTSfile::test_basic PASSED [ 87%] 224s tests/translate/storage/test_ts2.py::TestTSfile::test_source PASSED [ 87%] 224s tests/translate/storage/test_ts2.py::TestTSfile::test_target PASSED [ 87%] 224s tests/translate/storage/test_ts2.py::TestTSfile::test_plurals PASSED [ 87%] 224s tests/translate/storage/test_ts2.py::TestTSfile::test_nplural PASSED [ 87%] 224s tests/translate/storage/test_ts2.py::TestTSfile::test_language PASSED [ 87%] 224s tests/translate/storage/test_ts2.py::TestTSfile::test_edit PASSED [ 87%] 224s tests/translate/storage/test_ts2.py::TestTSfile::test_obsolete PASSED [ 87%] 224s tests/translate/storage/test_ts2.py::TestTSfile::test_locations PASSED [ 87%] 224s tests/translate/storage/test_ts2.py::TestTSfile::test_merge_with_fuzzies PASSED [ 88%] 224s tests/translate/storage/test_ts2.py::TestTSfile::test_getid PASSED [ 88%] 224s tests/translate/storage/test_ts2.py::TestTSfile::test_backnforth PASSED [ 88%] 224s tests/translate/storage/test_ts2.py::TestTSfile::test_context PASSED [ 88%] 224s tests/translate/storage/test_ts2.py::TestTSfile::test_roundtrip_context PASSED [ 88%] 224s tests/translate/storage/test_ts2.py::TestTSfile::test_edit_missing_translation PASSED [ 88%] 224s tests/translate/storage/test_ts2.py::TestTSfile::test_missing_source PASSED [ 88%] 224s tests/translate/storage/test_txt.py::TestTxtUnit::test_isfuzzy PASSED [ 88%] 224s tests/translate/storage/test_txt.py::TestTxtUnit::test_create PASSED [ 88%] 224s tests/translate/storage/test_txt.py::TestTxtUnit::test_eq PASSED [ 88%] 224s tests/translate/storage/test_txt.py::TestTxtUnit::test_escapes PASSED [ 88%] 224s tests/translate/storage/test_txt.py::TestTxtUnit::test_difficult_escapes PASSED [ 88%] 224s tests/translate/storage/test_txt.py::TestTxtUnit::test_note_sanity PASSED [ 88%] 224s tests/translate/storage/test_txt.py::TestTxtUnit::test_line_number_default PASSED [ 88%] 224s tests/translate/storage/test_txt.py::TestTxtUnit::test_target PASSED [ 88%] 224s tests/translate/storage/test_txt.py::TestTxtUnit::test_rich_get PASSED [ 88%] 224s tests/translate/storage/test_txt.py::TestTxtUnit::test_rich_set PASSED [ 88%] 224s tests/translate/storage/test_txt.py::TestTxtFile::test_create_blank PASSED [ 88%] 224s tests/translate/storage/test_txt.py::TestTxtFile::test_add PASSED [ 88%] 224s tests/translate/storage/test_txt.py::TestTxtFile::test_remove PASSED [ 88%] 224s tests/translate/storage/test_txt.py::TestTxtFile::test_find PASSED [ 88%] 224s tests/translate/storage/test_txt.py::TestTxtFile::test_parse PASSED [ 88%] 224s tests/translate/storage/test_txt.py::TestTxtFile::test_files PASSED [ 88%] 224s tests/translate/storage/test_txt.py::TestTxtFile::test_save PASSED [ 88%] 224s tests/translate/storage/test_txt.py::TestTxtFile::test_extensions PASSED [ 88%] 224s tests/translate/storage/test_txt.py::TestTxtFile::test_mimetypes PASSED [ 88%] 224s tests/translate/storage/test_txt.py::TestTxtFile::test_translate PASSED [ 88%] 224s tests/translate/storage/test_txt.py::TestTxtFile::test_markup PASSED [ 88%] 224s tests/translate/storage/test_txt.py::TestTxtFile::test_nonascii PASSED [ 88%] 224s tests/translate/storage/test_txt.py::TestTxtFile::test_simpleblock PASSED [ 88%] 224s tests/translate/storage/test_txt.py::TestTxtFile::test_multipleblocks PASSED [ 88%] 224s tests/translate/storage/test_txt.py::TestTxtFile::test_no_segmentation PASSED [ 88%] 224s tests/translate/storage/test_utx.py::TestUtxUnit::test_isfuzzy PASSED [ 88%] 224s tests/translate/storage/test_utx.py::TestUtxUnit::test_create PASSED [ 88%] 224s tests/translate/storage/test_utx.py::TestUtxUnit::test_eq PASSED [ 88%] 224s tests/translate/storage/test_utx.py::TestUtxUnit::test_target PASSED [ 88%] 224s tests/translate/storage/test_utx.py::TestUtxUnit::test_escapes PASSED [ 88%] 224s tests/translate/storage/test_utx.py::TestUtxUnit::test_difficult_escapes PASSED [ 88%] 224s tests/translate/storage/test_utx.py::TestUtxUnit::test_note_sanity PASSED [ 88%] 224s tests/translate/storage/test_utx.py::TestUtxUnit::test_line_number_default PASSED [ 89%] 224s tests/translate/storage/test_utx.py::TestUtxUnit::test_rich_get PASSED [ 89%] 224s tests/translate/storage/test_utx.py::TestUtxUnit::test_rich_set PASSED [ 89%] 224s tests/translate/storage/test_utx.py::TestUtxFile::test_create_blank PASSED [ 89%] 224s tests/translate/storage/test_utx.py::TestUtxFile::test_add PASSED [ 89%] 224s tests/translate/storage/test_utx.py::TestUtxFile::test_remove PASSED [ 89%] 224s tests/translate/storage/test_utx.py::TestUtxFile::test_find PASSED [ 89%] 224s tests/translate/storage/test_utx.py::TestUtxFile::test_translate PASSED [ 89%] 224s tests/translate/storage/test_utx.py::TestUtxFile::test_parse PASSED [ 89%] 224s tests/translate/storage/test_utx.py::TestUtxFile::test_files PASSED [ 89%] 224s tests/translate/storage/test_utx.py::TestUtxFile::test_save PASSED [ 89%] 224s tests/translate/storage/test_utx.py::TestUtxFile::test_markup PASSED [ 89%] 224s tests/translate/storage/test_utx.py::TestUtxFile::test_nonascii PASSED [ 89%] 224s tests/translate/storage/test_utx.py::TestUtxFile::test_extensions PASSED [ 89%] 224s tests/translate/storage/test_utx.py::TestUtxFile::test_mimetypes PASSED [ 89%] 224s tests/translate/storage/test_wordfast.py::TestWFTime::test_timestring PASSED [ 89%] 224s tests/translate/storage/test_wordfast.py::TestWFTime::test_time PASSED [ 89%] 224s tests/translate/storage/test_wordfast.py::TestWFUnit::test_isfuzzy PASSED [ 89%] 224s tests/translate/storage/test_wordfast.py::TestWFUnit::test_create PASSED [ 89%] 224s tests/translate/storage/test_wordfast.py::TestWFUnit::test_eq PASSED [ 89%] 224s tests/translate/storage/test_wordfast.py::TestWFUnit::test_target PASSED [ 89%] 224s tests/translate/storage/test_wordfast.py::TestWFUnit::test_escapes PASSED [ 89%] 224s tests/translate/storage/test_wordfast.py::TestWFUnit::test_note_sanity PASSED [ 89%] 224s tests/translate/storage/test_wordfast.py::TestWFUnit::test_line_number_default PASSED [ 89%] 224s tests/translate/storage/test_wordfast.py::TestWFUnit::test_rich_get PASSED [ 89%] 224s tests/translate/storage/test_wordfast.py::TestWFUnit::test_rich_set PASSED [ 89%] 224s tests/translate/storage/test_wordfast.py::TestWFUnit::test_difficult_escapes PASSED [ 89%] 224s tests/translate/storage/test_wordfast.py::TestWFUnit::test_wordfast_escaping PASSED [ 89%] 224s tests/translate/storage/test_wordfast.py::TestWFUnit::test_newlines PASSED [ 89%] 224s tests/translate/storage/test_wordfast.py::TestWFUnit::test_language_setting PASSED [ 89%] 224s tests/translate/storage/test_wordfast.py::TestWFUnit::test_istranslated PASSED [ 89%] 224s tests/translate/storage/test_wordfast.py::TestWFFile::test_create_blank PASSED [ 89%] 224s tests/translate/storage/test_wordfast.py::TestWFFile::test_add PASSED [ 89%] 224s tests/translate/storage/test_wordfast.py::TestWFFile::test_remove PASSED [ 89%] 224s tests/translate/storage/test_wordfast.py::TestWFFile::test_find PASSED [ 89%] 224s tests/translate/storage/test_wordfast.py::TestWFFile::test_translate PASSED [ 89%] 224s tests/translate/storage/test_wordfast.py::TestWFFile::test_parse PASSED [ 89%] 224s tests/translate/storage/test_wordfast.py::TestWFFile::test_files PASSED [ 89%] 224s tests/translate/storage/test_wordfast.py::TestWFFile::test_save PASSED [ 89%] 224s tests/translate/storage/test_wordfast.py::TestWFFile::test_markup PASSED [ 90%] 224s tests/translate/storage/test_wordfast.py::TestWFFile::test_nonascii PASSED [ 90%] 224s tests/translate/storage/test_wordfast.py::TestWFFile::test_extensions PASSED [ 90%] 224s tests/translate/storage/test_wordfast.py::TestWFFile::test_mimetypes PASSED [ 90%] 224s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_isfuzzy PASSED [ 90%] 224s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_create PASSED [ 90%] 224s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_eq PASSED [ 90%] 224s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_target PASSED [ 90%] 224s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_escapes PASSED [ 90%] 224s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_difficult_escapes PASSED [ 90%] 224s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_note_sanity PASSED [ 90%] 224s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_line_number_default PASSED [ 90%] 224s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_rich_get PASSED [ 90%] 224s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_rich_set PASSED [ 90%] 224s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_markreview PASSED [ 90%] 224s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_errors PASSED [ 90%] 224s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_accepted_control_chars PASSED [ 90%] 224s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_unaccepted_control_chars PASSED [ 90%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_create_blank PASSED [ 90%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add PASSED [ 90%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_remove PASSED [ 90%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_find PASSED [ 90%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_translate PASSED [ 90%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_parse PASSED [ 90%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_files PASSED [ 90%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_save PASSED [ 90%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_markup PASSED [ 90%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_nonascii PASSED [ 90%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_extensions PASSED [ 90%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_mimetypes PASSED [ 90%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_basic PASSED [ 90%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_namespace PASSED [ 90%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_rich_source PASSED [ 90%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_rich_target PASSED [ 90%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_source PASSED [ 90%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_target PASSED [ 90%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_sourcelanguage PASSED [ 90%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_targetlanguage PASSED [ 90%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_targetlanguage_multi PASSED [ 90%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_notes PASSED [ 91%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_alttrans PASSED [ 91%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_fuzzy PASSED [ 91%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_xml_space PASSED [ 91%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_parsing PASSED [ 91%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_marktranslatable PASSED [ 91%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_entities PASSED [ 91%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_multiple_filenodes PASSED [ 91%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_groups_when_adding_units PASSED [ 91%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_multiple_files_and_groups PASSED [ 91%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_unit_to_existing_group PASSED [ 91%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_unit_to_different_file PASSED [ 91%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_mixed_groups_and_body PASSED [ 91%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_addunit_with_new_false PASSED [ 91%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_namespace_preservation_across_versions PASSED [ 91%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_units_between_different_files PASSED [ 91%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_group_preservation_across_different_namespaces PASSED [ 91%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_cross_namespace_group_and_file_preservation PASSED [ 91%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_indent PASSED [ 91%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_target PASSED [ 91%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve PASSED [ 91%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_closing_tags PASSED [ 91%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_context_groups PASSED [ 91%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_getlocations PASSED [ 91%] 224s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_addlocation PASSED [ 91%] 226s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_huge PASSED [ 91%] 226s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_add PASSED [ 91%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_isfuzzy PASSED [ 91%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_create PASSED [ 91%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_eq PASSED [ 91%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_target PASSED [ 91%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_escapes PASSED [ 91%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_difficult_escapes PASSED [ 91%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_note_sanity PASSED [ 91%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_line_number_default PASSED [ 91%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_rich_get PASSED [ 91%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_rich_set PASSED [ 91%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_notes PASSED [ 91%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_id_management PASSED [ 91%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_marktranslatable PASSED [ 92%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_create_blank PASSED [ 92%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_add PASSED [ 92%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_remove PASSED [ 92%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_find PASSED [ 92%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_translate PASSED [ 92%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_parse PASSED [ 92%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_files PASSED [ 92%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_save PASSED [ 92%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_markup PASSED [ 92%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_nonascii PASSED [ 92%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_extensions PASSED [ 92%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_mimetypes PASSED [ 92%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_basic PASSED [ 92%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_source_target PASSED [ 92%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_language_attributes PASSED [ 92%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_namespace PASSED [ 92%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_unit_structure PASSED [ 92%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_multiple_units PASSED [ 92%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_parse_xliff2 PASSED [ 92%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_parse_translate_attribute PASSED [ 92%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_multiple_segments_per_unit PASSED [ 92%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_mixed_single_and_multiple_segments PASSED [ 92%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_segments_without_ids PASSED [ 92%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_escaped_inline_tags PASSED [ 92%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_simple_source_target_pairs PASSED [ 92%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_malformed_xml_declaration PASSED [ 92%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_variable_placeholders PASSED [ 92%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_add_unit PASSED [ 92%] 226s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_states PASSED [ 92%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_isfuzzy PASSED [ 92%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_create PASSED [ 92%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_eq PASSED [ 92%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_escapes PASSED [ 92%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_difficult_escapes PASSED [ 92%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_note_sanity PASSED [ 92%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_line_number_default PASSED [ 92%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_target PASSED [ 92%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_rich_get PASSED [ 92%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_rich_set PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_getlocations PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_create_blank PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_add PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_find PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_parse PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_files PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_save PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_extensions PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_mimetypes PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_translate PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_markup PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_nonascii PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_serialize PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_empty PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_edit PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_edit_unicode PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_parse_unicode_list PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_ordering PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_initial_comments PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_string_key PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_nested PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_multiline PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_boolean PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_integer PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_no_quote_strings PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_double_quote_strings PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_single_quote_strings PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_avoid_escaping_double_quote_strings PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_avoid_escaping_single_quote_strings PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_escaped_double_quotes PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_newlines PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_abbreviated_list PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_abbreviated_dictionary PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_key_nesting PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_add_to_mepty PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_empty_key PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_dict_in_list PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_dump_args PASSED [ 93%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_anchors PASSED [ 94%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_tagged_scalar PASSED [ 94%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_numeric PASSED [ 94%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_remove PASSED [ 94%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_special PASSED [ 94%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_quotes_roundtrip PASSED [ 94%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_simple PASSED [ 94%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_multiline PASSED [ 94%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_nested PASSED [ 94%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_mixed PASSED [ 94%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_no_comment_backwards_compat PASSED [ 94%] 226s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_multiline_literal_format PASSED [ 94%] 226s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_create_blank PASSED [ 94%] 226s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_remove PASSED [ 94%] 226s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_find PASSED [ 94%] 226s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_parse PASSED [ 94%] 226s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_files PASSED [ 94%] 226s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_save PASSED [ 94%] 226s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_extensions PASSED [ 94%] 226s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_mimetypes PASSED [ 94%] 226s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_translate PASSED [ 94%] 226s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_markup PASSED [ 94%] 226s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_nonascii PASSED [ 94%] 226s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_list PASSED [ 94%] 226s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby PASSED [ 94%] 226s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_wrong PASSED [ 94%] 226s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_invalid_value PASSED [ 94%] 226s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural PASSED [ 94%] 226s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_empty PASSED [ 94%] 226s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_anchors PASSED [ 94%] 226s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_type_change PASSED [ 94%] 226s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_add PASSED [ 94%] 226s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_blank PASSED [ 94%] 226s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_partial PASSED [ 94%] 226s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_pt_br PASSED [ 94%] 226s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_bug_ruby_remove_zero_few_and_mix_others PASSED [ 94%] 226s tests/translate/storage/xml_extract/test_misc.py::test_reduce_tree PASSED [ 94%] 226s tests/translate/storage/xml_extract/test_misc.py::test_compose_mappings PASSED [ 94%] 226s tests/translate/storage/xml_extract/test_misc.py::test_parse_tag PASSED [ 94%] 226s tests/translate/storage/xml_extract/test_unit_tree.py::test__split_xpath_component PASSED [ 95%] 226s tests/translate/storage/xml_extract/test_unit_tree.py::test__split_xpath PASSED [ 95%] 226s tests/translate/storage/xml_extract/test_unit_tree.py::test__add_unit_to_tree PASSED [ 95%] 226s tests/translate/storage/xml_extract/test_xpath_breadcrumb.py::test_breadcrumb PASSED [ 95%] 226s tests/translate/tools/test_help.py::test_help[build_tmdb] SKIPPED (S...) [ 95%] 226s tests/translate/tools/test_help.py::test_help[phppo2pypo] SKIPPED (S...) [ 95%] 226s tests/translate/tools/test_help.py::test_help[poclean] SKIPPED (Skip...) [ 95%] 226s tests/translate/tools/test_help.py::test_help[pocompile] SKIPPED (Sk...) [ 95%] 226s tests/translate/tools/test_help.py::test_help[poconflicts] SKIPPED (...) [ 95%] 226s tests/translate/tools/test_help.py::test_help[pocount] SKIPPED (Skip...) [ 95%] 226s tests/translate/tools/test_help.py::test_help[podebug] SKIPPED (Skip...) [ 95%] 226s tests/translate/tools/test_help.py::test_help[pogrep] SKIPPED (Skip ...) [ 95%] 226s tests/translate/tools/test_help.py::test_help[pomerge] SKIPPED (Skip...) [ 95%] 226s tests/translate/tools/test_help.py::test_help[porestructure] SKIPPED [ 95%] 226s tests/translate/tools/test_help.py::test_help[posegment] SKIPPED (Sk...) [ 95%] 226s tests/translate/tools/test_help.py::test_help[poswap] SKIPPED (Skip ...) [ 95%] 226s tests/translate/tools/test_help.py::test_help[poterminology] SKIPPED [ 95%] 226s tests/translate/tools/test_help.py::test_help[pretranslate] SKIPPED [ 95%] 226s tests/translate/tools/test_help.py::test_help[pydiff] SKIPPED (Skip ...) [ 95%] 226s tests/translate/tools/test_help.py::test_help[pypo2phppo] SKIPPED (S...) [ 95%] 226s tests/translate/tools/test_junitmsgfmt.py::test_output[failure] PASSED [ 95%] 226s tests/translate/tools/test_junitmsgfmt.py::test_output[untranslated] PASSED [ 95%] 226s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPo::test_single_po PASSED [ 95%] 226s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPo::test_plural_po PASSED [ 95%] 226s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_single_po PASSED [ 95%] 226s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_plural_po PASSED [ 95%] 226s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_help PASSED [ 95%] 226s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_zero PASSED [ 95%] 226s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_one PASSED [ 95%] 226s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_two PASSED [ 95%] 226s tests/translate/tools/test_pocount.py::TestCount::test_punctuation_divides_words PASSED [ 95%] 226s tests/translate/tools/test_pocount.py::TestCount::test_xml_tags PASSED [ 95%] 226s tests/translate/tools/test_pocount.py::TestCount::test_newlines PASSED [ 95%] 226s tests/translate/tools/test_pocount.py::TestCount::test_variables_are_words PASSED [ 95%] 226s tests/translate/tools/test_pocount.py::TestCount::test_plurals PASSED [ 95%] 226s tests/translate/tools/test_pocount.py::TestCount::test_plurals_kde XFAIL [ 95%] 226s tests/translate/tools/test_pocount.py::TestCount::test_msgid_blank PASSED [ 95%] 226s tests/translate/tools/test_pocount.py::TestPOCount::test_translated PASSED [ 95%] 226s tests/translate/tools/test_pocount.py::TestPOCount::test_fuzzy PASSED [ 95%] 226s tests/translate/tools/test_pocount.py::TestPOCount::test_untranslated PASSED [ 96%] 226s tests/translate/tools/test_pocount.py::TestPOCount::test_total PASSED [ 96%] 226s tests/translate/tools/test_pocount.py::TestPOCount::test_translatedsourcewords PASSED [ 96%] 226s tests/translate/tools/test_pocount.py::TestPOCount::test_fuzzysourcewords PASSED [ 96%] 226s tests/translate/tools/test_pocount.py::TestPOCount::test_untranslatedsourcewords PASSED [ 96%] 226s tests/translate/tools/test_pocount.py::TestPOCount::test_totalsourcewords PASSED [ 96%] 226s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-csv] PASSED [ 96%] 226s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-full] PASSED [ 96%] 226s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-short-strings] PASSED [ 96%] 226s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-short-words] PASSED [ 96%] 226s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-csv] PASSED [ 96%] 226s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-full] PASSED [ 96%] 226s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-short-strings] PASSED [ 96%] 226s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-short-words] PASSED [ 96%] 226s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-csv] PASSED [ 96%] 226s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-full] PASSED [ 96%] 226s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-short-strings] PASSED [ 96%] 226s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-short-words] PASSED [ 96%] 226s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-csv] PASSED [ 96%] 226s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-full] PASSED [ 96%] 226s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-short-strings] PASSED [ 96%] 226s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-short-words] PASSED [ 96%] 226s tests/translate/tools/test_pocount.py::test_cases[po-file] PASSED [ 96%] 226s tests/translate/tools/test_pocount.py::test_cases[po-file-fuzzy] PASSED [ 96%] 226s tests/translate/tools/test_pocount.py::test_cases[po-file-csv] PASSED [ 96%] 226s tests/translate/tools/test_pocount.py::test_cases[xliff-states-yes] PASSED [ 96%] 226s tests/translate/tools/test_pocount.py::test_cases[xliff-states-no] PASSED [ 96%] 226s tests/translate/tools/test_pocount.py::test_error_cases[mutually-exclusive] PASSED [ 96%] 226s tests/translate/tools/test_pocount.py::test_error_cases[missing-file] PASSED [ 96%] 226s tests/translate/tools/test_pocount.py::test_error_cases[no-args] PASSED [ 96%] 226s tests/translate/tools/test_pocount.py::test_csv_line_terminator PASSED [ 96%] 226s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_fuzzy_with_target PASSED [ 96%] 226s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_fuzzy_without_target PASSED [ 96%] 226s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_translated_not_fuzzy PASSED [ 96%] 226s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_untranslated_empty_target PASSED [ 96%] 226s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_categorization_mutually_exclusive PASSED [ 96%] 226s tests/translate/tools/test_pocount.py::TestPOCountLineEndings::test_unusual_line_endings PASSED [ 96%] 226s tests/translate/tools/test_podebug.py::TestPODebug::test_ignore_gtk PASSED [ 96%] 226s tests/translate/tools/test_podebug.py::TestPODebug::test_keep_target PASSED [ 96%] 226s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank PASSED [ 97%] 226s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank_clears_fuzzy PASSED [ 97%] 226s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank_with_plurals PASSED [ 97%] 226s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_en PASSED [ 97%] 226s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_xxx PASSED [ 97%] 226s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_bracket PASSED [ 97%] 226s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode PASSED [ 97%] 226s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_at_placeholders PASSED [ 97%] 226s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_single_brace_placeholders PASSED [ 97%] 226s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_double_brace_placeholders PASSED [ 97%] 226s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_html PASSED [ 97%] 226s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_multiple_styles_of_placeholder PASSED [ 97%] 226s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped PASSED [ 97%] 226s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_at_placeholders PASSED [ 97%] 226s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_single_brace_placeholders PASSED [ 97%] 226s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_double_brace_placeholders PASSED [ 97%] 226s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_html PASSED [ 97%] 226s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_multiple_styles_of_placeholder PASSED [ 97%] 226s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified PASSED [ 97%] 226s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_at_placeholders PASSED [ 97%] 226s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_single_brace_placeholders PASSED [ 97%] 226s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_double_brace_placeholders PASSED [ 97%] 226s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_html PASSED [ 97%] 226s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_multiple_styles_of_placeholder PASSED [ 97%] 226s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_chef PASSED [ 97%] 226s tests/translate/tools/test_podebug.py::TestPODebug::test_po_variables PASSED [ 97%] 226s tests/translate/tools/test_podebug.py::TestPODebug::test_xliff_rewrite PASSED [ 97%] 226s tests/translate/tools/test_podebug.py::TestPODebug::test_hash PASSED [ 97%] 226s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_msgid PASSED [ 97%] 226s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_msgstr PASSED [ 97%] 226s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_locations PASSED [ 97%] 226s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_comments PASSED [ 97%] 226s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_locations_with_comment_enabled PASSED [ 97%] 226s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_message_searchstring PASSED [ 97%] 226s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_message_regex_searchstring PASSED [ 97%] 226s tests/translate/tools/test_pogrep.py::TestPOGrep::test_keep_translations PASSED [ 97%] 226s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_normalise PASSED [ 97%] 226s tests/translate/tools/test_pogrep.py::TestXLiffGrep::test_simplegrep PASSED [ 97%] 226s tests/translate/tools/test_pomerge.py::test_str2bool PASSED [ 97%] 226s tests/translate/tools/test_pomerge.py::TestPOMerge::test_mergesore_bad_data PASSED [ 98%] 226s tests/translate/tools/test_pomerge.py::TestPOMerge::test_simplemerge PASSED [ 98%] 227s tests/translate/tools/test_pomerge.py::TestPOMerge::test_simplemerge_no_locations PASSED [ 98%] 227s tests/translate/tools/test_pomerge.py::TestPOMerge::test_replacemerge PASSED [ 98%] 227s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_blanks PASSED [ 98%] 227s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_fuzzies PASSED [ 98%] 227s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_locations PASSED [ 98%] 227s tests/translate/tools/test_pomerge.py::TestPOMerge::test_unit_missing_in_template_with_locations PASSED [ 98%] 227s tests/translate/tools/test_pomerge.py::TestPOMerge::test_unit_missing_in_template_no_locations PASSED [ 98%] 227s tests/translate/tools/test_pomerge.py::TestPOMerge::test_reflowed_source_comments PASSED [ 98%] 227s tests/translate/tools/test_pomerge.py::TestPOMerge::test_comments_with_blank_lines PASSED [ 98%] 227s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merge_dont_delete_unassociated_comments PASSED [ 98%] 227s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_trailing_newlines PASSED [ 98%] 227s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_minor_start_and_end_of_sentence_changes PASSED [ 98%] 227s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_last_entry_in_a_file PASSED [ 98%] 227s tests/translate/tools/test_pomerge.py::TestPOMerge::test_escape_tabs XFAIL [ 98%] 227s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_comments_layout PASSED [ 98%] 227s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merge_dos2unix PASSED [ 98%] 227s tests/translate/tools/test_pomerge.py::TestPOMerge::test_xliff_into_xliff PASSED [ 98%] 227s tests/translate/tools/test_pomerge.py::TestPOMerge::test_po_into_xliff PASSED [ 98%] 227s tests/translate/tools/test_pomerge.py::TestPOMerge::test_xliff_into_po PASSED [ 98%] 227s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_dont_merge_kde_comments_found_in_translation PASSED [ 98%] 227s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_untranslated_with_kde_disambiguation PASSED [ 98%] 227s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_header_entries PASSED [ 98%] 227s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_different_locations PASSED [ 98%] 227s tests/translate/tools/test_posegment.py::TestPOSegment::test_en_ja_simple PASSED [ 98%] 227s tests/translate/tools/test_posegment.py::TestPOSegment::test_en_ja_punctuation PASSED [ 98%] 227s tests/translate/tools/test_posegment.py::TestPOSegment::test_transifex_po PASSED [ 98%] 227s tests/translate/tools/test_posegment.py::TestXLIFFSegment::test_xliff_en_simple PASSED [ 98%] 227s tests/translate/tools/test_posegment.py::TestXLIFFSegment::test_xliff_untranslated PASSED [ 98%] 227s tests/translate/tools/test_posegment.py::TestTMXSegment::test_tmx_en_simple PASSED [ 98%] 227s tests/translate/tools/test_poterminology.py::TestPOTerminology::test_term_extraction PASSED [ 98%] 227s tests/translate/tools/test_poterminology.py::TestPOTerminology::test_unitinfo_stores_minimal_data PASSED [ 98%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_pretranslatepo_blank PASSED [ 98%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_simple PASSED [ 98%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_messages_marked_fuzzy PASSED [ 98%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_plurals_with_fuzzy_matching PASSED [ 98%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgid_change XFAIL [ 98%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_location_change PASSED [ 98%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_location_and_whitespace_change PASSED [ 99%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_accelerator_changes XFAIL [ 99%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_lines_cut_differently XFAIL [ 99%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_automatic_comments_dont_duplicate PASSED [ 99%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_automatic_comments_new_overrides_old PASSED [ 99%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_comments_with_blank_comment_lines PASSED [ 99%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_empty_commentlines PASSED [ 99%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgidcomments PASSED [ 99%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_plurals PASSED [ 99%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_resurrect_obsolete_messages PASSED [ 99%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_comments PASSED [ 99%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_typecomments PASSED [ 99%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_xliff_states PASSED [ 99%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_pretranslatepo_blank PASSED [ 99%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_simple PASSED [ 99%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_messages_marked_fuzzy PASSED [ 99%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_plurals_with_fuzzy_matching PASSED [ 99%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgid_change XFAIL [ 99%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_location_change PASSED [ 99%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_location_and_whitespace_change PASSED [ 99%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_accelerator_changes XFAIL [ 99%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_lines_cut_differently XFAIL [ 99%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_automatic_comments_dont_duplicate PASSED [ 99%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_automatic_comments_new_overrides_old PASSED [ 99%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_comments_with_blank_comment_lines PASSED [ 99%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_empty_commentlines PASSED [ 99%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgidcomments PASSED [ 99%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_plurals PASSED [ 99%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_resurrect_obsolete_messages PASSED [ 99%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_comments PASSED [ 99%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_typecomments PASSED [ 99%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_xliff_states PASSED [ 99%] 227s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_help PASSED [ 99%] 227s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPo::test_single_po PASSED [ 99%] 227s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPo::test_plural_po PASSED [ 99%] 227s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_single_po PASSED [ 99%] 227s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_plural_po PASSED [ 99%] 227s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_help PASSED [ 99%] 227s tests/xliff_conformance/test_xliff_conformance.py::test_open_office_to_xliff SKIPPED [ 99%] 228s tests/xliff_conformance/test_xliff_conformance.py::test_po_to_xliff SKIPPED [100%] 228s 228s =============================== warnings summary =============================== 228s ../../../usr/lib/python3/dist-packages/pyparsing/core.py:5637 228s Warning: 'return' in a 'finally' block 228s 228s tests/odf_xliff/test_odf_xliff.py::test_roundtrip 228s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.g1gmkF/autopkgtest_tmp/tests/odf_xliff/test_2.odt'> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_convertandroid 228s Warning: unclosed file <_io.TextIOWrapper name='TestAndroid2POCommand_test_convertandroid/en.po' mode='r' encoding='UTF-8'> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder 228s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder 228s Warning: unclosed file <_io.TextIOWrapper name='TestCSV2POCommand_test_columnorder/test.po' mode='r' encoding='UTF-8'> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_pot 228s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_pot/simple.pot'> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_po 228s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_po 228s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_po/simple.po'> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_remove_duplicates 228s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_remove_duplicates/simple.po'> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_xlf 228s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_xlf/simple.xlf'> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder 228s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder 228s Warning: unclosed file <_io.TextIOWrapper name='TestPO2CSVCommand_test_columnorder/test.csv' mode='r' encoding='UTF-8'> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_context 228s Warning: unclosed file <_io.TextIOWrapper name='TestPO2CSVCommand_test_context/test.csv' mode='r' encoding='UTF-8'> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing 228s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey 228s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey 228s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing 228s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey 228s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_amp_no_accesskey 228s Warning: Could not find accesskey for key.accesskey 228s 228s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified 228s Warning: unclosed file <_io.BufferedWriter name='translated/file1.html'> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified 228s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file 228s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file_and_templates_overwritten 228s Warning: unclosed file <_io.BufferedReader name='translation/file1.po'> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_convert 228s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.g1gmkF/autopkgtest_tmp/tests/translate/convert/test.idml'> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_with_single_po 228s Warning: unclosed file <_io.BufferedReader name='translation.po'> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert 228s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert_with_multiple_units 228s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert 228s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.g1gmkF/autopkgtest_tmp/tests/translate/convert/test.odt'> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_return_array_with_comments 228s Warning: unclosed file <_io.FileIO name='input.oo' mode='rb' closefd=True> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_return_array_with_comments 228s Warning: unclosed file <_io.FileIO name='output.oo' mode='wb' closefd=True> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey 228s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys_missing_accesskey 228s Warning: Could not find accesskey for prop.accesskey 228s 228s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_context 228s Warning: unclosed file <_io.BufferedReader name='test.po'> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_context 228s Warning: unclosed file <_io.TextIOWrapper name='TestPO2TMXCommand_test_context/test.tmx' mode='r' encoding='UTF-8'> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert 228s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert/simple.po'> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf16 228s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_utf16/simple.po'> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 228s Warning: unclosed file <_io.BufferedWriter name='simple.po'> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 228s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 228s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_wrong/simple.po'> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf8 228s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_utf8/simple.po'> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_menuex 228s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_menuex/simple.po'> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_pot 228s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_simple_pot/simple.pot'> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_po 228s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_simple_po/simple.po'> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_remove_duplicates 228s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_remove_duplicates/simple.po'> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_preserve_filename 228s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_preserve_filename/snippet.xlf'> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_pot 228s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_simple_pot/simple.pot'> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_po 228s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_simple_po/simple.po'> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_remove_duplicates 228s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_remove_duplicates/simple.po'> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers 228s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers 228s tests/translate/filters/test_checks.py::test_noaccelerators_only_in_mozilla_checker 228s tests/translate/filters/test_checks.py::test_ensure_accelerators_not_in_target_if_not_in_source 228s Warning: The 'u' type code is deprecated and will be removed in Python 3.16 228s 228s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_save_bundle 228s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_save_bundle 228s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpops010kt_test.txt'> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_cross_device_save 228s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_cross_device_save 228s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpe6hd_2kr_crossdevice.txt'> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_replace_project_zip 228s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_replace_project_zip 228s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpx_jrvmfe_initial.txt'> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 228s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 228s Warning: unclosed file <_io.BufferedReader name='/tmp/tmp1fs_w35u_load_test.txt'> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 228s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 228s Warning: unclosed file <_io.BufferedReader name='/tmp/tmp9slornai_load_test.txt'> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 228s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 228s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpu_2sa04b_file0.txt'> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 228s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 228s Warning: unclosed file <_io.BufferedReader name='/tmp/tmp74ip7pqa_file1.txt'> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 228s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 228s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpddxvebd__file2.txt'> 228s Enable tracemalloc to get traceback where the object was allocated. 228s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 228s 228s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting 228s Warning: DTD parse error: :1:35:FATAL:PARSER:ERR_ENTITY_NOT_FINISHED: xmlParseEntityDecl: entity test.me not terminated 228s :1:35:FATAL:PARSER:ERR_EXT_SUBSET_NOT_FINISHED: Content error in the external subset 228s 228s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting 228s Warning: DTD file '' does not validate 228s 228s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 228s --------------------------- snapshot report summary ---------------------------- 228s 23 snapshots passed. 228s =========================== short test summary info ============================ 228s SKIPPED [1] tests/translate/storage/test_cpo.py:15: could not import 'translate.storage.cpo': gettext PO library not found 228s SKIPPED [1] tests/translate/storage/test_fluent.py:29: could not import 'translate.storage.fluent': No module named 'fluent' 228s SKIPPED [1] tests/translate/filters/test_checks.py:1429: Spell checking for af is not available 228s SKIPPED [1] tests/translate/storage/test_mo.py:512: Skip testing command line tools 228s SKIPPED [16] tests/translate/tools/test_help.py:16: Skip testing command line tools 228s SKIPPED [1] tests/xliff_conformance/test_xliff_conformance.py:47: Skip testing command line tools 228s SKIPPED [1] tests/xliff_conformance/test_xliff_conformance.py:57: Skip testing command line tools 228s XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accelerator_keys_not_in_sentence - Not Implemented 228s XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accelerator_keys_not_in_sentence - Not Implemented 228s XFAIL tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_table - https://github.com/miyuchina/mistletoe/issues/244 228s XFAIL tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_propertyless_template - Need to review if we want this behaviour 228s XFAIL tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_propertyless_template - Need to review if we want this behaviour 228s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_change - Not implemented - review if this is even correct 228s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_accelerator_changes - Not Implemented - needs review 228s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_lines_cut_differently - Not Implemented - review if this is even correct 228s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_change - Not implemented - review if this is even correct 228s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_accelerator_changes - Not Implemented - needs review 228s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_lines_cut_differently - Not Implemented - review if this is even correct 228s XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_no_duplicates - This is invalid YAML document 228s XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_no_duplicates - This is invalid YAML document 228s XFAIL tests/translate/filters/test_checks.py::test_acceleratedvariables - Accelerated variables needs a better implementation 228s XFAIL tests/translate/filters/test_checks.py::test_musttranslatewords - FIXME: All fails() tests are not working 228s XFAIL tests/translate/filters/test_checks.py::test_persian_single_and_double_quote_fail_at_the_same_time - Bug #3408 228s XFAIL tests/translate/filters/test_checks.py::test_bengali_mozilla_inverted_xmltags - Bug #3506 228s XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_general_placeables - Test needs fixing, disabled for now 228s XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_xliff_placeables - Test needs fixing, disabled for now 228s XFAIL tests/translate/storage/test_dtd.py::test_quotefordtd_unimplemented_cases - Not Implemented 228s XFAIL tests/translate/storage/test_dtd.py::test_unquotefromdtd_unimplemented_cases - Not Implemented 228s XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_comment_following - Not Implemented 228s XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting - Not Implemented 228s 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 228s XFAIL tests/translate/storage/test_po.py::TestPOFile::test_kde_plurals - Not Implemented 228s XFAIL tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo 228s XFAIL tests/translate/storage/test_properties.py::TestXWikiFullPage::test_remove - removal not working in full page 228s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_plurals - Not Implemented 228s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo 228s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_typecomment - Not sure if this can not be parsed gracefully 228s XFAIL tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_note_sanity - Not Implemented 228s XFAIL tests/translate/tools/test_pocount.py::TestCount::test_plurals_kde - Support commented out pending removal 228s XFAIL tests/translate/tools/test_pomerge.py::TestPOMerge::test_escape_tabs - Not Implemented 228s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgid_change - Not Implemented 228s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_accelerator_changes - Not Implemented 228s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_lines_cut_differently - Not Implemented 228s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgid_change - Not Implemented 228s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_accelerator_changes - Not Implemented 228s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_lines_cut_differently - Not Implemented 228s ========== 3843 passed, 22 skipped, 39 xfailed, 70 warnings in 19.86s ========== 229s ============================= test session starts ============================== 229s platform linux -- Python 3.13.11, pytest-9.0.2, pluggy-1.6.0 -- /usr/bin/python3.13 229s cachedir: .pytest_cache 229s rootdir: /tmp/autopkgtest.g1gmkF/autopkgtest_tmp 229s plugins: typeguard-4.4.4, syrupy-5.0.0 235s collecting ... collected 3902 items / 2 skipped 235s 235s tests/odf_xliff/test_odf_xliff.py::test_odf2xliff PASSED [ 0%] 235s tests/odf_xliff/test_odf_xliff.py::test_roundtrip PASSED [ 0%] 235s tests/odf_xliff/test_odf_xliff.py::test_odf2xliff2_inline PASSED [ 0%] 235s tests/translate/convert/test_accesskey.py::test_get_label_and_accesskey PASSED [ 0%] 235s tests/translate/convert/test_accesskey.py::test_extract_bad_accesskeys PASSED [ 0%] 235s tests/translate/convert/test_accesskey.py::test_ignore_entities PASSED [ 0%] 235s tests/translate/convert/test_accesskey.py::test_alternate_accesskey_marker PASSED [ 0%] 235s tests/translate/convert/test_accesskey.py::test_unicode PASSED [ 0%] 235s tests/translate/convert/test_accesskey.py::test_numeric PASSED [ 0%] 235s tests/translate/convert/test_accesskey.py::test_empty_string PASSED [ 0%] 235s tests/translate/convert/test_accesskey.py::test_end_of_string PASSED [ 0%] 235s tests/translate/convert/test_accesskey.py::test_combine_label_accesskey PASSED [ 0%] 235s tests/translate/convert/test_accesskey.py::test_combine_label_accesskey_different_capitals PASSED [ 0%] 235s tests/translate/convert/test_accesskey.py::test_uncombinable PASSED [ 0%] 235s tests/translate/convert/test_accesskey.py::test_accesskey_already_in_text PASSED [ 0%] 235s tests/translate/convert/test_android2po.py::TestAndroid2PO::test_no_template_units PASSED [ 0%] 235s tests/translate/convert/test_android2po.py::TestAndroid2PO::test_template_units PASSED [ 0%] 235s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_no_template_units PASSED [ 0%] 235s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_template_units PASSED [ 0%] 235s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_help PASSED [ 0%] 235s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_convertandroid PASSED [ 0%] 235s tests/translate/convert/test_convert.py::TestConvertCommand::test_help PASSED [ 0%] 235s tests/translate/convert/test_csv2po.py::test_replacestrings PASSED [ 0%] 235s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_simpleentity PASSED [ 0%] 235s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_simpleentity_with_template PASSED [ 0%] 235s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_newlines PASSED [ 0%] 235s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_tabs PASSED [ 0%] 235s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_quotes PASSED [ 0%] 235s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_empties PASSED [ 0%] 235s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_kdecomment PASSED [ 0%] 235s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_escaped_newlines PASSED [ 0%] 235s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_line_numbers_in_errors PASSED [ 0%] 235s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_simpleentity PASSED [ 0%] 235s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_simpleentity_with_template PASSED [ 0%] 235s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_newlines PASSED [ 0%] 235s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_tabs PASSED [ 0%] 235s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_quotes PASSED [ 0%] 235s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_empties PASSED [ 0%] 235s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_kdecomment PASSED [ 0%] 235s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_escaped_newlines PASSED [ 1%] 235s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_line_numbers_in_errors PASSED [ 1%] 235s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_help PASSED [ 1%] 235s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder PASSED [ 1%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_simpleentity PASSED [ 1%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_convertdtd PASSED [ 1%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_apos PASSED [ 1%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_quotes PASSED [ 1%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_emptyentity PASSED [ 1%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_two_empty_entities PASSED [ 1%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_emptyentity_translated PASSED [ 1%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_localisaton_note_simple PASSED [ 1%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_localisation_note_merge PASSED [ 1%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_simple PASSED [ 1%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_label PASSED [ 1%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_onlyentity PASSED [ 1%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_commentedout PASSED [ 1%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_spaces_at_start_of_dtd_lines PASSED [ 1%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accesskeys_folding PASSED [ 1%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accesskeys_mismatch PASSED [ 1%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_carriage_return_in_multiline_dtd PASSED [ 1%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_multiline_with_blankline PASSED [ 1%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_multiline_closing_quotes PASSED [ 1%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_preserving_spaces PASSED [ 1%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_escaping_newline_tabs PASSED [ 1%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_abandoned_accelerator PASSED [ 1%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_unassociable_accelerator PASSED [ 1%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_changed_labels_and_accelerators PASSED [ 1%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accelerator_keys_not_in_sentence XFAIL [ 1%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_exclude_entity_includes PASSED [ 1%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_linewraps PASSED [ 1%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_merging_with_new_untranslated PASSED [ 1%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_merge_without_template PASSED [ 1%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_simpleentity PASSED [ 1%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_convertdtd PASSED [ 1%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_apos PASSED [ 1%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_quotes PASSED [ 1%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_emptyentity PASSED [ 1%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_two_empty_entities PASSED [ 1%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_emptyentity_translated PASSED [ 2%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_localisaton_note_simple PASSED [ 2%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_localisation_note_merge PASSED [ 2%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_simple PASSED [ 2%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_label PASSED [ 2%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_onlyentity PASSED [ 2%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_commentedout PASSED [ 2%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_spaces_at_start_of_dtd_lines PASSED [ 2%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accesskeys_folding PASSED [ 2%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accesskeys_mismatch PASSED [ 2%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_carriage_return_in_multiline_dtd PASSED [ 2%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_multiline_with_blankline PASSED [ 2%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_multiline_closing_quotes PASSED [ 2%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_preserving_spaces PASSED [ 2%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_escaping_newline_tabs PASSED [ 2%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_abandoned_accelerator PASSED [ 2%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_unassociable_accelerator PASSED [ 2%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_changed_labels_and_accelerators PASSED [ 2%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accelerator_keys_not_in_sentence XFAIL [ 2%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_exclude_entity_includes PASSED [ 2%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_linewraps PASSED [ 2%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_merging_with_new_untranslated PASSED [ 2%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_merge_without_template PASSED [ 2%] 235s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_help PASSED [ 2%] 235s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_defaults PASSED [ 2%] 235s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_root_name PASSED [ 2%] 235s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_value_name PASSED [ 2%] 235s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_key PASSED [ 2%] 235s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_default_namespace PASSED [ 2%] 235s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_namespace_prefix PASSED [ 2%] 235s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_all_parameters PASSED [ 2%] 235s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_empty_file_is_empty_store PASSED [ 2%] 235s tests/translate/convert/test_flatxml2po.py::TestFlatXML2POCommand::test_help PASSED [ 2%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_extract_lang_attribute_from_html_tag PASSED [ 2%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_do_not_extract_lang_attribute_from_tags_other_than_html PASSED [ 2%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_title PASSED [ 2%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_title_with_linebreak PASSED [ 2%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta PASSED [ 2%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p PASSED [ 2%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_br PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_linebreak PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_linebreak_and_embedded_br PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_uppercase_html PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_div PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_div_with_linebreaks PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_a PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_a_with_linebreak PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_sequence_of_anchor_elements PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_img PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_img_empty PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_img_inside_a PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_table_summary PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_simple PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_complex PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_empty PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_address PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_headings PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_headings_with_linebreaks PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_dt PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_dd PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_span PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_ul PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_nested_lists PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_duplicates PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_multiline_reflow PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_nested_tags PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_carriage_return PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_encoding_latin1 PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_strip_html PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_entityrefs_in_text PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_entityrefs_in_attributes PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_charrefs PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_multiple_php PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php_multiline PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php_with_embedded_html PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_comments PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_attribute_without_value PASSED [ 3%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_data_translate_ignore_attribute PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_translate_comment_directives PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta_social_media_tags PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta_non_translatable_tags_not_extracted PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta_mixed_translatable_and_non_translatable PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_data_translate_comment_attribute PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_data_translate_comment_without_keepcomments PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2PO::test_text_after_empty_tags PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_extract_lang_attribute_from_html_tag PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_do_not_extract_lang_attribute_from_tags_other_than_html PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_title PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_title_with_linebreak PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_br PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_linebreak PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_linebreak_and_embedded_br PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_uppercase_html PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_div PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_div_with_linebreaks PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_a PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_a_with_linebreak PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_sequence_of_anchor_elements PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_img PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_img_empty PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_img_inside_a PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_table_summary PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_simple PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_complex PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_empty PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_address PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_headings PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_headings_with_linebreaks PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_dt PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_dd PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_span PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_ul PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_nested_lists PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_duplicates PASSED [ 4%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multiline_reflow PASSED [ 5%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_nested_tags PASSED [ 5%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_carriage_return PASSED [ 5%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_encoding_latin1 PASSED [ 5%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_strip_html PASSED [ 5%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_entityrefs_in_text PASSED [ 5%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_entityrefs_in_attributes PASSED [ 5%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_charrefs PASSED [ 5%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php PASSED [ 5%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multiple_php PASSED [ 5%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php_multiline PASSED [ 5%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php_with_embedded_html PASSED [ 5%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_comments PASSED [ 5%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_attribute_without_value PASSED [ 5%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_data_translate_ignore_attribute PASSED [ 5%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_translate_comment_directives PASSED [ 5%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta_social_media_tags PASSED [ 5%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta_non_translatable_tags_not_extracted PASSED [ 5%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta_mixed_translatable_and_non_translatable PASSED [ 5%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_data_translate_comment_attribute PASSED [ 5%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_data_translate_comment_without_keepcomments PASSED [ 5%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_text_after_empty_tags PASSED [ 5%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_help PASSED [ 5%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_single PASSED [ 5%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_onefile PASSED [ 5%] 235s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_onefile_to_stdout PASSED [ 5%] 235s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_convert_empty_file PASSED [ 5%] 235s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_no_translations PASSED [ 5%] 235s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_summary PASSED [ 5%] 235s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_description PASSED [ 5%] 235s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_location PASSED [ 5%] 235s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_comment PASSED [ 5%] 235s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_no_template_duplicate_style PASSED [ 5%] 235s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge PASSED [ 5%] 235s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_misaligned_files PASSED [ 5%] 235s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_blank_msgstr PASSED [ 5%] 235s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_duplicate_style PASSED [ 5%] 235s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_convert_empty_file PASSED [ 5%] 235s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_no_translations PASSED [ 5%] 235s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_summary PASSED [ 6%] 235s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_description PASSED [ 6%] 235s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_location PASSED [ 6%] 235s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_comment PASSED [ 6%] 235s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_no_template_duplicate_style PASSED [ 6%] 235s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge PASSED [ 6%] 235s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_misaligned_files PASSED [ 6%] 235s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_blank_msgstr PASSED [ 6%] 235s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_duplicate_style PASSED [ 6%] 235s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_help PASSED [ 6%] 235s tests/translate/convert/test_idml2po.py::TestIDML2POCommand::test_help PASSED [ 6%] 235s tests/translate/convert/test_idml2po.py::TestIDML2POCommand::test_convert PASSED [ 6%] 235s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_empty_file PASSED [ 6%] 235s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_no_translation PASSED [ 6%] 235s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_simple PASSED [ 6%] 235s tests/translate/convert/test_ini2po.py::TestIni2PO::test_no_duplicates PASSED [ 6%] 235s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_simple PASSED [ 6%] 235s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_misaligned_files PASSED [ 6%] 235s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_blank_msgstr PASSED [ 6%] 235s tests/translate/convert/test_ini2po.py::TestIni2PO::test_dialects_inno PASSED [ 6%] 235s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_empty_file PASSED [ 6%] 235s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_no_translation PASSED [ 6%] 235s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_simple PASSED [ 6%] 235s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_no_duplicates PASSED [ 6%] 235s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_simple PASSED [ 6%] 235s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_misaligned_files PASSED [ 6%] 235s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_blank_msgstr PASSED [ 6%] 235s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_dialects_inno PASSED [ 6%] 235s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_help PASSED [ 6%] 235s tests/translate/convert/test_json2po.py::TestJson2PO::test_simple PASSED [ 6%] 235s tests/translate/convert/test_json2po.py::TestJson2PO::test_three_same_keys PASSED [ 6%] 235s tests/translate/convert/test_json2po.py::TestJson2PO::test_filter PASSED [ 6%] 235s tests/translate/convert/test_json2po.py::TestJson2PO::test_multiple_units PASSED [ 6%] 235s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_simple PASSED [ 6%] 235s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_three_same_keys PASSED [ 6%] 235s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_filter PASSED [ 6%] 235s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_multiple_units PASSED [ 6%] 235s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_help PASSED [ 6%] 235s tests/translate/convert/test_md2po.py::TestMD2PO::test_help PASSED [ 6%] 235s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_file_with_multifile_single PASSED [ 7%] 235s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_file_with_multifile_onefile PASSED [ 7%] 235s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_directory_with_multifile_single PASSED [ 7%] 235s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_directory_with_multifile_onefile PASSED [ 7%] 235s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_frontmatter PASSED [ 7%] 235s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_translation_ignore_sections PASSED [ 7%] 235s tests/translate/convert/test_moz2po.py::TestMoz2PO::test_duplicate_locations PASSED [ 7%] 235s tests/translate/convert/test_moz2po.py::TestMoz2POCommand::test_duplicate_locations PASSED [ 7%] 235s tests/translate/convert/test_moz2po.py::TestMoz2POCommand::test_help PASSED [ 7%] 235s tests/translate/convert/test_mozfunny2prop.py::TestInc2PO::test_simpleentry PASSED [ 7%] 235s tests/translate/convert/test_mozfunny2prop.py::TestInc2PO::test_uncomment_contributors PASSED [ 7%] 235s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_convert_empty PASSED [ 7%] 235s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_string PASSED [ 7%] 235s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_merge PASSED [ 7%] 235s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_entry PASSED [ 7%] 235s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_comment PASSED [ 7%] 235s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_meta_tags PASSED [ 7%] 235s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_keep_duplicates PASSED [ 7%] 235s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_drop_duplicates PASSED [ 7%] 235s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_convert_empty PASSED [ 7%] 235s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_string PASSED [ 7%] 235s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_merge PASSED [ 7%] 235s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_entry PASSED [ 7%] 235s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_comment PASSED [ 7%] 235s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_meta_tags PASSED [ 7%] 235s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_keep_duplicates PASSED [ 7%] 235s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_drop_duplicates PASSED [ 7%] 235s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_help PASSED [ 7%] 236s tests/translate/convert/test_ods2xliff.py::TestODF2XLIFFCommand::test_help PASSED [ 7%] 236s tests/translate/convert/test_ods2xliff.py::TestODF2XLIFFCommand::test_convert PASSED [ 7%] 236s tests/translate/convert/test_oo2po.py::TestOO2PO::test_simpleentity PASSED [ 7%] 236s tests/translate/convert/test_oo2po.py::TestOO2PO::test_escapes PASSED [ 7%] 236s tests/translate/convert/test_oo2po.py::TestOO2PO::test_roundtrip_escape PASSED [ 7%] 236s tests/translate/convert/test_oo2po.py::TestOO2PO::test_roundtrip_whitespaceonly PASSED [ 7%] 236s tests/translate/convert/test_oo2po.py::TestOO2PO::test_double_escapes PASSED [ 7%] 236s tests/translate/convert/test_oo2po.py::TestOO2PO::test_escapes_helpcontent2 PASSED [ 7%] 236s tests/translate/convert/test_oo2po.py::TestOO2PO::test_msgid_bug_error_address PASSED [ 7%] 236s tests/translate/convert/test_oo2po.py::TestOO2PO::test_x_comment_inclusion PASSED [ 7%] 236s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simpleentity PASSED [ 7%] 236s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_escapes PASSED [ 8%] 236s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_roundtrip_escape PASSED [ 8%] 236s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_roundtrip_whitespaceonly PASSED [ 8%] 236s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_double_escapes PASSED [ 8%] 236s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_escapes_helpcontent2 PASSED [ 8%] 236s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_msgid_bug_error_address PASSED [ 8%] 236s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_x_comment_inclusion PASSED [ 8%] 236s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_help PASSED [ 8%] 236s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_preserve_filename PASSED [ 8%] 236s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_pot PASSED [ 8%] 236s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_po PASSED [ 8%] 236s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_onefile_nonrecursive PASSED [ 8%] 236s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_remove_duplicates PASSED [ 8%] 236s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_simpleentity PASSED [ 8%] 236s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_escapes PASSED [ 8%] 236s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_roundtrip_escape PASSED [ 8%] 236s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_roundtrip_whitespaceonly PASSED [ 8%] 236s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_double_escapes PASSED [ 8%] 236s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_escapes_helpcontent2 PASSED [ 8%] 236s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_x_comment_inclusion PASSED [ 8%] 236s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_msgid_bug_error_address PASSED [ 8%] 236s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simpleentity PASSED [ 8%] 236s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_escapes PASSED [ 8%] 236s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_roundtrip_escape PASSED [ 8%] 236s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_roundtrip_whitespaceonly PASSED [ 8%] 236s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_double_escapes PASSED [ 8%] 236s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_escapes_helpcontent2 PASSED [ 8%] 236s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_x_comment_inclusion PASSED [ 8%] 236s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_msgid_bug_error_address PASSED [ 8%] 236s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_help PASSED [ 8%] 236s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_preserve_filename PASSED [ 8%] 236s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_xlf PASSED [ 8%] 236s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_po PASSED [ 8%] 236s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_onefile_nonrecursive PASSED [ 8%] 236s tests/translate/convert/test_php2po.py::TestPhp2PO::test_simpleentry PASSED [ 8%] 236s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphp PASSED [ 8%] 236s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphptemplate PASSED [ 8%] 236s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphpmissing PASSED [ 8%] 236s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphpempty PASSED [ 8%] 236s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unicode PASSED [ 9%] 236s tests/translate/convert/test_php2po.py::TestPhp2PO::test_multiline PASSED [ 9%] 236s tests/translate/convert/test_php2po.py::TestPhp2PO::test_comments_before PASSED [ 9%] 236s tests/translate/convert/test_php2po.py::TestPhp2PO::test_emptyentry PASSED [ 9%] 236s tests/translate/convert/test_php2po.py::TestPhp2PO::test_hash_comment_with_equals PASSED [ 9%] 236s tests/translate/convert/test_php2po.py::TestPhp2PO::test_emptyentry_translated PASSED [ 9%] 236s tests/translate/convert/test_php2po.py::TestPhp2PO::test_newlines_in_value PASSED [ 9%] 236s tests/translate/convert/test_php2po.py::TestPhp2PO::test_spaces_in_name PASSED [ 9%] 236s tests/translate/convert/test_php2po.py::TestPhp2PO::test_named_array PASSED [ 9%] 236s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unnamed_array PASSED [ 9%] 236s tests/translate/convert/test_php2po.py::TestPhp2PO::test_named_nested_arrays PASSED [ 9%] 236s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unnamed_nested_arrays PASSED [ 9%] 236s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_simpleentry PASSED [ 9%] 236s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphp PASSED [ 9%] 236s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphptemplate PASSED [ 9%] 236s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphpmissing PASSED [ 9%] 236s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphpempty PASSED [ 9%] 236s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unicode PASSED [ 9%] 236s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_multiline PASSED [ 9%] 236s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_comments_before PASSED [ 9%] 236s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_emptyentry PASSED [ 9%] 236s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_hash_comment_with_equals PASSED [ 9%] 236s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_emptyentry_translated PASSED [ 9%] 236s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_newlines_in_value PASSED [ 9%] 236s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_spaces_in_name PASSED [ 9%] 236s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_named_array PASSED [ 9%] 236s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unnamed_array PASSED [ 9%] 236s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_named_nested_arrays PASSED [ 9%] 236s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unnamed_nested_arrays PASSED [ 9%] 236s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_help PASSED [ 9%] 236s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_simpleentity PASSED [ 9%] 236s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_multiline PASSED [ 9%] 236s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapednewlines PASSED [ 9%] 236s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedtabs PASSED [ 9%] 236s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedquotes PASSED [ 9%] 236s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedescape PASSED [ 9%] 236s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_singlequotes PASSED [ 9%] 236s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_empties PASSED [ 9%] 236s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_kdecomments PASSED [ 9%] 236s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_simpleentity PASSED [ 10%] 236s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_multiline PASSED [ 10%] 236s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapednewlines PASSED [ 10%] 236s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedtabs PASSED [ 10%] 236s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedquotes PASSED [ 10%] 236s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedescape PASSED [ 10%] 236s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_singlequotes PASSED [ 10%] 236s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_empties PASSED [ 10%] 236s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_kdecomments PASSED [ 10%] 236s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_help PASSED [ 10%] 236s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder PASSED [ 10%] 236s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_context PASSED [ 10%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_joinlines PASSED [ 10%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_escapedstr PASSED [ 10%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_missingaccesskey PASSED [ 10%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskeycase PASSED [ 10%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_types PASSED [ 10%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing PASSED [ 10%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey PASSED [ 10%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_source_no_amp_in_target PASSED [ 10%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_both_amp_and_accesskey PASSED [ 10%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey PASSED [ 10%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_entities_two PASSED [ 10%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_entities PASSED [ 10%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_comments_translator PASSED [ 10%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_retains_hashprefix PASSED [ 10%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_convertdtd PASSED [ 10%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_untranslated_with_template PASSED [ 10%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_untranslated_without_template PASSED [ 10%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_blank_source PASSED [ 10%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_newlines_escapes PASSED [ 10%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_simple PASSED [ 10%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_escape PASSED [ 10%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_quotes PASSED [ 10%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_amp PASSED [ 10%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_merging_entries_with_spaces_removed PASSED [ 10%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_preserving_spaces PASSED [ 10%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_preserving_spaces_after_value PASSED [ 10%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_comments PASSED [ 10%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_duplicates PASSED [ 11%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_joinlines PASSED [ 11%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_escapedstr PASSED [ 11%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_missingaccesskey PASSED [ 11%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskeycase PASSED [ 11%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_types PASSED [ 11%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing PASSED [ 11%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey PASSED [ 11%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_source_no_amp_in_target PASSED [ 11%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_both_amp_and_accesskey PASSED [ 11%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_amp_no_accesskey PASSED [ 11%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_entities_two PASSED [ 11%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_entities PASSED [ 11%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_comments_translator PASSED [ 11%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_retains_hashprefix PASSED [ 11%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_convertdtd PASSED [ 11%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_untranslated_with_template PASSED [ 11%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_untranslated_without_template PASSED [ 11%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_blank_source PASSED [ 11%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_newlines_escapes PASSED [ 11%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_simple PASSED [ 11%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_escape PASSED [ 11%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_quotes PASSED [ 11%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_amp PASSED [ 11%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_merging_entries_with_spaces_removed PASSED [ 11%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_preserving_spaces PASSED [ 11%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_preserving_spaces_after_value PASSED [ 11%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_comments PASSED [ 11%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_duplicates PASSED [ 11%] 236s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_help PASSED [ 11%] 236s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_defaults PASSED [ 11%] 236s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_root_name PASSED [ 11%] 236s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_value_name PASSED [ 11%] 236s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_key PASSED [ 11%] 236s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_default_namespace PASSED [ 11%] 236s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_namespace_prefix PASSED [ 11%] 236s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_indent_eight PASSED [ 11%] 236s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_noindent PASSED [ 11%] 236s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXMLCommand::test_help PASSED [ 11%] 236s tests/translate/convert/test_po2html.py::TestPO2Html::test_simple PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2Html::test_linebreaks PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2Html::test_replace_substrings PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_outside_translatable_content PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_within_translatable_content_not_embedded PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_embedded_within_translatable_content PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_without_value PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2Html::test_entities PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2Html::test_entities_template_vs_po_mismatch PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2Html::test_utf8_non_ascii_characters PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2Html::test_custom_entities_preserved PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2Html::test_escapes PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_auto_rtl PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_auto_ltr PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_added_when_missing PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_not_changed_without_lang_translation PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_translated PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_untranslated PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_fuzzy PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2Html::test_untranslated_attributes PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2Html::test_button_translation PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2Html::test_lang_attribute_only_on_html_tag PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2Html::test_data_translate_ignore_preserved PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2Html::test_translate_comment_directives_preserved PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2Html::test_data_translate_ignore_with_translation_in_po PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2Html::test_translate_comment_with_translation_in_po PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2Html::test_meta_social_media_tags_translation PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2Html::test_meta_non_translatable_tags_preserved PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_simple PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_linebreaks PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_replace_substrings PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_outside_translatable_content PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_within_translatable_content_not_embedded PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_embedded_within_translatable_content PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_without_value PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_entities PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_entities_template_vs_po_mismatch PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_utf8_non_ascii_characters PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_custom_entities_preserved PASSED [ 12%] 236s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_escapes PASSED [ 13%] 236s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_auto_rtl PASSED [ 13%] 236s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_auto_ltr PASSED [ 13%] 236s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_added_when_missing PASSED [ 13%] 236s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_not_changed_without_lang_translation PASSED [ 13%] 236s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_translated PASSED [ 13%] 236s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_untranslated PASSED [ 13%] 236s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_fuzzy PASSED [ 13%] 236s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_untranslated_attributes PASSED [ 13%] 236s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_button_translation PASSED [ 13%] 236s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_lang_attribute_only_on_html_tag PASSED [ 13%] 236s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_data_translate_ignore_preserved PASSED [ 13%] 236s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_translate_comment_directives_preserved PASSED [ 13%] 236s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_data_translate_ignore_with_translation_in_po PASSED [ 13%] 236s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_translate_comment_with_translation_in_po PASSED [ 13%] 236s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_meta_social_media_tags_translation PASSED [ 13%] 236s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_meta_non_translatable_tags_preserved PASSED [ 13%] 236s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_help PASSED [ 13%] 236s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_individual_files PASSED [ 13%] 236s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_fully_recursive PASSED [ 13%] 236s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_input_specified PASSED [ 13%] 236s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified PASSED [ 13%] 236s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_output_specified PASSED [ 13%] 236s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file PASSED [ 13%] 236s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file_and_templates_overwritten PASSED [ 13%] 236s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_empty_file PASSED [ 13%] 236s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_summary PASSED [ 13%] 236s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_description PASSED [ 13%] 236s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_location PASSED [ 13%] 236s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_comment PASSED [ 13%] 236s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_complex_icalendar PASSED [ 13%] 236s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_skip_fuzzy PASSED [ 13%] 236s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_include_fuzzy PASSED [ 13%] 236s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_no_template PASSED [ 13%] 236s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_template_location_not_in_source_file PASSED [ 13%] 236s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_completion_below_threshold PASSED [ 13%] 236s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_completion_above_threshold PASSED [ 13%] 236s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_empty_file PASSED [ 13%] 236s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_summary PASSED [ 13%] 236s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_description PASSED [ 14%] 236s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_location PASSED [ 14%] 236s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_comment PASSED [ 14%] 236s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_complex_icalendar PASSED [ 14%] 236s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_skip_fuzzy PASSED [ 14%] 236s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_include_fuzzy PASSED [ 14%] 236s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_no_template PASSED [ 14%] 236s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_template_location_not_in_source_file PASSED [ 14%] 236s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_completion_below_threshold PASSED [ 14%] 236s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_completion_above_threshold PASSED [ 14%] 236s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_help PASSED [ 14%] 236s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_help PASSED [ 14%] 236s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_convert PASSED [ 14%] 236s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_no_templates PASSED [ 14%] 236s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_simple PASSED [ 14%] 236s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_space_preservation PASSED [ 14%] 236s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_blank_entries PASSED [ 14%] 236s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_fuzzy PASSED [ 14%] 236s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_propertyless_template PASSED [ 14%] 236s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_empty_value PASSED [ 14%] 236s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_dialects_inno PASSED [ 14%] 236s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_misaligned_files PASSED [ 14%] 236s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_completion_below_threshold PASSED [ 14%] 236s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_completion_above_threshold PASSED [ 14%] 236s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_no_fuzzy PASSED [ 14%] 236s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_allow_fuzzy PASSED [ 14%] 236s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_missing_source PASSED [ 14%] 236s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_repeated_locations PASSED [ 14%] 236s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_no_templates PASSED [ 14%] 236s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_simple PASSED [ 14%] 236s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_space_preservation PASSED [ 14%] 236s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_blank_entries PASSED [ 14%] 236s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_fuzzy PASSED [ 14%] 236s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_propertyless_template PASSED [ 14%] 236s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_empty_value PASSED [ 14%] 236s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_dialects_inno PASSED [ 14%] 236s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_misaligned_files PASSED [ 14%] 236s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_completion_below_threshold PASSED [ 14%] 236s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_completion_above_threshold PASSED [ 14%] 236s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_no_fuzzy PASSED [ 15%] 236s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_allow_fuzzy PASSED [ 15%] 236s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_missing_source PASSED [ 15%] 236s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_repeated_locations PASSED [ 15%] 236s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_help PASSED [ 15%] 236s tests/translate/convert/test_po2json.py::TestPO2JSON::test_basic PASSED [ 15%] 236s tests/translate/convert/test_po2json.py::TestPO2JSON::test_ordering_serialize PASSED [ 15%] 236s tests/translate/convert/test_po2json.py::TestPO2JSON::test_dont_use_empty_translation PASSED [ 15%] 236s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_false_remove_untranslated_false PASSED [ 15%] 236s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_false_remove_untranslated_true PASSED [ 15%] 236s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_true_remove_untranslated_false PASSED [ 15%] 236s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_true_remove_untranslated_true PASSED [ 15%] 236s tests/translate/convert/test_po2md.py::TestPO2MD::test_help PASSED [ 15%] 236s tests/translate/convert/test_po2md.py::TestPO2MD::test_single_markdown_file_with_single_po PASSED [ 15%] 236s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_with_single_po PASSED [ 15%] 236s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_and_directory_of_po_files PASSED [ 15%] 236s tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_table XFAIL [ 15%] 236s tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_frontmatter PASSED [ 15%] 236s tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_translation_ignore_sections PASSED [ 15%] 236s tests/translate/convert/test_po2moz.py::TestPO2MozCommand::test_help PASSED [ 15%] 236s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_empty PASSED [ 15%] 236s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_simple PASSED [ 15%] 236s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_comment PASSED [ 15%] 236s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_ok_marker PASSED [ 15%] 236s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_completion_below_threshold PASSED [ 15%] 236s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_completion_above_threshold PASSED [ 15%] 236s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_skip_non_translatable_input PASSED [ 15%] 236s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_no_fuzzy PASSED [ 15%] 236s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_allow_fuzzy PASSED [ 15%] 236s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_mark_active PASSED [ 15%] 236s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_empty PASSED [ 15%] 236s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_simple PASSED [ 15%] 236s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_comment PASSED [ 15%] 236s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_ok_marker PASSED [ 15%] 236s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_completion_below_threshold PASSED [ 15%] 236s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_completion_above_threshold PASSED [ 15%] 236s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_skip_non_translatable_input PASSED [ 15%] 236s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_no_fuzzy PASSED [ 15%] 236s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_allow_fuzzy PASSED [ 15%] 236s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_mark_active PASSED [ 16%] 236s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_help PASSED [ 16%] 236s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_help PASSED [ 16%] 236s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert PASSED [ 16%] 236s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert_with_multiple_units PASSED [ 16%] 236s tests/translate/convert/test_po2oo.py::TestPO2OO::test_convertoo PASSED [ 16%] 236s tests/translate/convert/test_po2oo.py::TestPO2OO::test_pofilter PASSED [ 16%] 236s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_simple PASSED [ 16%] 237s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_escape PASSED [ 16%] 237s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_quotes PASSED [ 16%] 237s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_spaces PASSED [ 16%] 237s tests/translate/convert/test_po2oo.py::TestPO2OO::test_default_timestamp PASSED [ 16%] 237s tests/translate/convert/test_po2oo.py::TestPO2OO::test_escape_conversion PASSED [ 16%] 237s tests/translate/convert/test_po2oo.py::TestPO2OO::test_helpcontent_escapes PASSED [ 16%] 237s tests/translate/convert/test_po2oo.py::TestPO2OO::test_helpcontent_escapes2 PASSED [ 16%] 237s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_convertoo PASSED [ 16%] 237s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_pofilter PASSED [ 16%] 237s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_simple PASSED [ 16%] 237s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_escape PASSED [ 16%] 237s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_quotes PASSED [ 16%] 237s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_spaces PASSED [ 16%] 237s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_default_timestamp PASSED [ 16%] 237s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_escape_conversion PASSED [ 16%] 237s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_helpcontent_escapes PASSED [ 16%] 237s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_helpcontent_escapes2 PASSED [ 16%] 237s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_help PASSED [ 16%] 237s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp PASSED [ 16%] 237s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp_notemplate PASSED [ 16%] 237s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp_empty_template PASSED [ 16%] 237s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_simple PASSED [ 16%] 237s tests/translate/convert/test_po2php.py::TestPO2Php::test_space_preservation PASSED [ 16%] 237s tests/translate/convert/test_po2php.py::TestPO2Php::test_preserve_unused_statement PASSED [ 16%] 237s tests/translate/convert/test_po2php.py::TestPO2Php::test_not_translated_multiline PASSED [ 16%] 237s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_blank_entries PASSED [ 16%] 237s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_fuzzy PASSED [ 16%] 237s tests/translate/convert/test_po2php.py::TestPO2Php::test_locations_with_spaces PASSED [ 16%] 237s tests/translate/convert/test_po2php.py::TestPO2Php::test_inline_comments PASSED [ 16%] 237s tests/translate/convert/test_po2php.py::TestPO2Php::test_block_comments PASSED [ 16%] 237s tests/translate/convert/test_po2php.py::TestPO2Php::test_named_variables PASSED [ 16%] 237s tests/translate/convert/test_po2php.py::TestPO2Php::test_multiline PASSED [ 17%] 237s tests/translate/convert/test_po2php.py::TestPO2Php::test_hash_comment PASSED [ 17%] 237s tests/translate/convert/test_po2php.py::TestPO2Php::test_arrays PASSED [ 17%] 237s tests/translate/convert/test_po2php.py::TestPO2Php::test_named_nested_array PASSED [ 17%] 237s tests/translate/convert/test_po2php.py::TestPO2Php::test_unnamed_nested_arrays PASSED [ 17%] 237s tests/translate/convert/test_po2php.py::TestPO2Php::test_return_array_with_comments PASSED [ 17%] 237s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_propertyless_template XFAIL [ 17%] 237s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp PASSED [ 17%] 237s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp_notemplate PASSED [ 17%] 237s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp_empty_template PASSED [ 17%] 237s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_simple PASSED [ 17%] 237s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_space_preservation PASSED [ 17%] 237s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_preserve_unused_statement PASSED [ 17%] 237s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_not_translated_multiline PASSED [ 17%] 237s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_blank_entries PASSED [ 17%] 237s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_fuzzy PASSED [ 17%] 237s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_locations_with_spaces PASSED [ 17%] 237s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_inline_comments PASSED [ 17%] 237s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_block_comments PASSED [ 17%] 237s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_named_variables PASSED [ 17%] 237s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_multiline PASSED [ 17%] 237s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_hash_comment PASSED [ 17%] 237s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_arrays PASSED [ 17%] 237s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_named_nested_array PASSED [ 17%] 237s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_unnamed_nested_arrays PASSED [ 17%] 237s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_return_array_with_comments PASSED [ 17%] 237s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_propertyless_template XFAIL [ 17%] 237s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_help PASSED [ 17%] 237s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_simple PASSED [ 17%] 237s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated PASSED [ 17%] 237s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_hard_newlines_preserved PASSED [ 17%] 237s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_space_preservation PASSED [ 17%] 237s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_no_value PASSED [ 17%] 237s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_no_separator PASSED [ 17%] 237s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_value_no_key PASSED [ 17%] 237s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_blank_entries PASSED [ 17%] 237s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_fuzzy PASSED [ 17%] 237s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys PASSED [ 17%] 237s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey PASSED [ 17%] 237s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_margin_whitespace PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_all_whitespace PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_propertyless_template PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_delimiters PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_empty_value PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_personalities PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_simple PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_multiline PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_multiline2 PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_comments PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_unchanged PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_blank PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_gaia_plurals PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_duplicates PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_gwt_plurals PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_utf16_with_empty_lines PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_simple PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_hard_newlines_preserved PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_space_preservation PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_no_value PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_no_separator PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_value_no_key PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_blank_entries PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_fuzzy PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys_missing_accesskey PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_margin_whitespace PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_all_whitespace PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_propertyless_template PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_delimiters PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_empty_value PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_personalities PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_simple PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_multiline PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_multiline2 PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_comments PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_unchanged PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_blank PASSED [ 18%] 237s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_gaia_plurals PASSED [ 19%] 237s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_duplicates PASSED [ 19%] 237s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_gwt_plurals PASSED [ 19%] 237s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_utf16_with_empty_lines PASSED [ 19%] 237s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_help PASSED [ 19%] 237s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_help PASSED [ 19%] 237s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert PASSED [ 19%] 237s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_quotes PASSED [ 19%] 237s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment PASSED [ 19%] 237s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment_dos_eol PASSED [ 19%] 237s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_double_string PASSED [ 19%] 237s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_popup PASSED [ 19%] 237s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_discardable PASSED [ 19%] 237s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_menuex PASSED [ 19%] 237s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_newlines PASSED [ 19%] 237s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment_after PASSED [ 19%] 237s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_block_language PASSED [ 19%] 237s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_output_encoding PASSED [ 19%] 237s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_quotes_strintable PASSED [ 19%] 237s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_simpleunit PASSED [ 19%] 237s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_basic PASSED [ 19%] 237s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_multiline PASSED [ 19%] 237s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapednewlines PASSED [ 19%] 237s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapedtabs PASSED [ 19%] 237s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapedquotes PASSED [ 19%] 237s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_exclusions PASSED [ 19%] 238s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments PASSED [ 19%] 238s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingcomment PASSED [ 19%] 238s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingduplicatecomment PASSED [ 19%] 238s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingduplicatecommentwithwhitespace PASSED [ 19%] 238s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments PASSED [ 19%] 238s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments_existingcomment PASSED [ 19%] 238s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments_existingduplicatecomment PASSED [ 19%] 238s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments PASSED [ 19%] 238s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments_existingduplicatecomment PASSED [ 19%] 238s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments_existingcomment PASSED [ 19%] 238s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_existingcomments PASSED [ 19%] 238s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_plus_in_resourcekey PASSED [ 19%] 238s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_special_chars_in_resourcekey PASSED [ 19%] 238s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_simpleunit PASSED [ 20%] 238s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_basic PASSED [ 20%] 238s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_multiline PASSED [ 20%] 238s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapednewlines PASSED [ 20%] 238s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapedtabs PASSED [ 20%] 238s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapedquotes PASSED [ 20%] 238s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_exclusions PASSED [ 20%] 238s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments PASSED [ 20%] 238s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingcomment PASSED [ 20%] 238s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingduplicatecomment PASSED [ 20%] 238s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingduplicatecommentwithwhitespace PASSED [ 20%] 238s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments PASSED [ 20%] 238s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments_existingcomment PASSED [ 20%] 238s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments_existingduplicatecomment PASSED [ 20%] 238s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments PASSED [ 20%] 238s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments_existingduplicatecomment PASSED [ 20%] 238s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments_existingcomment PASSED [ 20%] 238s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_existingcomments PASSED [ 20%] 238s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_plus_in_resourcekey PASSED [ 20%] 238s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_special_chars_in_resourcekey PASSED [ 20%] 238s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_help PASSED [ 20%] 238s tests/translate/convert/test_po2sub.py::TestPO2Sub::test_subrip PASSED [ 20%] 238s tests/translate/convert/test_po2sub.py::TestPO2SubCommand::test_subrip PASSED [ 20%] 238s tests/translate/convert/test_po2sub.py::TestPO2SubCommand::test_help PASSED [ 20%] 238s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert_empty PASSED [ 20%] 238s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert PASSED [ 20%] 238s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert_marked_untranslated PASSED [ 20%] 238s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert_empty PASSED [ 20%] 238s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert PASSED [ 20%] 238s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert_marked_untranslated PASSED [ 20%] 238s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_help PASSED [ 20%] 238s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_basic PASSED [ 20%] 238s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_sourcelanguage PASSED [ 20%] 238s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_targetlanguage PASSED [ 20%] 238s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_multiline PASSED [ 20%] 238s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapednewlines PASSED [ 20%] 238s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapedtabs PASSED [ 20%] 238s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapedquotes PASSED [ 20%] 238s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_exclusions PASSED [ 20%] 238s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_nonascii PASSED [ 21%] 238s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_nonecomments PASSED [ 21%] 238s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_otherscomments PASSED [ 21%] 238s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_sourcecomments PASSED [ 21%] 238s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_typecomments PASSED [ 21%] 238s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_basic PASSED [ 21%] 238s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_sourcelanguage PASSED [ 21%] 238s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_targetlanguage PASSED [ 21%] 238s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_multiline PASSED [ 21%] 238s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapednewlines PASSED [ 21%] 238s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapedtabs PASSED [ 21%] 238s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapedquotes PASSED [ 21%] 238s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_exclusions PASSED [ 21%] 238s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_nonascii PASSED [ 21%] 238s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_nonecomments PASSED [ 21%] 238s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_otherscomments PASSED [ 21%] 238s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_sourcecomments PASSED [ 21%] 238s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_typecomments PASSED [ 21%] 238s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_help PASSED [ 21%] 238s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_context PASSED [ 21%] 238s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_simple_convert PASSED [ 21%] 238s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_nested_convert PASSED [ 21%] 238s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_template_required PASSED [ 21%] 238s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_untranslated_uses_source PASSED [ 21%] 238s tests/translate/convert/test_po2ts.py::TestPO2TS::test_simpleunit PASSED [ 21%] 238s tests/translate/convert/test_po2ts.py::TestPO2TS::test_simple_unicode_unit PASSED [ 21%] 238s tests/translate/convert/test_po2ts.py::TestPO2TS::test_fullunit PASSED [ 21%] 238s tests/translate/convert/test_po2ts.py::TestPO2TS::test_fuzzyunit PASSED [ 21%] 238s tests/translate/convert/test_po2ts.py::TestPO2TS::test_obsolete PASSED [ 21%] 238s tests/translate/convert/test_po2ts.py::TestPO2TS::test_duplicates PASSED [ 21%] 238s tests/translate/convert/test_po2ts.py::TestPO2TS::test_linebreak PASSED [ 21%] 238s tests/translate/convert/test_po2ts.py::TestPO2TS::test_linebreak_consecutive PASSED [ 21%] 238s tests/translate/convert/test_po2ts.py::TestPO2TS::test_plural PASSED [ 21%] 238s tests/translate/convert/test_po2ts.py::TestPO2TS::test_plural_fuzzy PASSED [ 21%] 238s tests/translate/convert/test_po2ts.py::TestPO2TS::test_unit_without_location PASSED [ 21%] 238s tests/translate/convert/test_po2ts.py::TestPO2TS::test_mixed_units_with_and_without_location PASSED [ 21%] 238s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_simpleunit PASSED [ 21%] 238s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_simple_unicode_unit PASSED [ 21%] 238s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_fullunit PASSED [ 21%] 238s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_fuzzyunit PASSED [ 22%] 238s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_obsolete PASSED [ 22%] 238s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_duplicates PASSED [ 22%] 238s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_linebreak PASSED [ 22%] 238s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_linebreak_consecutive PASSED [ 22%] 238s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_plural PASSED [ 22%] 238s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_plural_fuzzy PASSED [ 22%] 238s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_unit_without_location PASSED [ 22%] 238s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_mixed_units_with_and_without_location PASSED [ 22%] 238s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_help PASSED [ 22%] 238s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_basic PASSED [ 22%] 238s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_nonascii PASSED [ 22%] 238s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_blank_handling PASSED [ 22%] 238s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_fuzzy_handling PASSED [ 22%] 238s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_obsolete_ignore PASSED [ 22%] 238s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_header_ignore PASSED [ 22%] 238s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_convert_completion_below_threshold PASSED [ 22%] 238s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_convert_completion_above_threshold PASSED [ 22%] 238s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_substring_replacement PASSED [ 22%] 238s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_duplicate_text_segment_based_replacement PASSED [ 22%] 238s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_dokuwiki_flavour_segmentation PASSED [ 22%] 238s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_basic PASSED [ 22%] 238s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_nonascii PASSED [ 22%] 238s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_blank_handling PASSED [ 22%] 238s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_fuzzy_handling PASSED [ 22%] 238s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_obsolete_ignore PASSED [ 22%] 238s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_header_ignore PASSED [ 22%] 238s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_convert_completion_below_threshold PASSED [ 22%] 238s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_convert_completion_above_threshold PASSED [ 22%] 238s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_substring_replacement PASSED [ 22%] 238s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_duplicate_text_segment_based_replacement PASSED [ 22%] 238s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_dokuwiki_flavour_segmentation PASSED [ 22%] 238s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_help PASSED [ 22%] 238s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_basic PASSED [ 22%] 238s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_unicode PASSED [ 22%] 238s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_ordering_serialize PASSED [ 22%] 238s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_markmin PASSED [ 22%] 238s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_minimal PASSED [ 22%] 238s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_basic PASSED [ 22%] 238s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_multiline PASSED [ 23%] 238s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapednewlines PASSED [ 23%] 238s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapedtabs PASSED [ 23%] 238s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapedquotes PASSED [ 23%] 238s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_locationcomments PASSED [ 23%] 238s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_othercomments PASSED [ 23%] 238s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_automaticcomments PASSED [ 23%] 238s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_header PASSED [ 23%] 238s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_fuzzy PASSED [ 23%] 238s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_germanic_plurals PASSED [ 23%] 238s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_funny_plurals PASSED [ 23%] 238s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_language_tags PASSED [ 23%] 238s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_variables PASSED [ 23%] 238s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_approved PASSED [ 23%] 238s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_empty_PO PASSED [ 23%] 238s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_no_templates PASSED [ 23%] 238s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_simple_output PASSED [ 23%] 238s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_simple PASSED [ 23%] 238s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_translated PASSED [ 23%] 238s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_no_fuzzy PASSED [ 23%] 238s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_allow_fuzzy PASSED [ 23%] 238s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_nested PASSED [ 23%] 238s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_completion_below_threshold PASSED [ 23%] 238s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_completion_above_threshold PASSED [ 23%] 238s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_empty_PO PASSED [ 23%] 238s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_no_templates PASSED [ 23%] 238s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_simple_output PASSED [ 23%] 238s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_simple PASSED [ 23%] 238s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_translated PASSED [ 23%] 238s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_no_fuzzy PASSED [ 23%] 238s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_allow_fuzzy PASSED [ 23%] 238s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_nested PASSED [ 23%] 238s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_completion_below_threshold PASSED [ 23%] 238s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_completion_above_threshold PASSED [ 23%] 238s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_help PASSED [ 23%] 238s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_convertpot_blank PASSED [ 23%] 238s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_convertpot_blank_plurals PASSED [ 23%] 238s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_simple PASSED [ 23%] 238s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_messages_marked_fuzzy PASSED [ 23%] 238s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_plurals_with_fuzzy_matching PASSED [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_change XFAIL [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_change PASSED [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_and_whitespace_change PASSED [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_ambiguous_with_disambiguous PASSED [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_accelerator_changes XFAIL [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_lines_cut_differently XFAIL [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_automatic_comments_dont_duplicate PASSED [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_automatic_comments_new_overrides_old PASSED [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_comments_with_blank_comment_lines PASSED [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_empty_commentlines PASSED [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgidcomments PASSED [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_with_msgidcomment PASSED [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_plurals PASSED [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_obsoleting_messages PASSED [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_not_obsoleting_empty_messages PASSED [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_new_before_obsolete PASSED [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_resurrect_obsolete_messages PASSED [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_resurrect_obsolete_messages_into_msgidcomment PASSED [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_header_initialisation PASSED [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_comments PASSED [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_typecomments PASSED [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgctxt PASSED [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgctxt_multiline PASSED [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgid_merge_on_location PASSED [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgid_merge_on_id PASSED [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_empty_msgid PASSED [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_migrate_msgidcomment_to_msgctxt PASSED [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_obsolete_msgctxt PASSED [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_small_strings PASSED [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_convertpot_blank PASSED [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_convertpot_blank_plurals PASSED [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_simple PASSED [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_messages_marked_fuzzy PASSED [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_plurals_with_fuzzy_matching PASSED [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_change XFAIL [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_change PASSED [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_and_whitespace_change PASSED [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_ambiguous_with_disambiguous PASSED [ 24%] 238s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_accelerator_changes XFAIL [ 25%] 238s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_lines_cut_differently XFAIL [ 25%] 238s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_automatic_comments_dont_duplicate PASSED [ 25%] 238s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_automatic_comments_new_overrides_old PASSED [ 25%] 238s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_comments_with_blank_comment_lines PASSED [ 25%] 238s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_empty_commentlines PASSED [ 25%] 238s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgidcomments PASSED [ 25%] 238s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_with_msgidcomment PASSED [ 25%] 238s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_plurals PASSED [ 25%] 238s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_obsoleting_messages PASSED [ 25%] 238s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_not_obsoleting_empty_messages PASSED [ 25%] 238s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_new_before_obsolete PASSED [ 25%] 238s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_resurrect_obsolete_messages PASSED [ 25%] 238s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_resurrect_obsolete_messages_into_msgidcomment PASSED [ 25%] 238s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_header_initialisation PASSED [ 25%] 238s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_comments PASSED [ 25%] 238s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_typecomments PASSED [ 25%] 238s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgctxt PASSED [ 25%] 238s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgctxt_multiline PASSED [ 25%] 238s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgid_merge_on_location PASSED [ 25%] 238s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgid_merge_on_id PASSED [ 25%] 238s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_empty_msgid PASSED [ 25%] 238s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_migrate_msgidcomment_to_msgctxt PASSED [ 25%] 238s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_obsolete_msgctxt PASSED [ 25%] 238s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_small_strings PASSED [ 25%] 238s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_help PASSED [ 25%] 238s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_no_endlines_added PASSED [ 25%] 238s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_uncomment_contributors PASSED [ 25%] 238s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_multiline_comment_newlines PASSED [ 25%] 238s tests/translate/convert/test_prop2po.py::TestProp2PO::test_simpleentry PASSED [ 25%] 238s tests/translate/convert/test_prop2po.py::TestProp2PO::test_convertprop PASSED [ 25%] 238s tests/translate/convert/test_prop2po.py::TestProp2PO::test_no_value_entry PASSED [ 25%] 238s tests/translate/convert/test_prop2po.py::TestProp2PO::test_no_separator_entry PASSED [ 25%] 238s tests/translate/convert/test_prop2po.py::TestProp2PO::test_value_no_key_entry PASSED [ 25%] 238s tests/translate/convert/test_prop2po.py::TestProp2PO::test_tab_at_end_of_string PASSED [ 25%] 238s tests/translate/convert/test_prop2po.py::TestProp2PO::test_tab_at_start_of_value PASSED [ 25%] 238s tests/translate/convert/test_prop2po.py::TestProp2PO::test_unicode PASSED [ 25%] 238s tests/translate/convert/test_prop2po.py::TestProp2PO::test_multiline_escaping PASSED [ 25%] 238s tests/translate/convert/test_prop2po.py::TestProp2PO::test_comments PASSED [ 25%] 238s tests/translate/convert/test_prop2po.py::TestProp2PO::test_multiline_comments PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2PO::test_folding_accesskeys PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2PO::test_dont_translate PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2PO::test_duplicate_locations_mozilla PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2PO::test_emptyproperty PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2PO::test_emptyproperty_translated PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2PO::test_newlines_in_value PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2PO::test_header_comments PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2PO::test_unassociated_comment_order PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2PO::test_x_header PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2PO::test_gaia_plurals PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2PO::test_successive_gaia_plurals PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2PO::test_duplicate_keys PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2PO::test_gwt_plurals PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2PO::test_strings_bilingual_simple PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2PO::test_strings_bilingual_multiline PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_simpleentry PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_convertprop PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_no_value_entry PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_no_separator_entry PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_value_no_key_entry PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_tab_at_end_of_string PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_tab_at_start_of_value PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_unicode PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_multiline_escaping PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_comments PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_multiline_comments PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_folding_accesskeys PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_dont_translate PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_duplicate_locations_mozilla PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_emptyproperty PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_emptyproperty_translated PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_newlines_in_value PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_header_comments PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_unassociated_comment_order PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_x_header PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_gaia_plurals PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_successive_gaia_plurals PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_duplicate_keys PASSED [ 26%] 238s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_gwt_plurals PASSED [ 27%] 238s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_strings_bilingual_simple PASSED [ 27%] 238s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_strings_bilingual_multiline PASSED [ 27%] 238s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_help PASSED [ 27%] 238s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_help PASSED [ 27%] 238s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert PASSED [ 27%] 238s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf16 PASSED [ 27%] 238s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong PASSED [ 27%] 238s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf8 PASSED [ 27%] 238s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_menuex PASSED [ 27%] 238s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_simple PASSED [ 27%] 238s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_multiple_units PASSED [ 27%] 238s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_automaticcomments PASSED [ 27%] 238s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_translatorcomments PASSED [ 27%] 238s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_locations PASSED [ 27%] 238s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple PASSED [ 27%] 238s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_multiple_units PASSED [ 27%] 238s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_automaticcomments PASSED [ 27%] 238s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_translatorcomments PASSED [ 27%] 238s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_locations PASSED [ 27%] 238s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_help PASSED [ 27%] 238s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_pot PASSED [ 27%] 238s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_po PASSED [ 27%] 238s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_remove_duplicates PASSED [ 27%] 238s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_convert_empty PASSED [ 27%] 238s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_converttiki_defaults PASSED [ 27%] 238s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_converttiki_includeunused PASSED [ 27%] 238s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_convert_empty PASSED [ 27%] 238s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_converttiki_defaults PASSED [ 27%] 238s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_converttiki_includeunused PASSED [ 27%] 238s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_help PASSED [ 27%] 238s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_simple_convert PASSED [ 27%] 238s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_nested_convert PASSED [ 27%] 238s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_comment_extraction PASSED [ 27%] 238s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_merge_with_template PASSED [ 27%] 238s tests/translate/convert/test_ts2po.py::TestTS2PO::test_blank PASSED [ 27%] 238s tests/translate/convert/test_ts2po.py::TestTS2PO::test_basic PASSED [ 27%] 238s tests/translate/convert/test_ts2po.py::TestTS2PO::test_unfinished PASSED [ 27%] 238s tests/translate/convert/test_ts2po.py::TestTS2PO::test_multiline PASSED [ 27%] 238s tests/translate/convert/test_ts2po.py::TestTS2PO::test_obsolete PASSED [ 28%] 238s tests/translate/convert/test_ts2po.py::TestTS2PO::test_comment PASSED [ 28%] 238s tests/translate/convert/test_ts2po.py::TestTS2PO::test_extracomment PASSED [ 28%] 238s tests/translate/convert/test_ts2po.py::TestTS2PO::test_emptycontext PASSED [ 28%] 238s tests/translate/convert/test_ts2po.py::TestTS2PO::test_plural PASSED [ 28%] 238s tests/translate/convert/test_ts2po.py::TestTS2PO::test_plural_unfinished PASSED [ 28%] 238s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_blank PASSED [ 28%] 238s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_basic PASSED [ 28%] 238s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_unfinished PASSED [ 28%] 238s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_multiline PASSED [ 28%] 238s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_obsolete PASSED [ 28%] 238s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_comment PASSED [ 28%] 238s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_extracomment PASSED [ 28%] 238s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_emptycontext PASSED [ 28%] 238s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_plural PASSED [ 28%] 238s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_plural_unfinished PASSED [ 28%] 238s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_help PASSED [ 28%] 238s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_convert_empty PASSED [ 28%] 238s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_keep_duplicates PASSED [ 28%] 238s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_drop_duplicates PASSED [ 28%] 238s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_simple PASSED [ 28%] 238s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_multiple_units PASSED [ 28%] 238s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_carriage_return PASSED [ 28%] 238s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_merge PASSED [ 28%] 238s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_no_segmentation PASSED [ 28%] 238s tests/translate/convert/test_txt2po.py::TestDoku2po::test_convert_empty PASSED [ 28%] 238s tests/translate/convert/test_txt2po.py::TestDoku2po::test_keep_duplicates PASSED [ 28%] 238s tests/translate/convert/test_txt2po.py::TestDoku2po::test_drop_duplicates PASSED [ 28%] 238s tests/translate/convert/test_txt2po.py::TestDoku2po::test_basic PASSED [ 28%] 238s tests/translate/convert/test_txt2po.py::TestDoku2po::test_bullet_list PASSED [ 28%] 238s tests/translate/convert/test_txt2po.py::TestDoku2po::test_numbered_list PASSED [ 28%] 238s tests/translate/convert/test_txt2po.py::TestDoku2po::test_spacing PASSED [ 28%] 238s tests/translate/convert/test_txt2po.py::TestDoku2po::test_merge PASSED [ 28%] 238s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_convert_empty PASSED [ 28%] 238s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_keep_duplicates PASSED [ 28%] 238s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_drop_duplicates PASSED [ 28%] 238s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_simple PASSED [ 28%] 238s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_multiple_units PASSED [ 28%] 238s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_carriage_return PASSED [ 28%] 238s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_merge PASSED [ 29%] 238s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_no_segmentation PASSED [ 29%] 238s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_help PASSED [ 29%] 238s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_basic PASSED [ 29%] 238s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_unicode PASSED [ 29%] 238s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_markmin PASSED [ 29%] 238s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_help PASSED [ 29%] 238s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert PASSED [ 29%] 238s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_minimal PASSED [ 29%] 238s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_basic PASSED [ 29%] 238s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_translatorcomments PASSED [ 29%] 238s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_autocomment PASSED [ 29%] 238s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_locations PASSED [ 29%] 238s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_fuzzy PASSED [ 29%] 238s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_plurals PASSED [ 29%] 238s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_minimal PASSED [ 29%] 238s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_basic PASSED [ 29%] 238s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_translatorcomments PASSED [ 29%] 238s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_autocomment PASSED [ 29%] 238s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_locations PASSED [ 29%] 238s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_fuzzy PASSED [ 29%] 238s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_plurals PASSED [ 29%] 238s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_help PASSED [ 29%] 238s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_simple_convert PASSED [ 29%] 238s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_minimal PASSED [ 29%] 238s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_basic PASSED [ 29%] 238s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_translatorcomments PASSED [ 29%] 238s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_autocomment PASSED [ 29%] 238s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_locations PASSED [ 29%] 238s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_fuzzy PASSED [ 29%] 238s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_plurals PASSED [ 29%] 238s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_help PASSED [ 29%] 238s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_preserve_filename PASSED [ 29%] 238s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_pot PASSED [ 29%] 238s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_po PASSED [ 29%] 238s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_remove_duplicates PASSED [ 29%] 238s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_convert_empty_YAML PASSED [ 29%] 238s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_simple_output PASSED [ 29%] 238s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_simple PASSED [ 29%] 238s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_nested PASSED [ 30%] 239s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_no_duplicates XFAIL [ 30%] 239s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_convert_with_template PASSED [ 30%] 239s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_comment_extraction PASSED [ 30%] 239s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_comment_extraction_nested PASSED [ 30%] 239s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_convert_empty_YAML PASSED [ 30%] 239s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_simple_output PASSED [ 30%] 239s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_simple PASSED [ 30%] 239s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_nested PASSED [ 30%] 239s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_no_duplicates XFAIL [ 30%] 239s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_convert_with_template PASSED [ 30%] 239s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_comment_extraction PASSED [ 30%] 239s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_comment_extraction_nested PASSED [ 30%] 239s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_help PASSED [ 30%] 239s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_empty_target PASSED [ 30%] 239s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_ellipsis PASSED [ 30%] 239s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_spacestart_spaceend PASSED [ 30%] 239s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_start_capitals PASSED [ 30%] 239s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_end_punc PASSED [ 30%] 239s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_combinations PASSED [ 30%] 239s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_nothing_to_do PASSED [ 30%] 239s tests/translate/filters/test_checks.py::test_defaults PASSED [ 30%] 239s tests/translate/filters/test_checks.py::test_construct PASSED [ 30%] 239s tests/translate/filters/test_checks.py::test_accelerator_markers PASSED [ 30%] 239s tests/translate/filters/test_checks.py::test_messages PASSED [ 30%] 239s tests/translate/filters/test_checks.py::test_accelerators PASSED [ 30%] 239s tests/translate/filters/test_checks.py::test_acceleratedvariables XFAIL [ 30%] 239s tests/translate/filters/test_checks.py::test_acronyms PASSED [ 30%] 239s tests/translate/filters/test_checks.py::test_blank PASSED [ 30%] 239s tests/translate/filters/test_checks.py::test_brackets PASSED [ 30%] 239s tests/translate/filters/test_checks.py::test_compendiumconflicts PASSED [ 30%] 239s tests/translate/filters/test_checks.py::test_doublequoting PASSED [ 30%] 239s tests/translate/filters/test_checks.py::test_doublespacing PASSED [ 30%] 239s tests/translate/filters/test_checks.py::test_doublewords PASSED [ 30%] 239s tests/translate/filters/test_checks.py::test_endpunc PASSED [ 30%] 239s tests/translate/filters/test_checks.py::test_endwhitespace PASSED [ 30%] 239s tests/translate/filters/test_checks.py::test_escapes PASSED [ 30%] 239s tests/translate/filters/test_checks.py::test_newlines PASSED [ 30%] 239s tests/translate/filters/test_checks.py::test_tabs PASSED [ 30%] 239s tests/translate/filters/test_checks.py::test_filepaths PASSED [ 31%] 239s tests/translate/filters/test_checks.py::test_kdecomments PASSED [ 31%] 239s tests/translate/filters/test_checks.py::test_long PASSED [ 31%] 239s tests/translate/filters/test_checks.py::test_musttranslatewords XFAIL [ 31%] 239s tests/translate/filters/test_checks.py::test_notranslatewords PASSED [ 31%] 239s tests/translate/filters/test_checks.py::test_numbers PASSED [ 31%] 239s tests/translate/filters/test_checks.py::test_persian_numbers PASSED [ 31%] 239s tests/translate/filters/test_checks.py::test_bengali_numbers PASSED [ 31%] 239s tests/translate/filters/test_checks.py::test_arabic_numbers PASSED [ 31%] 239s tests/translate/filters/test_checks.py::test_assamese_numbers PASSED [ 31%] 239s tests/translate/filters/test_checks.py::test_options PASSED [ 31%] 239s tests/translate/filters/test_checks.py::test_printf PASSED [ 31%] 239s tests/translate/filters/test_checks.py::test_pythonbraceformat PASSED [ 31%] 239s tests/translate/filters/test_checks.py::test_puncspacing PASSED [ 31%] 239s tests/translate/filters/test_checks.py::test_purepunc PASSED [ 31%] 239s tests/translate/filters/test_checks.py::test_sentencecount PASSED [ 31%] 239s tests/translate/filters/test_checks.py::test_short PASSED [ 31%] 239s tests/translate/filters/test_checks.py::test_singlequoting PASSED [ 31%] 239s tests/translate/filters/test_checks.py::test_vietnamese_singlequoting PASSED [ 31%] 239s tests/translate/filters/test_checks.py::test_persian_single_and_double_quote_fail_at_the_same_time XFAIL [ 31%] 239s tests/translate/filters/test_checks.py::test_persian_quoting PASSED [ 31%] 239s tests/translate/filters/test_checks.py::test_simplecaps PASSED [ 31%] 239s tests/translate/filters/test_checks.py::test_spellcheck SKIPPED (Spe...) [ 31%] 239s tests/translate/filters/test_checks.py::test_startcaps PASSED [ 31%] 239s tests/translate/filters/test_checks.py::test_startpunc PASSED [ 31%] 239s tests/translate/filters/test_checks.py::test_startwhitespace PASSED [ 31%] 239s tests/translate/filters/test_checks.py::test_unchanged PASSED [ 31%] 239s tests/translate/filters/test_checks.py::test_untranslated PASSED [ 31%] 239s tests/translate/filters/test_checks.py::test_validchars PASSED [ 31%] 239s tests/translate/filters/test_checks.py::test_minimalchecker PASSED [ 31%] 239s tests/translate/filters/test_checks.py::test_reducedchecker PASSED [ 31%] 239s tests/translate/filters/test_checks.py::test_variables_kde PASSED [ 31%] 239s tests/translate/filters/test_checks.py::test_variables_gnome PASSED [ 31%] 239s tests/translate/filters/test_checks.py::test_variables_mozilla PASSED [ 31%] 239s tests/translate/filters/test_checks.py::test_variables_openoffice PASSED [ 31%] 239s tests/translate/filters/test_checks.py::test_variables_cclicense PASSED [ 31%] 239s tests/translate/filters/test_checks.py::test_variables_ios PASSED [ 31%] 239s tests/translate/filters/test_checks.py::test_xmltags PASSED [ 31%] 239s tests/translate/filters/test_checks.py::test_bengali_mozilla_inverted_xmltags XFAIL [ 31%] 239s tests/translate/filters/test_checks.py::test_ooxmltags PASSED [ 32%] 239s tests/translate/filters/test_checks.py::test_functions PASSED [ 32%] 239s tests/translate/filters/test_checks.py::test_emails PASSED [ 32%] 239s tests/translate/filters/test_checks.py::test_urls PASSED [ 32%] 239s tests/translate/filters/test_checks.py::test_simpleplurals PASSED [ 32%] 239s tests/translate/filters/test_checks.py::test_nplurals PASSED [ 32%] 239s tests/translate/filters/test_checks.py::test_credits PASSED [ 32%] 239s tests/translate/filters/test_checks.py::test_gconf PASSED [ 32%] 239s tests/translate/filters/test_checks.py::test_validxml PASSED [ 32%] 239s tests/translate/filters/test_checks.py::test_hassuggestion PASSED [ 32%] 239s tests/translate/filters/test_checks.py::test_dialogsizes PASSED [ 32%] 239s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers PASSED [ 32%] 239s tests/translate/filters/test_checks.py::test_mozilla_no_accelerators_for_indic PASSED [ 32%] 239s tests/translate/filters/test_checks.py::test_noaccelerators_only_in_mozilla_checker PASSED [ 32%] 239s tests/translate/filters/test_checks.py::test_ensure_accelerators_not_in_target_if_not_in_source PASSED [ 32%] 239s tests/translate/filters/test_checks.py::test_ensure_bengali_languages_script_is_correct PASSED [ 32%] 239s tests/translate/filters/test_checks.py::test_category PASSED [ 32%] 239s tests/translate/filters/test_decoration.py::test_spacestart PASSED [ 32%] 239s tests/translate/filters/test_decoration.py::test_isvalidaccelerator PASSED [ 32%] 239s tests/translate/filters/test_decoration.py::test_find_marked_variables PASSED [ 32%] 239s tests/translate/filters/test_decoration.py::test_getnumbers PASSED [ 32%] 239s tests/translate/filters/test_decoration.py::test_getfunctions PASSED [ 32%] 239s tests/translate/filters/test_pofilter.py::TestPOFilter::test_simplepass PASSED [ 32%] 239s tests/translate/filters/test_pofilter.py::TestPOFilter::test_simplefail PASSED [ 32%] 239s tests/translate/filters/test_pofilter.py::TestPOFilter::test_variables_across_lines PASSED [ 32%] 239s tests/translate/filters/test_pofilter.py::TestPOFilter::test_ignore_if_already_marked PASSED [ 32%] 239s tests/translate/filters/test_pofilter.py::TestPOFilter::test_non_existent_check PASSED [ 32%] 239s tests/translate/filters/test_pofilter.py::TestPOFilter::test_list_all_tests PASSED [ 32%] 239s tests/translate/filters/test_pofilter.py::TestPOFilter::test_test_against_fuzzy PASSED [ 32%] 239s tests/translate/filters/test_pofilter.py::TestPOFilter::test_test_against_review PASSED [ 32%] 239s tests/translate/filters/test_pofilter.py::TestPOFilter::test_isfuzzy PASSED [ 32%] 239s tests/translate/filters/test_pofilter.py::TestPOFilter::test_isreview PASSED [ 32%] 239s tests/translate/filters/test_pofilter.py::TestPOFilter::test_notes PASSED [ 32%] 239s tests/translate/filters/test_pofilter.py::TestPOFilter::test_unicode PASSED [ 32%] 239s tests/translate/filters/test_pofilter.py::TestPOFilter::test_preconditions PASSED [ 32%] 239s tests/translate/filters/test_pofilter.py::TestPOFilter::test_msgid_comments PASSED [ 32%] 239s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_simplepass PASSED [ 32%] 239s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_simplefail PASSED [ 32%] 239s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_variables_across_lines PASSED [ 32%] 239s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_ignore_if_already_marked PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_non_existent_check PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_list_all_tests PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_test_against_fuzzy PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_test_against_review PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_isfuzzy PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_isreview PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_notes PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_unicode PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_preconditions PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_simplepass PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_simplefail PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_variables_across_lines PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_ignore_if_already_marked PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_non_existent_check PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_list_all_tests PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_notes PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_unicode PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_preconditions PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_test_against_fuzzy PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_test_against_review PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_isfuzzy PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_isreview PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_simplepass PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_simplefail PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_variables_across_lines PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_ignore_if_already_marked PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_non_existent_check PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_list_all_tests PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_test_against_fuzzy PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_test_against_review PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_isfuzzy PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_isreview PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_notes PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_unicode PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_preconditions PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_msgid_comments PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_cedillas PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_niciun PASSED [ 33%] 239s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_nicio PASSED [ 34%] 239s tests/translate/filters/test_prefilters.py::test_removekdecomments PASSED [ 34%] 239s tests/translate/filters/test_prefilters.py::test_filterwordswithpunctuation PASSED [ 34%] 239s tests/translate/lang/test_af.py::test_sentences PASSED [ 34%] 239s tests/translate/lang/test_af.py::test_capsstart PASSED [ 34%] 239s tests/translate/lang/test_af.py::test_transliterate_cyrillic PASSED [ 34%] 239s tests/translate/lang/test_am.py::test_punctranslate PASSED [ 34%] 239s tests/translate/lang/test_am.py::test_sentences PASSED [ 34%] 239s tests/translate/lang/test_ar.py::test_punctranslate PASSED [ 34%] 239s tests/translate/lang/test_ar.py::test_sentences PASSED [ 34%] 239s tests/translate/lang/test_common.py::test_characters PASSED [ 34%] 239s tests/translate/lang/test_common.py::test_words PASSED [ 34%] 239s tests/translate/lang/test_common.py::test_word_khmer PASSED [ 34%] 239s tests/translate/lang/test_common.py::test_sentences PASSED [ 34%] 239s tests/translate/lang/test_common.py::test_capsstart PASSED [ 34%] 239s tests/translate/lang/test_common.py::test_numstart PASSED [ 34%] 239s tests/translate/lang/test_common.py::test_punctranslate PASSED [ 34%] 239s tests/translate/lang/test_common.py::test_length_difference PASSED [ 34%] 239s tests/translate/lang/test_common.py::test_alter_length PASSED [ 34%] 239s tests/translate/lang/test_data.py::test_normalise_code PASSED [ 34%] 239s tests/translate/lang/test_data.py::test_simplify_to_common PASSED [ 34%] 239s tests/translate/lang/test_data.py::test_is_rtl PASSED [ 34%] 239s tests/translate/lang/test_el.py::test_punctranslate PASSED [ 34%] 239s tests/translate/lang/test_el.py::test_sentences PASSED [ 34%] 239s tests/translate/lang/test_es.py::test_punctranslate PASSED [ 34%] 239s tests/translate/lang/test_es.py::test_sentences PASSED [ 34%] 239s tests/translate/lang/test_fa.py::test_punctranslate PASSED [ 34%] 239s tests/translate/lang/test_fa.py::test_sentences PASSED [ 34%] 239s tests/translate/lang/test_factory.py::test_getlanguage PASSED [ 34%] 239s tests/translate/lang/test_factory.py::test_get_all_languages PASSED [ 34%] 239s tests/translate/lang/test_fr.py::test_punctranslate PASSED [ 34%] 239s tests/translate/lang/test_fr.py::test_sentences PASSED [ 34%] 239s tests/translate/lang/test_hy.py::test_punctranslate PASSED [ 34%] 239s tests/translate/lang/test_hy.py::test_sentences PASSED [ 34%] 239s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_identify_lang PASSED [ 34%] 239s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_identify_store PASSED [ 34%] 239s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_bad_init_data PASSED [ 34%] 239s tests/translate/lang/test_ja.py::test_punctranslate PASSED [ 34%] 239s tests/translate/lang/test_ja.py::test_sentences PASSED [ 34%] 239s tests/translate/lang/test_km.py::test_punctranslate PASSED [ 35%] 239s tests/translate/lang/test_km.py::test_sentences PASSED [ 35%] 239s tests/translate/lang/test_ko.py::test_punctranslate PASSED [ 35%] 239s tests/translate/lang/test_ko.py::test_sentences PASSED [ 35%] 239s tests/translate/lang/test_ne.py::test_punctranslate PASSED [ 35%] 239s tests/translate/lang/test_ne.py::test_sentences PASSED [ 35%] 239s tests/translate/lang/test_nqo.py::test_punctranslate PASSED [ 35%] 239s tests/translate/lang/test_nqo.py::test_sentences PASSED [ 35%] 239s tests/translate/lang/test_or.py::test_punctranslate PASSED [ 35%] 239s tests/translate/lang/test_or.py::test_country_code PASSED [ 35%] 239s tests/translate/lang/test_or.py::test_sentences PASSED [ 35%] 239s tests/translate/lang/test_poedit.py::test_isocode PASSED [ 35%] 239s tests/translate/lang/test_ro.py::test_cedillas PASSED [ 35%] 239s tests/translate/lang/test_ro.py::test_niciun PASSED [ 35%] 239s tests/translate/lang/test_scn.py::test_italianisms PASSED [ 35%] 239s tests/translate/lang/test_scn.py::test_vocalism PASSED [ 35%] 239s tests/translate/lang/test_scn.py::test_suffixes PASSED [ 35%] 239s tests/translate/lang/test_team.py::test_simple PASSED [ 35%] 239s tests/translate/lang/test_th.py::test_punctranslate PASSED [ 35%] 239s tests/translate/lang/test_th.py::test_sentences PASSED [ 35%] 239s tests/translate/lang/test_tr.py::test_sentences PASSED [ 35%] 239s tests/translate/lang/test_uk.py::test_sentences PASSED [ 35%] 239s tests/translate/lang/test_vi.py::test_punctranslate PASSED [ 35%] 239s tests/translate/lang/test_vi.py::test_sentences PASSED [ 35%] 239s tests/translate/lang/test_zh.py::test_punctranslate PASSED [ 35%] 239s tests/translate/lang/test_zh.py::test_sentences PASSED [ 35%] 239s tests/translate/misc/test_deprecation.py::TestDeprecation::test_deprecated_decorator PASSED [ 35%] 239s tests/translate/misc/test_deprecation.py::TestDeprecation::test_no_deprecated_decorator PASSED [ 35%] 239s tests/translate/misc/test_dictutils.py::test_cidict_has_key PASSED [ 35%] 239s tests/translate/misc/test_dictutils.py::test_cidict_pop PASSED [ 35%] 239s tests/translate/misc/test_dictutils.py::test_cidict_getitem PASSED [ 35%] 239s tests/translate/misc/test_dictutils.py::test_cidict_setitem PASSED [ 35%] 239s tests/translate/misc/test_dictutils.py::test_cidict_delitem PASSED [ 35%] 239s tests/translate/misc/test_multistring.py::TestMultistring::test_constructor PASSED [ 35%] 239s tests/translate/misc/test_multistring.py::TestMultistring::test_constructor_validation PASSED [ 35%] 239s tests/translate/misc/test_multistring.py::TestMultistring::test_repr PASSED [ 35%] 239s tests/translate/misc/test_multistring.py::TestMultistring::test_replace PASSED [ 35%] 239s tests/translate/misc/test_multistring.py::TestMultistring::test_comparison PASSED [ 35%] 239s tests/translate/misc/test_multistring.py::TestMultistring::test_coercion PASSED [ 35%] 239s tests/translate/misc/test_multistring.py::TestMultistring::test_unicode_coercion PASSED [ 36%] 239s tests/translate/misc/test_multistring.py::TestMultistring::test_list_coercion PASSED [ 36%] 239s tests/translate/misc/test_multistring.py::TestMultistring::test_multistring_hash PASSED [ 36%] 239s tests/translate/misc/test_multistring.py::TestMultistring::test_bool PASSED [ 36%] 239s tests/translate/misc/test_optrecurse.py::TestRecursiveOptionParser::test_splitext PASSED [ 36%] 239s tests/translate/misc/test_optrecurse.py::TestRecursiveOptionParser::test_outputfile_receives_bytes PASSED [ 36%] 239s tests/translate/misc/test_progressbar.py::test_hashprogressbar PASSED [ 36%] 239s tests/translate/misc/test_quote.py::test_find_all PASSED [ 36%] 239s tests/translate/misc/test_quote.py::test_extract PASSED [ 36%] 239s tests/translate/misc/test_quote.py::test_extractwithoutquotes PASSED [ 36%] 240s tests/translate/misc/test_quote.py::test_extractwithoutquotes_passfunc PASSED [ 36%] 240s tests/translate/misc/test_quote.py::test_stripcomment PASSED [ 36%] 240s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode PASSED [ 36%] 240s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode_iso_8859_1 PASSED [ 36%] 240s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode_ascii PASSED [ 36%] 240s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode_unicode_range PASSED [ 36%] 240s tests/translate/misc/test_quote.py::TestEncoding::test_java_utf8_properties_encode PASSED [ 36%] 240s tests/translate/misc/test_quote.py::TestEncoding::test_escapespace PASSED [ 36%] 240s tests/translate/misc/test_quote.py::TestEncoding::test_mozillaescapemarginspaces PASSED [ 36%] 240s tests/translate/misc/test_quote.py::TestEncoding::test_mozilla_control_escapes PASSED [ 36%] 240s tests/translate/misc/test_quote.py::TestEncoding::test_propertiesdecode PASSED [ 36%] 240s tests/translate/misc/test_quote.py::TestEncoding::test_controlchars PASSED [ 36%] 240s tests/translate/misc/test_quote.py::TestEncoding::test_properties_decode_slashu PASSED [ 36%] 240s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding PASSED [ 36%] 240s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_existing_entities PASSED [ 36%] 240s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_passthrough PASSED [ 36%] 240s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_nonentities PASSED [ 36%] 240s tests/translate/misc/test_xml_helpers.py::TestReindent::test_indent_four_spaces PASSED [ 36%] 240s tests/translate/misc/test_xml_helpers.py::TestReindent::test_indent_tab PASSED [ 36%] 240s tests/translate/search/test_lshtein.py::TestLevenshtein::test_basic_distance PASSED [ 36%] 240s tests/translate/search/test_lshtein.py::TestLevenshtein::test_basic_similarity PASSED [ 36%] 240s tests/translate/search/test_lshtein.py::TestLevenshtein::test_long_similarity PASSED [ 36%] 240s tests/translate/search/test_match.py::TestMatch::test_matching PASSED [ 36%] 240s tests/translate/search/test_match.py::TestMatch::test_multiple_store PASSED [ 36%] 240s tests/translate/search/test_match.py::TestMatch::test_extendtm PASSED [ 36%] 240s tests/translate/search/test_match.py::TestMatch::test_terminology PASSED [ 36%] 240s tests/translate/search/test_match.py::TestMatch::test_brackets PASSED [ 36%] 240s tests/translate/search/test_match.py::TestMatch::test_past_tences PASSED [ 36%] 240s tests/translate/search/test_match.py::TestMatch::test_space_mismatch PASSED [ 36%] 240s tests/translate/search/test_match.py::TestMatch::test_hyphen_mismatch PASSED [ 37%] 240s tests/translate/search/test_terminology.py::TestTerminology::test_basic PASSED [ 37%] 240s tests/translate/services/test_tmserver.py::TestTMServer::test_import PASSED [ 37%] 240s tests/translate/services/test_tmserver.py::TestTMServer::test_server PASSED [ 37%] 240s tests/translate/storage/placeables/test_base.py::TestStringElem::test_parse PASSED [ 37%] 240s tests/translate/storage/placeables/test_base.py::TestStringElem::test_tree PASSED [ 37%] 240s tests/translate/storage/placeables/test_base.py::TestStringElem::test_add PASSED [ 37%] 240s tests/translate/storage/placeables/test_base.py::TestStringElem::test_contains PASSED [ 37%] 240s tests/translate/storage/placeables/test_base.py::TestStringElem::test_getitem PASSED [ 37%] 240s tests/translate/storage/placeables/test_base.py::TestStringElem::test_getslice PASSED [ 37%] 240s tests/translate/storage/placeables/test_base.py::TestStringElem::test_iter PASSED [ 37%] 240s tests/translate/storage/placeables/test_base.py::TestStringElem::test_len PASSED [ 37%] 240s tests/translate/storage/placeables/test_base.py::TestStringElem::test_mul PASSED [ 37%] 240s tests/translate/storage/placeables/test_base.py::TestStringElem::test_elem_offset PASSED [ 37%] 240s tests/translate/storage/placeables/test_base.py::TestStringElem::test_elem_at_offset PASSED [ 37%] 240s tests/translate/storage/placeables/test_base.py::TestStringElem::test_find PASSED [ 37%] 240s tests/translate/storage/placeables/test_base.py::TestStringElem::test_find_elems_with PASSED [ 37%] 240s tests/translate/storage/placeables/test_base.py::TestStringElem::test_flatten PASSED [ 37%] 240s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case1 PASSED [ 37%] 240s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case2 PASSED [ 37%] 240s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case3 PASSED [ 37%] 240s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case4 PASSED [ 37%] 240s tests/translate/storage/placeables/test_base.py::TestStringElem::test_insert PASSED [ 37%] 240s tests/translate/storage/placeables/test_base.py::TestStringElem::test_isleaf PASSED [ 37%] 240s tests/translate/storage/placeables/test_base.py::TestStringElem::test_prune PASSED [ 37%] 240s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_base_placeables PASSED [ 37%] 240s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_general_placeables XFAIL [ 37%] 240s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_xliff_placeables XFAIL [ 37%] 240s tests/translate/storage/placeables/test_general.py::test_placeable_numbers PASSED [ 37%] 240s tests/translate/storage/placeables/test_general.py::test_placeable_newline PASSED [ 37%] 240s tests/translate/storage/placeables/test_general.py::test_placeable_alt_attr PASSED [ 37%] 240s tests/translate/storage/placeables/test_general.py::test_placeable_qt_formatting PASSED [ 37%] 240s tests/translate/storage/placeables/test_general.py::test_placeable_camelcase PASSED [ 37%] 240s tests/translate/storage/placeables/test_general.py::test_placeable_space PASSED [ 37%] 240s tests/translate/storage/placeables/test_general.py::test_placeable_punctuation PASSED [ 37%] 240s tests/translate/storage/placeables/test_general.py::test_placeable_xml_entity PASSED [ 37%] 240s tests/translate/storage/placeables/test_general.py::test_placeable_xml_tag PASSED [ 37%] 240s tests/translate/storage/placeables/test_general.py::test_placeable_option PASSED [ 37%] 240s tests/translate/storage/placeables/test_general.py::test_placeable_file PASSED [ 37%] 240s tests/translate/storage/placeables/test_general.py::test_placeable_email PASSED [ 38%] 240s tests/translate/storage/placeables/test_general.py::test_placeable_caps PASSED [ 38%] 240s tests/translate/storage/placeables/test_general.py::test_placeable_formatting PASSED [ 38%] 240s tests/translate/storage/placeables/test_general.py::test_placeable_doubleat PASSED [ 38%] 240s tests/translate/storage/placeables/test_general.py::test_placeable_brace PASSED [ 38%] 240s tests/translate/storage/placeables/test_general.py::test_python_placeable PASSED [ 38%] 240s tests/translate/storage/placeables/test_lisa.py::test_xml_to_strelem PASSED [ 38%] 240s tests/translate/storage/placeables/test_lisa.py::test_xml_space PASSED [ 38%] 240s tests/translate/storage/placeables/test_lisa.py::test_chunk_list PASSED [ 38%] 240s tests/translate/storage/placeables/test_lisa.py::test_set_strelem_to_xml PASSED [ 38%] 240s tests/translate/storage/placeables/test_lisa.py::test_unknown_xml_placeable PASSED [ 38%] 240s tests/translate/storage/placeables/test_terminology.py::TestTerminologyPlaceable::test_simple_terminology PASSED [ 38%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_isfuzzy PASSED [ 38%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_create PASSED [ 38%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_eq PASSED [ 38%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escapes PASSED [ 38%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_difficult_escapes PASSED [ 38%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_note_sanity PASSED [ 38%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_line_number_default PASSED [ 38%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_target PASSED [ 38%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_rich_get PASSED [ 38%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_rich_set PASSED [ 38%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_message_with_newline PASSED [ 38%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quotes_with_newline PASSED [ 38%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_message_with_newline_in_xml PASSED [ 38%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_twitter PASSED [ 38%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quote PASSED [ 38%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_question PASSED [ 38%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_double_space PASSED [ 38%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_leading_space PASSED [ 38%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_tailing_space PASSED [ 38%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_xml_entities PASSED [ 38%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code PASSED [ 38%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code_quote PASSED [ 38%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code_quote_newline PASSED [ 38%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_arrows PASSED [ 38%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_link PASSED [ 38%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_link_and_text PASSED [ 38%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_blank_string PASSED [ 38%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_escape_message_with_newline PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_invalid_lang PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_quote PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_leading_space PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_trailing_space PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_with_ampersand PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_double_space PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_deep_double_space PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_complex_xml PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quoted_newlines PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_message_with_newline PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_message_with_newline_in_xml PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_twitter PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_question PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quote PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_double_space PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_space PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_newlines PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_xml_entities PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_code PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_arrows PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_link PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_link_and_text PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_blank_string PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_space PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_spaces PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_escaped_newline PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_escaped_newline PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_spaces PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_newline PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_many_quotes PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_blank_string_again PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_double_quotes_string PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_newline_in_string PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_not_translatable_string PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_parse_message_with_newline PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_parse_message_with_comments PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_quote PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_leading_space PASSED [ 39%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_leading_space_quoted PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_trailing_space PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_trailing_space_quoted PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_with_ampersand PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_double_space_quoted PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_deep_double_space_quoted PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_complex_xml PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_unicode PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_unescaped PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_escaped_alone PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_escaped_full PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_escaped_percent PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_percent PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_quote PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_unparied_quote PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escape_slash PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escape_ignored PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escaped_quote_end PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_xml PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_create_blank PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_add PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_remove PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_find PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_parse PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_files PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_save PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_extensions PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_mimetypes PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_translate PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_nonascii PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_default_handlings PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_filename PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_filename_default_language PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_invalid_filename PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_namespaces PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_serialize PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_add_formatting PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity PASSED [ 40%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_invalid_entity PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_indent PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_markup PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_parse_decimal_plurals PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_to_plurals PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity_add_edit PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity_add_noedit PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_remove PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_set PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_others PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_quotes_set PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_xliff_g PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_xliff_namespace PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_zh_hk PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_b_zh_hk PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_missing_plural PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_empty_missing_plural_tag PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_removeunit PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_cdata PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_cdata_text PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_prefix PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_rtl PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_tail PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_translatable_marking PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_escaping PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_isfuzzy PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_create PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_eq PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_escapes PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_difficult_escapes PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_note_sanity PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_line_number_default PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_target PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_rich_get PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_rich_set PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_escape_quote PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_create_blank PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_add PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_remove PASSED [ 41%] 240s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_find PASSED [ 42%] 240s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_parse PASSED [ 42%] 240s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_files PASSED [ 42%] 240s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_save PASSED [ 42%] 240s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_extensions PASSED [ 42%] 240s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_mimetypes PASSED [ 42%] 240s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_translate PASSED [ 42%] 240s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_markup PASSED [ 42%] 240s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_nonascii PASSED [ 42%] 240s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_plural PASSED [ 42%] 240s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_isfuzzy PASSED [ 42%] 240s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_create PASSED [ 42%] 240s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_eq PASSED [ 42%] 240s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_escapes PASSED [ 42%] 240s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_difficult_escapes PASSED [ 42%] 240s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_note_sanity PASSED [ 42%] 240s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_line_number_default PASSED [ 42%] 240s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_target PASSED [ 42%] 240s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_rich_get PASSED [ 42%] 240s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_rich_set PASSED [ 42%] 240s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_escape_quote PASSED [ 42%] 241s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_create_blank PASSED [ 42%] 241s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_add PASSED [ 42%] 241s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_remove PASSED [ 42%] 241s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_find PASSED [ 42%] 241s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_parse PASSED [ 42%] 241s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_files PASSED [ 42%] 241s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_save PASSED [ 42%] 241s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_extensions PASSED [ 42%] 241s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_mimetypes PASSED [ 42%] 241s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_translate PASSED [ 42%] 241s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_markup PASSED [ 42%] 241s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_nonascii PASSED [ 42%] 241s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_quote_escape PASSED [ 42%] 241s tests/translate/storage/test_base.py::TestTranslationUnit::test_isfuzzy PASSED [ 42%] 241s tests/translate/storage/test_base.py::TestTranslationUnit::test_create PASSED [ 42%] 241s tests/translate/storage/test_base.py::TestTranslationUnit::test_eq PASSED [ 42%] 241s tests/translate/storage/test_base.py::TestTranslationUnit::test_target PASSED [ 42%] 241s tests/translate/storage/test_base.py::TestTranslationUnit::test_escapes PASSED [ 42%] 241s tests/translate/storage/test_base.py::TestTranslationUnit::test_difficult_escapes PASSED [ 43%] 241s tests/translate/storage/test_base.py::TestTranslationUnit::test_note_sanity PASSED [ 43%] 241s tests/translate/storage/test_base.py::TestTranslationUnit::test_line_number_default PASSED [ 43%] 241s tests/translate/storage/test_base.py::TestTranslationUnit::test_rich_get PASSED [ 43%] 241s tests/translate/storage/test_base.py::TestTranslationUnit::test_rich_set PASSED [ 43%] 241s tests/translate/storage/test_base.py::TestTranslationStore::test_create_blank PASSED [ 43%] 241s tests/translate/storage/test_base.py::TestTranslationStore::test_add PASSED [ 43%] 241s tests/translate/storage/test_base.py::TestTranslationStore::test_remove PASSED [ 43%] 241s tests/translate/storage/test_base.py::TestTranslationStore::test_find PASSED [ 43%] 241s tests/translate/storage/test_base.py::TestTranslationStore::test_translate PASSED [ 43%] 241s tests/translate/storage/test_base.py::TestTranslationStore::test_parse PASSED [ 43%] 241s tests/translate/storage/test_base.py::TestTranslationStore::test_files PASSED [ 43%] 241s tests/translate/storage/test_base.py::TestTranslationStore::test_save PASSED [ 43%] 241s tests/translate/storage/test_base.py::TestTranslationStore::test_markup PASSED [ 43%] 241s tests/translate/storage/test_base.py::TestTranslationStore::test_nonascii PASSED [ 43%] 241s tests/translate/storage/test_base.py::TestTranslationStore::test_extensions PASSED [ 43%] 241s tests/translate/storage/test_base.py::TestTranslationStore::test_mimetypes PASSED [ 43%] 241s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_create_empty_bundle PASSED [ 43%] 241s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_create_bundle_from_nonexistent_file PASSED [ 43%] 241s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_save_bundle PASSED [ 43%] 241s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_cross_device_save PASSED [ 43%] 241s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_replace_project_zip PASSED [ 43%] 241s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle PASSED [ 43%] 241s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_update_file_in_bundle PASSED [ 43%] 241s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle PASSED [ 43%] 241s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_invalid_bundle_error PASSED [ 43%] 241s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_isfuzzy PASSED [ 43%] 241s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_create PASSED [ 43%] 241s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_eq PASSED [ 43%] 241s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_target PASSED [ 43%] 241s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_escapes PASSED [ 43%] 241s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_line_number_default PASSED [ 43%] 241s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_rich_get PASSED [ 43%] 241s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_rich_set PASSED [ 43%] 241s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_difficult_escapes PASSED [ 43%] 241s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_newlines PASSED [ 43%] 241s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_istranslated PASSED [ 43%] 241s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_note_sanity PASSED [ 43%] 241s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_create_blank PASSED [ 43%] 241s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_add PASSED [ 44%] 241s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_remove PASSED [ 44%] 241s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_find PASSED [ 44%] 241s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_translate PASSED [ 44%] 241s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_parse PASSED [ 44%] 241s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_files PASSED [ 44%] 241s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_save PASSED [ 44%] 241s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_markup PASSED [ 44%] 241s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_nonascii PASSED [ 44%] 241s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_extensions PASSED [ 44%] 241s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_mimetypes PASSED [ 44%] 241s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_checksum PASSED [ 44%] 241s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_isfuzzy PASSED [ 44%] 241s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_create PASSED [ 44%] 241s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_eq PASSED [ 44%] 241s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_target PASSED [ 44%] 241s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_escapes PASSED [ 44%] 241s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_difficult_escapes PASSED [ 44%] 241s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_note_sanity PASSED [ 44%] 241s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_line_number_default PASSED [ 44%] 241s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_rich_get PASSED [ 44%] 241s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_rich_set PASSED [ 44%] 241s tests/translate/storage/test_csvl10n.py::TestCSV::test_create_blank PASSED [ 44%] 241s tests/translate/storage/test_csvl10n.py::TestCSV::test_add PASSED [ 44%] 241s tests/translate/storage/test_csvl10n.py::TestCSV::test_remove PASSED [ 44%] 241s tests/translate/storage/test_csvl10n.py::TestCSV::test_find PASSED [ 44%] 241s tests/translate/storage/test_csvl10n.py::TestCSV::test_translate PASSED [ 44%] 241s tests/translate/storage/test_csvl10n.py::TestCSV::test_parse PASSED [ 44%] 241s tests/translate/storage/test_csvl10n.py::TestCSV::test_files PASSED [ 44%] 241s tests/translate/storage/test_csvl10n.py::TestCSV::test_save PASSED [ 44%] 241s tests/translate/storage/test_csvl10n.py::TestCSV::test_markup PASSED [ 44%] 241s tests/translate/storage/test_csvl10n.py::TestCSV::test_nonascii PASSED [ 44%] 241s tests/translate/storage/test_csvl10n.py::TestCSV::test_extensions PASSED [ 44%] 241s tests/translate/storage/test_csvl10n.py::TestCSV::test_mimetypes PASSED [ 44%] 241s tests/translate/storage/test_csvl10n.py::TestCSV::test_singlequoting PASSED [ 44%] 241s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8 PASSED [ 44%] 241s tests/translate/storage/test_csvl10n.py::TestCSV::test_dialect PASSED [ 44%] 241s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8_sig PASSED [ 44%] 241s tests/translate/storage/test_csvl10n.py::TestCSV::test_default PASSED [ 44%] 241s tests/translate/storage/test_csvl10n.py::TestCSV::test_location_is_parsed PASSED [ 45%] 241s tests/translate/storage/test_csvl10n.py::TestCSV::test_context_is_parsed PASSED [ 45%] 241s tests/translate/storage/test_csvl10n.py::TestCSV::test_newline PASSED [ 45%] 241s tests/translate/storage/test_csvl10n.py::TestCSV::test_parse_sample PASSED [ 45%] 241s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8_detection PASSED [ 45%] 241s tests/translate/storage/test_csvl10n.py::TestCSV::test_encoding PASSED [ 45%] 241s tests/translate/storage/test_csvl10n.py::TestCSV::test_corrupt PASSED [ 45%] 241s tests/translate/storage/test_csvl10n.py::TestCSV::test_encoding_save PASSED [ 45%] 241s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_id_target PASSED [ 45%] 241s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_context_target PASSED [ 45%] 241s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_key_translation PASSED [ 45%] 241s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_roundtrip PASSED [ 45%] 241s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_context_roundtrip PASSED [ 45%] 241s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_id_context_roundtrip PASSED [ 45%] 241s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_target_only_roundtrip PASSED [ 45%] 241s tests/translate/storage/test_csvl10n.py::TestCSV::test_quote_nonnumeric_handling PASSED [ 45%] 241s tests/translate/storage/test_csvl10n.py::TestCSV::test_quote_nonnumeric_with_single_quotes PASSED [ 45%] 241s tests/translate/storage/test_csvl10n.py::TestCSV::test_line_number PASSED [ 45%] 241s tests/translate/storage/test_dtd.py::test_roundtrip_quoting PASSED [ 45%] 241s tests/translate/storage/test_dtd.py::test_quotefordtd_unimplemented_cases XFAIL [ 45%] 241s tests/translate/storage/test_dtd.py::test_quotefordtd PASSED [ 45%] 241s tests/translate/storage/test_dtd.py::test_unquotefromdtd_unimplemented_cases XFAIL [ 45%] 241s tests/translate/storage/test_dtd.py::test_unquotefromdtd PASSED [ 45%] 241s tests/translate/storage/test_dtd.py::test_android_roundtrip_quoting PASSED [ 45%] 241s tests/translate/storage/test_dtd.py::test_quoteforandroid PASSED [ 45%] 241s tests/translate/storage/test_dtd.py::test_unquotefromandroid PASSED [ 45%] 241s tests/translate/storage/test_dtd.py::test_removeinvalidamp PASSED [ 45%] 241s tests/translate/storage/test_dtd.py::TestDTDUnit::test_isfuzzy PASSED [ 45%] 241s tests/translate/storage/test_dtd.py::TestDTDUnit::test_create PASSED [ 45%] 241s tests/translate/storage/test_dtd.py::TestDTDUnit::test_eq PASSED [ 45%] 241s tests/translate/storage/test_dtd.py::TestDTDUnit::test_escapes PASSED [ 45%] 241s tests/translate/storage/test_dtd.py::TestDTDUnit::test_difficult_escapes PASSED [ 45%] 241s tests/translate/storage/test_dtd.py::TestDTDUnit::test_note_sanity PASSED [ 45%] 241s tests/translate/storage/test_dtd.py::TestDTDUnit::test_line_number_default PASSED [ 45%] 241s tests/translate/storage/test_dtd.py::TestDTDUnit::test_target PASSED [ 45%] 241s tests/translate/storage/test_dtd.py::TestDTDUnit::test_rich_get PASSED [ 45%] 241s tests/translate/storage/test_dtd.py::TestDTDUnit::test_rich_set PASSED [ 45%] 241s tests/translate/storage/test_dtd.py::TestDTD::test_create_blank PASSED [ 45%] 241s tests/translate/storage/test_dtd.py::TestDTD::test_add PASSED [ 45%] 241s tests/translate/storage/test_dtd.py::TestDTD::test_remove PASSED [ 46%] 241s tests/translate/storage/test_dtd.py::TestDTD::test_find PASSED [ 46%] 241s tests/translate/storage/test_dtd.py::TestDTD::test_parse PASSED [ 46%] 241s tests/translate/storage/test_dtd.py::TestDTD::test_files PASSED [ 46%] 241s tests/translate/storage/test_dtd.py::TestDTD::test_save PASSED [ 46%] 241s tests/translate/storage/test_dtd.py::TestDTD::test_extensions PASSED [ 46%] 241s tests/translate/storage/test_dtd.py::TestDTD::test_mimetypes PASSED [ 46%] 241s tests/translate/storage/test_dtd.py::TestDTD::test_translate PASSED [ 46%] 241s tests/translate/storage/test_dtd.py::TestDTD::test_markup PASSED [ 46%] 241s tests/translate/storage/test_dtd.py::TestDTD::test_nonascii PASSED [ 46%] 241s tests/translate/storage/test_dtd.py::TestDTD::test_simpleentity PASSED [ 46%] 241s tests/translate/storage/test_dtd.py::TestDTD::test_blanklines PASSED [ 46%] 241s tests/translate/storage/test_dtd.py::TestDTD::test_simpleentity_source PASSED [ 46%] 241s tests/translate/storage/test_dtd.py::TestDTD::test_hashcomment_source PASSED [ 46%] 241s tests/translate/storage/test_dtd.py::TestDTD::test_commentclosing PASSED [ 46%] 241s tests/translate/storage/test_dtd.py::TestDTD::test_commententity PASSED [ 46%] 241s tests/translate/storage/test_dtd.py::TestDTD::test_newlines_in_entity PASSED [ 46%] 241s tests/translate/storage/test_dtd.py::TestDTD::test_conflate_comments PASSED [ 46%] 241s tests/translate/storage/test_dtd.py::TestDTD::test_localisation_notes PASSED [ 46%] 241s tests/translate/storage/test_dtd.py::TestDTD::test_entitityreference_in_source PASSED [ 46%] 241s tests/translate/storage/test_dtd.py::TestDTD::test_entitityreference_order_in_source PASSED [ 46%] 241s tests/translate/storage/test_dtd.py::TestDTD::test_comment_following XFAIL [ 46%] 241s tests/translate/storage/test_dtd.py::TestDTD::test_comment_newline_space_closing PASSED [ 46%] 241s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting XFAIL [ 46%] 241s tests/translate/storage/test_dtd.py::TestDTD::test_missing_quotes PASSED [ 46%] 241s tests/translate/storage/test_dtd.py::TestDTD::test_entity_escaping PASSED [ 46%] 241s tests/translate/storage/test_dtd.py::TestDTD::test_entity_escaping_roundtrip PASSED [ 46%] 241s tests/translate/storage/test_dtd.py::TestDTD::test_multiple_blank_lines PASSED [ 46%] 241s tests/translate/storage/test_dtd.py::TestDTD::test_entity_with_extra_spaces PASSED [ 46%] 241s tests/translate/storage/test_dtd.py::TestDTD::test_mixed_content_preservation PASSED [ 46%] 241s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_create_blank PASSED [ 46%] 241s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_add PASSED [ 46%] 241s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_remove PASSED [ 46%] 241s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_find PASSED [ 46%] 241s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_parse PASSED [ 46%] 241s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_files PASSED [ 46%] 241s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_save PASSED [ 46%] 241s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_extensions PASSED [ 46%] 241s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_mimetypes PASSED [ 46%] 241s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_translate PASSED [ 47%] 241s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_markup PASSED [ 47%] 241s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_nonascii PASSED [ 47%] 241s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_single_quote_escape PASSED [ 47%] 241s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_single_quote_escape_parse_and_convert_back PASSED [ 47%] 241s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_double_quote_escape PASSED [ 47%] 241s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_double_quote_escape_parse_and_convert_back PASSED [ 47%] 241s tests/translate/storage/test_factory.py::TestPOFactory::test_getclass PASSED [ 47%] 241s tests/translate/storage/test_factory.py::TestPOFactory::test_getobject_store PASSED [ 47%] 241s tests/translate/storage/test_factory.py::TestPOFactory::test_getobject PASSED [ 47%] 241s tests/translate/storage/test_factory.py::TestPOFactory::test_get_noname_object PASSED [ 47%] 241s tests/translate/storage/test_factory.py::TestPOFactory::test_gzfile PASSED [ 47%] 241s tests/translate/storage/test_factory.py::TestPOFactory::test_bz2file PASSED [ 47%] 241s tests/translate/storage/test_factory.py::TestPOFactory::test_directory PASSED [ 47%] 241s tests/translate/storage/test_factory.py::TestXliffFactory::test_getclass PASSED [ 47%] 241s tests/translate/storage/test_factory.py::TestXliffFactory::test_getobject_store PASSED [ 47%] 241s tests/translate/storage/test_factory.py::TestXliffFactory::test_getobject PASSED [ 47%] 241s tests/translate/storage/test_factory.py::TestXliffFactory::test_get_noname_object PASSED [ 47%] 241s tests/translate/storage/test_factory.py::TestXliffFactory::test_gzfile PASSED [ 47%] 241s tests/translate/storage/test_factory.py::TestXliffFactory::test_bz2file PASSED [ 47%] 241s tests/translate/storage/test_factory.py::TestXliffFactory::test_directory PASSED [ 47%] 241s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getclass PASSED [ 47%] 241s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getobject_store PASSED [ 47%] 241s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getobject PASSED [ 47%] 241s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_get_noname_object PASSED [ 47%] 241s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_gzfile PASSED [ 47%] 241s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_bz2file PASSED [ 47%] 241s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_directory PASSED [ 47%] 241s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getclass PASSED [ 47%] 241s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getobject_store PASSED [ 47%] 241s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getobject PASSED [ 47%] 241s tests/translate/storage/test_factory.py::TestWordfastFactory::test_get_noname_object PASSED [ 47%] 241s tests/translate/storage/test_factory.py::TestWordfastFactory::test_gzfile PASSED [ 47%] 241s tests/translate/storage/test_factory.py::TestWordfastFactory::test_bz2file PASSED [ 47%] 241s tests/translate/storage/test_factory.py::TestWordfastFactory::test_directory PASSED [ 47%] 241s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_isfuzzy PASSED [ 47%] 241s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_create PASSED [ 47%] 241s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_eq PASSED [ 47%] 241s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_escapes PASSED [ 47%] 241s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_difficult_escapes PASSED [ 48%] 241s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_note_sanity PASSED [ 48%] 241s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_line_number_default PASSED [ 48%] 241s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_target PASSED [ 48%] 241s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_rich_get PASSED [ 48%] 241s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_rich_set PASSED [ 48%] 241s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_create_blank PASSED [ 48%] 241s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_add PASSED [ 48%] 241s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_remove PASSED [ 48%] 241s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_find PASSED [ 48%] 241s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_parse PASSED [ 48%] 241s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_files PASSED [ 48%] 241s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_save PASSED [ 48%] 241s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_extensions PASSED [ 48%] 241s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_mimetypes PASSED [ 48%] 241s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_translate PASSED [ 48%] 241s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_markup PASSED [ 48%] 241s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_nonascii PASSED [ 48%] 241s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_root_config_detect PASSED [ 48%] 241s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_value_config_detect PASSED [ 48%] 241s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_key_config_detect PASSED [ 48%] 241s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_value_config_mixed_ok PASSED [ 48%] 241s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_namespace_config_detect PASSED [ 48%] 241s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_four_spaces PASSED [ 48%] 241s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_tab PASSED [ 48%] 241s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_none_linearizes PASSED [ 48%] 241s tests/translate/storage/test_html.py::test_guess_encoding PASSED [ 48%] 241s tests/translate/storage/test_html.py::TestHTMLParsing::test_mismatched_tags PASSED [ 48%] 241s tests/translate/storage/test_html.py::TestHTMLParsing::test_self_closing_tags PASSED [ 48%] 241s tests/translate/storage/test_html.py::TestHTMLParsing::test_escaping_script_and_pre PASSED [ 48%] 241s tests/translate/storage/test_html.py::TestHTMLExtraction::test_strip_html PASSED [ 48%] 241s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_tag_figcaption PASSED [ 48%] 241s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_tag_caption_td_th PASSED [ 48%] 241s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_attr_alt PASSED [ 48%] 241s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_attr_title PASSED [ 48%] 241s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_pre PASSED [ 48%] 241s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_pre_code PASSED [ 48%] 241s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_button PASSED [ 48%] 241s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_lang_attribute PASSED [ 48%] 241s tests/translate/storage/test_html.py::TestHTMLExtraction::test_dir_attribute_not_extracted PASSED [ 49%] 241s tests/translate/storage/test_html.py::TestHTMLExtraction::test_data_translate_ignore_attribute PASSED [ 49%] 241s tests/translate/storage/test_html.py::TestHTMLExtraction::test_translate_comment_directives PASSED [ 49%] 241s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_meta_social_media_tags PASSED [ 49%] 241s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_meta_non_translatable_tags PASSED [ 49%] 241s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_meta_mixed_translatable_and_non_translatable PASSED [ 49%] 241s tests/translate/storage/test_html.py::TestHTMLExtraction::test_data_translate_comment_attribute PASSED [ 49%] 241s tests/translate/storage/test_html_context.py::test_html_context_basic PASSED [ 49%] 241s tests/translate/storage/test_html_context.py::test_html_context_attribute PASSED [ 49%] 241s tests/translate/storage/test_html_context.py::test_html_context_attribute_with_id PASSED [ 49%] 241s tests/translate/storage/test_html_context.py::test_html_context_same_source_different_contexts PASSED [ 49%] 241s tests/translate/storage/test_html_context.py::test_html_context_nested_outer_wins PASSED [ 49%] 241s tests/translate/storage/test_html_context.py::test_html_context_absent PASSED [ 49%] 241s tests/translate/storage/test_html_context.py::test_html_context_id_overridden_by_explicit PASSED [ 49%] 241s tests/translate/storage/test_html_context.py::test_html_context_id_not_used_when_no_duplicates PASSED [ 49%] 241s tests/translate/storage/test_html_context.py::test_html_context_id_not_used_when_data_translate_context_identical PASSED [ 49%] 241s tests/translate/storage/test_html_context.py::test_html_context_disambiguates_duplicates_with_id PASSED [ 49%] 241s tests/translate/storage/test_html_context.py::test_html_context_disambiguates_duplicates_with_ancestor_id PASSED [ 49%] 241s tests/translate/storage/test_ini.py::TestINIUnit::test_isfuzzy PASSED [ 49%] 241s tests/translate/storage/test_ini.py::TestINIUnit::test_create PASSED [ 49%] 241s tests/translate/storage/test_ini.py::TestINIUnit::test_eq PASSED [ 49%] 241s tests/translate/storage/test_ini.py::TestINIUnit::test_escapes PASSED [ 49%] 241s tests/translate/storage/test_ini.py::TestINIUnit::test_difficult_escapes PASSED [ 49%] 241s tests/translate/storage/test_ini.py::TestINIUnit::test_note_sanity PASSED [ 49%] 241s tests/translate/storage/test_ini.py::TestINIUnit::test_line_number_default PASSED [ 49%] 241s tests/translate/storage/test_ini.py::TestINIUnit::test_target PASSED [ 49%] 241s tests/translate/storage/test_ini.py::TestINIUnit::test_rich_get PASSED [ 49%] 241s tests/translate/storage/test_ini.py::TestINIUnit::test_rich_set PASSED [ 49%] 241s tests/translate/storage/test_ini.py::TestINIStore::test_create_blank PASSED [ 49%] 241s tests/translate/storage/test_ini.py::TestINIStore::test_add PASSED [ 49%] 241s tests/translate/storage/test_ini.py::TestINIStore::test_remove PASSED [ 49%] 241s tests/translate/storage/test_ini.py::TestINIStore::test_find PASSED [ 49%] 241s tests/translate/storage/test_ini.py::TestINIStore::test_parse PASSED [ 49%] 241s tests/translate/storage/test_ini.py::TestINIStore::test_files PASSED [ 49%] 241s tests/translate/storage/test_ini.py::TestINIStore::test_save PASSED [ 49%] 241s tests/translate/storage/test_ini.py::TestINIStore::test_extensions PASSED [ 49%] 241s tests/translate/storage/test_ini.py::TestINIStore::test_mimetypes PASSED [ 49%] 241s tests/translate/storage/test_ini.py::TestINIStore::test_translate PASSED [ 49%] 241s tests/translate/storage/test_ini.py::TestINIStore::test_markup PASSED [ 49%] 241s tests/translate/storage/test_ini.py::TestINIStore::test_nonascii PASSED [ 50%] 241s tests/translate/storage/test_ini.py::TestINIStore::test_serialize PASSED [ 50%] 241s tests/translate/storage/test_ini.py::TestINIStore::test_rem PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_isfuzzy PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_create PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_eq PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_escapes PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_difficult_escapes PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_note_sanity PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_line_number_default PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_target PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_rich_get PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_rich_set PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_create_blank PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_remove PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_find PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_parse PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_files PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_save PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_extensions PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_mimetypes PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_translate PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_markup PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_nonascii PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_serialize PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_can_not_detect PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_error PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_filter PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_ordering PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_args PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_bom PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_complex PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_complex_array PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add_list_like PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add_blank PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_types PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_null PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_isfuzzy PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_create PASSED [ 50%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_eq PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_escapes PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_difficult_escapes PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_note_sanity PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_line_number_default PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_target PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_rich_get PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_rich_set PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_serialize PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_ordering PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_array PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_index PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_index_nested PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_nested_list_mixed PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_list_to_dict PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_complex_keys PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_other PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[0]-expected0] PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[test[0]-expected1] PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[test[0][1][2][3]-expected2] PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[test]selection-expected3] PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[test][0]selection-expected4] PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[0][test]selection-expected5] PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[-expected6] PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_dot_keys PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_isfuzzy PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_create PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_eq PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_escapes PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_difficult_escapes PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_note_sanity PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_line_number_default PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_target PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_rich_get PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_rich_set PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_create_blank PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_add PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_remove PASSED [ 51%] 241s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_find PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_parse PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_files PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_save PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_extensions PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_mimetypes PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_translate PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_markup PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_nonascii PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_serialize PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_dot_keys PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_leading_dot_keys PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_serialize_no_description PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_set_target PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_placeholders PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_comments PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_create_blank PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_add PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_remove PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_find PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_parse PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_files PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_save PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_extensions PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_mimetypes PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_translate PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_markup PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_nonascii PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_serialize PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_units PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_plurals PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_nested_array PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_new_plural PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_new_plural_id PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_create_blank PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_add PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_remove PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_find PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_parse PASSED [ 52%] 241s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_files PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_save PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_extensions PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_mimetypes PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_translate PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_markup PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_nonascii PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_plurals PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_plurals_missing PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_case_no_msg PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_complex_id PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_create_blank PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_add PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_remove PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_find PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_parse PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_files PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_save PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_extensions PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_mimetypes PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_translate PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_markup PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_nonascii PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_serialize PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_units PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_plurals PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_nested_array PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_new_plural PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_ru PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_create_blank PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_add PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_remove PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_find PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_parse PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_files PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_save PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_extensions PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_mimetypes PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_translate PASSED [ 53%] 241s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_markup PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_nonascii PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_serialize PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_units PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_plurals PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_nested_array PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_new_plural PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_ru PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_create_blank PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_add PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_remove PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_find PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_parse PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_files PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_save PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_extensions PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_mimetypes PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_translate PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_markup PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_nonascii PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_plurals PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_plurals_missing PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_invalid PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_dot_keys PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_create_blank PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_add PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_remove PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_find PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_parse PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_files PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_save PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_extensions PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_mimetypes PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_translate PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_markup PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_nonascii PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_1 PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_2 PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_blank PASSED [ 54%] 241s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_missing PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_simplification PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_invalid PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_dot_keys PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_create_blank PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_add PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_remove PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_find PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_parse PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_files PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_save PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_extensions PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_mimetypes PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_translate PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_markup PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_nonascii PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_roundtrip PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_leading_dot_keys PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_invalid_nesting PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_empty_metadata_not_stored PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_create_blank PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_add PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_remove PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_find PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_parse PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_files PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_save PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_extensions PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_mimetypes PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_translate PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_markup PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_nonascii PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_roundtrip PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_leading_dot_keys PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_invalid PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_isfuzzy PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_create PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_eq PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_escapes PASSED [ 55%] 241s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_difficult_escapes PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_note_sanity PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_line_number_default PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_target PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_rich_get PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_rich_set PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_source_property_maps_to_id PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_source_roundtrip PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_create_blank PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_add PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_remove PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_find PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_parse PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_files PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_save PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_extensions PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_mimetypes PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_translate PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_markup PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_nonascii PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_parse_simple PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_serialize_simple PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_parse_with_plurals PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_preserve_plural_form PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_roundtrip_with_plurals PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_ignore_non_translations_keys PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_preserve_other_metadata PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_add_unit PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_add_plural_unit PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_empty_translations PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_create_blank PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_add PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_remove PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_find PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_parse PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_files PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_save PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_extensions PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_mimetypes PASSED [ 56%] 241s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_translate PASSED [ 57%] 241s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_markup PASSED [ 57%] 241s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_nonascii PASSED [ 57%] 241s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_roundtrip PASSED [ 57%] 241s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_basic_parsing PASSED [ 57%] 241s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_multiple_metadata PASSED [ 57%] 241s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_no_metadata PASSED [ 57%] 241s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_edit_target PASSED [ 57%] 241s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_edit_notes PASSED [ 57%] 241s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_keys_with_dots PASSED [ 57%] 241s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_leading_dot_keys PASSED [ 57%] 241s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_invalid_nesting PASSED [ 57%] 241s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_source_property_get_set PASSED [ 57%] 241s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_source_property_persists PASSED [ 57%] 241s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_getcontext_returns_id PASSED [ 57%] 241s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_parsing_preserves_order PASSED [ 57%] 241s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_metadata_without_translation PASSED [ 57%] 241s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_complex_keys_with_multiple_dots PASSED [ 57%] 241s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_source_empty_string PASSED [ 57%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_atx_heading PASSED [ 57%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_autolink PASSED [ 57%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_block_quote PASSED [ 57%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_code_block PASSED [ 57%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_code_span PASSED [ 57%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_atx_heading PASSED [ 57%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_document PASSED [ 57%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_list_item PASSED [ 57%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_escaped_character PASSED [ 57%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_hard_line_break PASSED [ 57%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_block PASSED [ 57%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_character_entities PASSED [ 57%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_span PASSED [ 57%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_image_embedded_in_link PASSED [ 57%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_collapsed_reference_link PASSED [ 57%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_full_reference_link PASSED [ 57%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_shortcut_reference_link PASSED [ 57%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_merging_of_adjacent_placeholders PASSED [ 57%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_nested_block_tokens PASSED [ 57%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_nested_list PASSED [ 57%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_paragraph_with_basic_markup PASSED [ 58%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_paragraph_with_only_whitespace_and_placeholders PASSED [ 58%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_placeholder_trimming PASSED [ 58%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_image PASSED [ 58%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_image_no_title PASSED [ 58%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_link PASSED [ 58%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_text_paragraph PASSED [ 58%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_remove_placeholders_from_both_ends_of_translation_units PASSED [ 58%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_setext_heading PASSED [ 58%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_table_with_header PASSED [ 58%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_thematic_break PASSED [ 58%] 241s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_hard_line_break_in_translation_unit PASSED [ 58%] 241s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_missing_placeholder PASSED [ 58%] 241s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_duplicate_placeholder PASSED [ 58%] 241s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_extraneous_placeholder PASSED [ 58%] 241s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_reordered_placeholders PASSED [ 58%] 241s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_invalid_markdown_in_translation PASSED [ 58%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_section_basic PASSED [ 58%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_section_with_markup PASSED [ 58%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_section_with_code_block PASSED [ 58%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_multiple_ignore_sections PASSED [ 58%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_at_start PASSED [ 58%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_at_end PASSED [ 58%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_nested_structures_in_ignore PASSED [ 58%] 241s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_link_references_in_ignore PASSED [ 58%] 241s tests/translate/storage/test_mo.py::TestMOUnit::test_isfuzzy PASSED [ 58%] 241s tests/translate/storage/test_mo.py::TestMOUnit::test_create PASSED [ 58%] 241s tests/translate/storage/test_mo.py::TestMOUnit::test_eq PASSED [ 58%] 241s tests/translate/storage/test_mo.py::TestMOUnit::test_target PASSED [ 58%] 241s tests/translate/storage/test_mo.py::TestMOUnit::test_escapes PASSED [ 58%] 241s tests/translate/storage/test_mo.py::TestMOUnit::test_difficult_escapes PASSED [ 58%] 241s tests/translate/storage/test_mo.py::TestMOUnit::test_note_sanity PASSED [ 58%] 241s tests/translate/storage/test_mo.py::TestMOUnit::test_line_number_default PASSED [ 58%] 241s tests/translate/storage/test_mo.py::TestMOUnit::test_rich_get PASSED [ 58%] 241s tests/translate/storage/test_mo.py::TestMOUnit::test_rich_set PASSED [ 58%] 241s tests/translate/storage/test_mo.py::TestMOUnit::test_context PASSED [ 58%] 241s tests/translate/storage/test_mo.py::TestMOFile::test_create_blank PASSED [ 58%] 241s tests/translate/storage/test_mo.py::TestMOFile::test_add PASSED [ 58%] 241s tests/translate/storage/test_mo.py::TestMOFile::test_remove PASSED [ 58%] 241s tests/translate/storage/test_mo.py::TestMOFile::test_find PASSED [ 59%] 241s tests/translate/storage/test_mo.py::TestMOFile::test_translate PASSED [ 59%] 241s tests/translate/storage/test_mo.py::TestMOFile::test_parse PASSED [ 59%] 241s tests/translate/storage/test_mo.py::TestMOFile::test_files PASSED [ 59%] 241s tests/translate/storage/test_mo.py::TestMOFile::test_save PASSED [ 59%] 241s tests/translate/storage/test_mo.py::TestMOFile::test_markup PASSED [ 59%] 241s tests/translate/storage/test_mo.py::TestMOFile::test_nonascii PASSED [ 59%] 241s tests/translate/storage/test_mo.py::TestMOFile::test_extensions PASSED [ 59%] 241s tests/translate/storage/test_mo.py::TestMOFile::test_mimetypes PASSED [ 59%] 241s tests/translate/storage/test_mo.py::TestMOFile::test_language PASSED [ 59%] 241s tests/translate/storage/test_mo.py::TestMOFile::test_context PASSED [ 59%] 241s tests/translate/storage/test_mo.py::TestMOFile::test_output SKIPPED [ 59%] 241s tests/translate/storage/test_mo.py::TestMOFile::test_endian_version_parsing PASSED [ 59%] 241s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_isfuzzy PASSED [ 59%] 241s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_create PASSED [ 59%] 241s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_eq PASSED [ 59%] 241s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_escapes PASSED [ 59%] 241s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_difficult_escapes PASSED [ 59%] 241s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_note_sanity PASSED [ 59%] 241s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_line_number_default PASSED [ 59%] 241s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_target PASSED [ 59%] 241s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_rich_get PASSED [ 59%] 241s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_rich_set PASSED [ 59%] 241s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_create_blank PASSED [ 59%] 241s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_add PASSED [ 59%] 241s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_remove PASSED [ 59%] 241s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_find PASSED [ 59%] 241s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_parse PASSED [ 59%] 241s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_files PASSED [ 59%] 241s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_save PASSED [ 59%] 241s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_extensions PASSED [ 59%] 241s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_mimetypes PASSED [ 59%] 241s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_translate PASSED [ 59%] 241s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_markup PASSED [ 59%] 241s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_nonascii PASSED [ 59%] 241s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[-] PASSED [ 59%] 241s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String-String] PASSED [ 59%] 241s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok}-String] PASSED [ 59%] 241s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {OK}-String] PASSED [ 59%] 241s 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%] 241s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String{ok}-String] PASSED [ 60%] 241s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String{OK}-String] PASSED [ 60%] 241s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok}-String] PASSED [ 60%] 241s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok} -String] PASSED [ 60%] 241s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_isfuzzy PASSED [ 60%] 241s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_create PASSED [ 60%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_eq PASSED [ 60%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_target PASSED [ 60%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_escapes PASSED [ 60%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_difficult_escapes PASSED [ 60%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_note_sanity PASSED [ 60%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_line_number_default PASSED [ 60%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_rich_get PASSED [ 60%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_rich_set PASSED [ 60%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_translate_but_same PASSED [ 60%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_untranslated PASSED [ 60%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_comments PASSED [ 60%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_copy_target PASSED [ 60%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_create_blank PASSED [ 60%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_add PASSED [ 60%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_remove PASSED [ 60%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_find PASSED [ 60%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_translate PASSED [ 60%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_parse PASSED [ 60%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_files PASSED [ 60%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_save PASSED [ 60%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_markup PASSED [ 60%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_extensions PASSED [ 60%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_mimetypes PASSED [ 60%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_nonascii PASSED [ 60%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_format_layout PASSED [ 60%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_crlf PASSED [ 60%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_active_flag PASSED [ 60%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_multiline_comments PASSED [ 60%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_template PASSED [ 60%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[--False] PASSED [ 60%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ -Source -True] PASSED [ 60%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ {ok}-Source-True] PASSED [ 60%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ {ok} -Source-True] PASSED [ 61%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[{ok}-Source-True] PASSED [ 61%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_headers PASSED [ 61%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_not_headers PASSED [ 61%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[0] PASSED [ 61%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[1] PASSED [ 61%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[2] PASSED [ 61%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[3] PASSED [ 61%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_tag_comments PASSED [ 61%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_maxlength PASSED [ 61%] 242s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_line_number PASSED [ 61%] 242s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_isfuzzy PASSED [ 61%] 242s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_create PASSED [ 61%] 242s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_eq PASSED [ 61%] 242s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_target PASSED [ 61%] 242s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_escapes PASSED [ 61%] 242s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_difficult_escapes PASSED [ 61%] 242s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_note_sanity PASSED [ 61%] 242s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_line_number_default PASSED [ 61%] 242s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_rich_get PASSED [ 61%] 242s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_rich_set PASSED [ 61%] 242s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_create_blank PASSED [ 61%] 242s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_add PASSED [ 61%] 242s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_remove PASSED [ 61%] 242s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_find PASSED [ 61%] 242s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_translate PASSED [ 61%] 242s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_parse PASSED [ 61%] 242s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_files PASSED [ 61%] 242s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_save PASSED [ 61%] 242s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_markup PASSED [ 61%] 242s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_nonascii PASSED [ 61%] 242s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_mimetypes PASSED [ 61%] 242s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_extensions XFAIL [ 61%] 242s tests/translate/storage/test_oo.py::test_makekey PASSED [ 61%] 242s tests/translate/storage/test_oo.py::test_escape_help_text PASSED [ 61%] 242s tests/translate/storage/test_oo.py::TestOO::test_simpleentry PASSED [ 61%] 242s tests/translate/storage/test_oo.py::TestOO::test_simpleentry_quickhelptest PASSED [ 61%] 242s tests/translate/storage/test_oo.py::TestOO::test_simpleentry_title PASSED [ 61%] 242s tests/translate/storage/test_oo.py::TestOO::test_blankline PASSED [ 61%] 242s tests/translate/storage/test_oo.py::TestOO::test_fieldlength PASSED [ 62%] 242s tests/translate/storage/test_oo.py::TestOO::test_escapes PASSED [ 62%] 242s tests/translate/storage/test_php.py::test_php_escaping_single_quote PASSED [ 62%] 242s tests/translate/storage/test_php.py::test_php_escaping_double_quote PASSED [ 62%] 242s tests/translate/storage/test_php.py::TestPhpUnit::test_isfuzzy PASSED [ 62%] 242s tests/translate/storage/test_php.py::TestPhpUnit::test_create PASSED [ 62%] 242s tests/translate/storage/test_php.py::TestPhpUnit::test_eq PASSED [ 62%] 242s tests/translate/storage/test_php.py::TestPhpUnit::test_escapes PASSED [ 62%] 242s tests/translate/storage/test_php.py::TestPhpUnit::test_note_sanity PASSED [ 62%] 242s tests/translate/storage/test_php.py::TestPhpUnit::test_line_number_default PASSED [ 62%] 242s tests/translate/storage/test_php.py::TestPhpUnit::test_target PASSED [ 62%] 242s tests/translate/storage/test_php.py::TestPhpUnit::test_rich_get PASSED [ 62%] 242s tests/translate/storage/test_php.py::TestPhpUnit::test_rich_set PASSED [ 62%] 242s tests/translate/storage/test_php.py::TestPhpUnit::test_difficult_escapes PASSED [ 62%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_create_blank PASSED [ 62%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_add PASSED [ 62%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_remove PASSED [ 62%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_find PASSED [ 62%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_parse PASSED [ 62%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_files PASSED [ 62%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_save PASSED [ 62%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_extensions PASSED [ 62%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_mimetypes PASSED [ 62%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_translate PASSED [ 62%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_markup PASSED [ 62%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_nonascii PASSED [ 62%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition PASSED [ 62%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition_source PASSED [ 62%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_spaces_in_name PASSED [ 62%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_comment_definition PASSED [ 62%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_comment_blocks PASSED [ 62%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_comment_output PASSED [ 62%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_comment_add PASSED [ 62%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_multiline PASSED [ 62%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays PASSED [ 62%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_array_no_array_syntax PASSED [ 62%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_spaces PASSED [ 62%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_quotes PASSED [ 62%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_number_as_value PASSED [ 62%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_non_textual PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_define PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_define_with_spaces_before_key PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_after_equal_delimiter PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_after_equal_delimiter_and_before_key PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_no_spaces_after_equal_delimiter PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_no_spaces_after_equaldel_but_before_key PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_entries_with_quotes PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_comments_at_entry_line_end PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_double_slash_comments_before_entries PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_before_end_delimiter PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simpledefinition_spaces_before_end_delimiter PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_no_trailing_comma PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_space_before_comma PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_space_before_array_declaration PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_declared_in_a_single_line PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_no_keys PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_no_keys_assigned_to_array PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_no_keys PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_assignment_in_line_where_multiline_comment_ends PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_using_short_array_syntax PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_space_before_array_declaration PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_unnamed_nested_arrays PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_array_declaration_in_next_line PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_array_with_newline_after_delimiter PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_blank_entries PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_slashstar_in_string PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_heredoc_syntax PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition_after_define PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_quotes PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_concatenation PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_serialize PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_space_before_comma PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_equals_in_id PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_comma_in_string PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_nowdoc PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_plain_concatenation PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_array_keys PASSED [ 63%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_double_var PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_return_array PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_with_spaces PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_with_comments PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_short PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_short_quotes PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestPhpFile::test_addunit PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_isfuzzy PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_create PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_eq PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_escapes PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_difficult_escapes PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_note_sanity PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_line_number_default PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_target PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_rich_get PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_rich_set PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_create_blank PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_remove PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_find PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_parse PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_files PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_save PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_extensions PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_mimetypes PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_translate PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_markup PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_nonascii PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_plurals PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_key_stripping PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_key_stripping_array_syntax PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_key_stripping_numeric_keys PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_roundtrip_short_array PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_roundtrip_array_syntax PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_setid_preserves_structure PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_setid_with_array_syntax PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_addunit_with_setid PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_unit_to_short_array_file PASSED [ 64%] 242s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_unit_to_array_function_file PASSED [ 65%] 242s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_multiple_units_to_short_array PASSED [ 65%] 242s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_multiple_units_to_array_function PASSED [ 65%] 242s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_numeric_keys_no_quotes PASSED [ 65%] 242s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_empty_string_key PASSED [ 65%] 242s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_setid_with_non_string_value PASSED [ 65%] 242s tests/translate/storage/test_po.py::test_roundtrip_quoting PASSED [ 65%] 242s tests/translate/storage/test_po.py::TestPOUnit::test_isfuzzy PASSED [ 65%] 242s tests/translate/storage/test_po.py::TestPOUnit::test_create PASSED [ 65%] 242s tests/translate/storage/test_po.py::TestPOUnit::test_eq PASSED [ 65%] 242s tests/translate/storage/test_po.py::TestPOUnit::test_target PASSED [ 65%] 242s tests/translate/storage/test_po.py::TestPOUnit::test_escapes PASSED [ 65%] 242s tests/translate/storage/test_po.py::TestPOUnit::test_difficult_escapes PASSED [ 65%] 242s tests/translate/storage/test_po.py::TestPOUnit::test_note_sanity PASSED [ 65%] 242s tests/translate/storage/test_po.py::TestPOUnit::test_line_number_default PASSED [ 65%] 242s tests/translate/storage/test_po.py::TestPOUnit::test_rich_get PASSED [ 65%] 242s tests/translate/storage/test_po.py::TestPOUnit::test_rich_set PASSED [ 65%] 242s tests/translate/storage/test_po.py::TestPOUnit::test_istranslatable PASSED [ 65%] 242s tests/translate/storage/test_po.py::TestPOUnit::test_locations PASSED [ 65%] 242s tests/translate/storage/test_po.py::TestPOUnit::test_nongettext_location PASSED [ 65%] 242s tests/translate/storage/test_po.py::TestPOUnit::test_adding_empty_note PASSED [ 65%] 242s tests/translate/storage/test_po.py::TestPOUnit::test_markreview PASSED [ 65%] 242s tests/translate/storage/test_po.py::TestPOUnit::test_errors PASSED [ 65%] 242s tests/translate/storage/test_po.py::TestPOUnit::test_no_plural_settarget PASSED [ 65%] 242s tests/translate/storage/test_po.py::TestPOUnit::test_wrapping_bug PASSED [ 65%] 242s tests/translate/storage/test_po.py::TestPOUnit::test_extract_msgidcomments_from_text PASSED [ 65%] 242s tests/translate/storage/test_po.py::TestPOUnit::test_isheader PASSED [ 65%] 242s tests/translate/storage/test_po.py::TestPOUnit::test_buildfromunit PASSED [ 65%] 242s tests/translate/storage/test_po.py::TestPOFile::test_create_blank PASSED [ 65%] 242s tests/translate/storage/test_po.py::TestPOFile::test_add PASSED [ 65%] 242s tests/translate/storage/test_po.py::TestPOFile::test_remove PASSED [ 65%] 242s tests/translate/storage/test_po.py::TestPOFile::test_find PASSED [ 65%] 242s tests/translate/storage/test_po.py::TestPOFile::test_translate PASSED [ 65%] 242s tests/translate/storage/test_po.py::TestPOFile::test_parse PASSED [ 65%] 242s tests/translate/storage/test_po.py::TestPOFile::test_files PASSED [ 65%] 242s tests/translate/storage/test_po.py::TestPOFile::test_save PASSED [ 65%] 242s tests/translate/storage/test_po.py::TestPOFile::test_markup PASSED [ 65%] 242s tests/translate/storage/test_po.py::TestPOFile::test_nonascii PASSED [ 65%] 242s tests/translate/storage/test_po.py::TestPOFile::test_extensions PASSED [ 65%] 242s tests/translate/storage/test_po.py::TestPOFile::test_mimetypes PASSED [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_context_only PASSED [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_simpleentry PASSED [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_copy PASSED [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_parse_source_string PASSED [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_parse_file PASSED [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_unicode PASSED [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_plurals PASSED [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_plural_unicode PASSED [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_nongettext_location PASSED [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_percent_location PASSED [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_kde_plurals XFAIL [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_empty_lines_notes PASSED [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_fuzzy PASSED [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_untranslated XFAIL [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_merging_automaticcomments PASSED [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_malformed_units PASSED [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_invalid_keyword PASSED [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_malformed_obsolete_units PASSED [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_uniforum_po PASSED [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_obsolete PASSED [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_obsolete_with_prev_msgid PASSED [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_header_escapes PASSED [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete PASSED [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_plural PASSED [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_msgctxt PASSED [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_msgidcomments PASSED [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_multiline_obsolete PASSED [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_merge_duplicates PASSED [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_merge_mixed_sources PASSED [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_parse_context PASSED [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_parse_advanced_context PASSED [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_kde_context PASSED [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_broken_kde_context PASSED [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_id PASSED [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_non_ascii_header_comments PASSED [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_non_ascii_header_comments_2 PASSED [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_final_slash PASSED [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_unfinished_lines PASSED [ 66%] 242s tests/translate/storage/test_po.py::TestPOFile::test_encoding_change PASSED [ 67%] 242s tests/translate/storage/test_po.py::TestPOFile::test_istranslated PASSED [ 67%] 242s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_spaces PASSED [ 67%] 242s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long PASSED [ 67%] 242s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_fit PASSED [ 67%] 242s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_overflow PASSED [ 67%] 242s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_multiline PASSED [ 67%] 242s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_escapes PASSED [ 67%] 242s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_cjk PASSED [ 67%] 242s tests/translate/storage/test_po.py::TestPOFile::test_wrap_emoji PASSED [ 67%] 242s tests/translate/storage/test_po.py::TestPOFile::test_wrap_parenthesis PASSED [ 67%] 242s tests/translate/storage/test_po.py::TestPOFile::test_wrap_escape_line PASSED [ 67%] 242s tests/translate/storage/test_po.py::TestPOFile::test_wrap_parenthesis_long PASSED [ 67%] 242s tests/translate/storage/test_po.py::TestPOFile::test_wrap_gettext PASSED [ 67%] 242s tests/translate/storage/test_po.py::TestPOFile::test_wrap_wide_stop PASSED [ 67%] 242s tests/translate/storage/test_po.py::TestPOFile::test_wrap_escape PASSED [ 67%] 242s tests/translate/storage/test_po.py::TestPOFile::test_msgidcomments PASSED [ 67%] 242s tests/translate/storage/test_po.py::TestPOFile::test_unicode_ids PASSED [ 67%] 242s tests/translate/storage/test_po.py::TestPOFile::test_syntax_error PASSED [ 67%] 242s tests/translate/storage/test_po.py::TestPOFile::test_invalid PASSED [ 67%] 242s tests/translate/storage/test_po.py::TestPOFile::test_c_style_comment_error_reporting PASSED [ 67%] 242s tests/translate/storage/test_po.py::TestPOFile::test_wrapped_msgid PASSED [ 67%] 242s tests/translate/storage/test_po.py::TestPOFile::test_missing_plural PASSED [ 67%] 242s tests/translate/storage/test_po.py::TestPOFile::test_unusual_line_endings PASSED [ 67%] 242s tests/translate/storage/test_po.py::TestPOFile::test_charset_with_space PASSED [ 67%] 242s tests/translate/storage/test_po.py::TestPOFile::test_duplicate_msgid_error PASSED [ 67%] 242s tests/translate/storage/test_pocommon.py::test_roundtrip_quote_plus PASSED [ 67%] 242s tests/translate/storage/test_poheader.py::test_parseheaderstring PASSED [ 67%] 242s tests/translate/storage/test_poheader.py::test_update PASSED [ 67%] 242s tests/translate/storage/test_poheader.py::test_po_dates PASSED [ 67%] 242s tests/translate/storage/test_poheader.py::test_timezones PASSED [ 67%] 242s tests/translate/storage/test_poheader.py::test_header_blank PASSED [ 67%] 242s tests/translate/storage/test_poheader.py::test_plural_equation PASSED [ 67%] 242s tests/translate/storage/test_poheader.py::test_plural_equation_across_lines PASSED [ 67%] 242s tests/translate/storage/test_poheader.py::test_updatecontributor PASSED [ 67%] 242s tests/translate/storage/test_poheader.py::test_updatecontributor_header PASSED [ 67%] 242s tests/translate/storage/test_poheader.py::test_language PASSED [ 67%] 242s tests/translate/storage/test_poheader.py::test_project PASSED [ 67%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_isfuzzy PASSED [ 67%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_create PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_eq PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_target PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_escapes PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_difficult_escapes PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_note_sanity PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_line_number_default PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_rich_get PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_rich_set PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_markreview PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_errors PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_accepted_control_chars PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_unaccepted_control_chars PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_plurals PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_ids PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_create_blank PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_remove PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_find PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_translate PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_files PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_save PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_markup PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_nonascii PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_extensions PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_mimetypes PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_basic PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_namespace PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_rich_source PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_rich_target PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_source PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_target PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_sourcelanguage PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_targetlanguage PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_targetlanguage_multi PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_alttrans PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_fuzzy PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_xml_space PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parsing PASSED [ 68%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_marktranslatable PASSED [ 69%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_entities PASSED [ 69%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_multiple_filenodes PASSED [ 69%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_groups_when_adding_units PASSED [ 69%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_multiple_files_and_groups PASSED [ 69%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_unit_to_existing_group PASSED [ 69%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_unit_to_different_file PASSED [ 69%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_mixed_groups_and_body PASSED [ 69%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_addunit_with_new_false PASSED [ 69%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_namespace_preservation_across_versions PASSED [ 69%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_units_between_different_files PASSED [ 69%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_group_preservation_across_different_namespaces PASSED [ 69%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_cross_namespace_group_and_file_preservation PASSED [ 69%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_indent PASSED [ 69%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_target PASSED [ 69%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve PASSED [ 69%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_closing_tags PASSED [ 69%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_context_groups PASSED [ 69%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_getlocations PASSED [ 69%] 242s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_addlocation PASSED [ 69%] 243s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_huge PASSED [ 69%] 243s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_add PASSED [ 69%] 243s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parse PASSED [ 69%] 243s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parse_plural_alpha_id PASSED [ 69%] 243s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_notes PASSED [ 69%] 243s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_plural PASSED [ 69%] 243s tests/translate/storage/test_properties.py::test_find_delimiter_pos_simple PASSED [ 69%] 243s tests/translate/storage/test_properties.py::test_find_delimiter_pos_multiple PASSED [ 69%] 243s tests/translate/storage/test_properties.py::test_find_delimiter_pos_none PASSED [ 69%] 243s tests/translate/storage/test_properties.py::test_find_delimiter_pos_whitespace PASSED [ 69%] 243s tests/translate/storage/test_properties.py::test_find_delimiter_pos_escapes PASSED [ 69%] 243s tests/translate/storage/test_properties.py::test_find_delimiter_pos_empty_and_whitespace PASSED [ 69%] 243s tests/translate/storage/test_properties.py::test_find_delimiter_pos_tabs PASSED [ 69%] 243s tests/translate/storage/test_properties.py::test_is_line_continuation PASSED [ 69%] 243s tests/translate/storage/test_properties.py::test_key_strip PASSED [ 69%] 243s tests/translate/storage/test_properties.py::test_get_comment_one_line PASSED [ 69%] 243s tests/translate/storage/test_properties.py::test_get_comment_start PASSED [ 69%] 243s tests/translate/storage/test_properties.py::test_get_comment_end PASSED [ 69%] 243s tests/translate/storage/test_properties.py::TestPropUnit::test_isfuzzy PASSED [ 69%] 243s tests/translate/storage/test_properties.py::TestPropUnit::test_create PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestPropUnit::test_eq PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestPropUnit::test_escapes PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestPropUnit::test_difficult_escapes PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestPropUnit::test_note_sanity PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestPropUnit::test_line_number_default PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestPropUnit::test_target PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestPropUnit::test_rich_get PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestPropUnit::test_rich_set PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestGwtProp::test_create_blank PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestGwtProp::test_add PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestGwtProp::test_remove PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestGwtProp::test_find PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestGwtProp::test_parse PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestGwtProp::test_files PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestGwtProp::test_save PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestGwtProp::test_extensions PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestGwtProp::test_mimetypes PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestGwtProp::test_translate PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestGwtProp::test_markup PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestGwtProp::test_nonascii PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestGwtProp::test_quotes PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestGwtProp::test_simpledefinition PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestGwtProp::test_doubledefinition PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestGwtProp::test_doubledefinition_source PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestGwtProp::test_reduce PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestGwtProp::test_increase PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestGwtProp::test_extra_plurals PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestGwtProp::test_non_plurals PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestGwtProp::test_encoding PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestGwtProp::test_other_plurals PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestProp::test_create_blank PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestProp::test_add PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestProp::test_remove PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestProp::test_find PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestProp::test_parse PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestProp::test_files PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestProp::test_save PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestProp::test_extensions PASSED [ 70%] 243s tests/translate/storage/test_properties.py::TestProp::test_mimetypes PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_translate PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_markup PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_nonascii PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_simpledefinition PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_simpledefinition_source PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_controlutf8_source PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_control_source PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_unicode_escaping PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_newlines_startend PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_space PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_whitespace_handling PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_key_value_delimiters_simple PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_tab_delimiter_parsing PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_comments PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_latin1 PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_fullspec_delimiters PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_fullspec_escaped_key PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_fullspec_line_continuation PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_fullspec_key_without_value PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_mac_strings PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_utf_16_save PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_mac_multiline_strings PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_unicode PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_utf8 PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_newlines PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comments PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_multilines_comments PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comments_dropping PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_inline_comments PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_inline_comments_nested PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_inline_comment_with_spaces PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_before_entry PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_between_key_and_equals PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_between_equals_and_value PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_after_value_before_semicolon PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_multiple_inline_comments PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_nested_comment PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_inside_value PASSED [ 71%] 243s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_trailing_whitespace_after_semicolon PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_quotes PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_equals PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_serialization PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_double_backslashes PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestProp::test_override_encoding PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestProp::test_trailing_comments PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestProp::test_utf16_byte_order_mark PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestProp::test_raise_ioerror_if_cannot_detect_encoding PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestProp::test_utf8_byte_order_mark PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestProp::test_utf16_bom_no_warning PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestProp::test_joomla_set_target PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestProp::test_joomla PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestProp::test_joomla_escape PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestProp::test_serialize_missing_delimiter PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestProp::test_serialize_missing_value PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestProp::test_multi_comments PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestProp::test_serialize_note PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestProp::test_serialize_long_note PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestProp::test_trailing_newlines PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestXWiki::test_create_blank PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestXWiki::test_add PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestXWiki::test_remove PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestXWiki::test_find PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestXWiki::test_parse PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestXWiki::test_files PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestXWiki::test_save PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestXWiki::test_extensions PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestXWiki::test_mimetypes PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestXWiki::test_translate PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestXWiki::test_markup PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestXWiki::test_nonascii PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestXWiki::test_simpledefinition PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestXWiki::test_missing_definition PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestXWiki::test_missing_definition_source PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestXWiki::test_definition_with_simple_quote PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestXWiki::test_definition_with_simple_quote_and_argument PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestXWiki::test_header_preserved PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestXWiki::test_blank_line_before_comment_preserved PASSED [ 72%] 243s tests/translate/storage/test_properties.py::TestXWiki::test_deprecated_comments_preserved PASSED [ 73%] 243s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_create_blank PASSED [ 73%] 243s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_add PASSED [ 73%] 243s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_remove PASSED [ 73%] 243s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_find PASSED [ 73%] 243s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_parse PASSED [ 73%] 243s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_files PASSED [ 73%] 244s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_save PASSED [ 73%] 244s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_extensions PASSED [ 73%] 244s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_mimetypes PASSED [ 73%] 244s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_translate PASSED [ 73%] 244s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_markup PASSED [ 73%] 244s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_nonascii PASSED [ 73%] 244s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_simpledefinition PASSED [ 73%] 244s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_missing_definition PASSED [ 73%] 244s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_missing_definition_source PASSED [ 73%] 244s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_simple_quote PASSED [ 73%] 244s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_simple_quote_and_argument PASSED [ 73%] 244s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_encoded_html PASSED [ 73%] 244s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_cleaning_attributes PASSED [ 73%] 244s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_translate_source PASSED [ 73%] 244s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_create_blank PASSED [ 73%] 244s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_add PASSED [ 73%] 244s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_find PASSED [ 73%] 244s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_extensions PASSED [ 73%] 244s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_mimetypes PASSED [ 73%] 244s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_translate PASSED [ 73%] 244s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_markup PASSED [ 73%] 244s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_nonascii PASSED [ 73%] 244s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_simpledefinition PASSED [ 73%] 244s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_parse PASSED [ 73%] 244s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_files PASSED [ 73%] 244s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_save PASSED [ 73%] 244s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_cleaning_attributes PASSED [ 73%] 244s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_remove XFAIL [ 73%] 244s tests/translate/storage/test_pypo.py::TestHelpers::test_unescape PASSED [ 73%] 244s tests/translate/storage/test_pypo.py::TestHelpers::test_quoteforpo PASSED [ 73%] 244s tests/translate/storage/test_pypo.py::TestHelpers::test_quoteforpo_escaped_quotes PASSED [ 73%] 244s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_isfuzzy PASSED [ 73%] 244s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_create PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_eq PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_target PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_escapes PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_difficult_escapes PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_note_sanity PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_line_number_default PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_rich_get PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_rich_set PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_istranslatable PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_locations PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_nongettext_location PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_adding_empty_note PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_markreview PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_errors PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_no_plural_settarget PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrapping_bug PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_extract_msgidcomments_from_text PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_isheader PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_buildfromunit PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_plurals PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_plural_reduction PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes_withcomments PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes_with_blank_lines PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_firstlines PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_newlines PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_max_line_length PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_slash PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_spacing_max_line PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_create_blank PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_add PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_remove PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_find PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_translate PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_files PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_save PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_markup PASSED [ 74%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_nonascii PASSED [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_extensions PASSED [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mimetypes PASSED [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_context_only PASSED [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_simpleentry PASSED [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_copy PASSED [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_source_string PASSED [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_file PASSED [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode PASSED [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_plurals PASSED [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_plural_unicode PASSED [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_nongettext_location PASSED [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_percent_location PASSED [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_plurals XFAIL [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_empty_lines_notes PASSED [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_fuzzy PASSED [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_untranslated XFAIL [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merging_automaticcomments PASSED [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_malformed_units PASSED [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_invalid_keyword PASSED [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_malformed_obsolete_units PASSED [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_uniforum_po PASSED [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_obsolete PASSED [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_obsolete_with_prev_msgid PASSED [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_header_escapes PASSED [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete PASSED [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_plural PASSED [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_msgctxt PASSED [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_msgidcomments PASSED [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_multiline_obsolete PASSED [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_duplicates PASSED [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_mixed_sources PASSED [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_context PASSED [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_advanced_context PASSED [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_context PASSED [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_broken_kde_context PASSED [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_id PASSED [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_non_ascii_header_comments PASSED [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_non_ascii_header_comments_2 PASSED [ 75%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_final_slash PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unfinished_lines PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_encoding_change PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_istranslated PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_spaces PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_fit PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_overflow PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_multiline PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_escapes PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_cjk PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_emoji PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_parenthesis PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_escape_line PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_parenthesis_long PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_gettext PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_wide_stop PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_escape PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_msgidcomments PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode_ids PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_syntax_error PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_c_style_comment_error_reporting PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapped_msgid PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_missing_plural PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unusual_line_endings PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_charset_with_space PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_duplicate_msgid_error PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_combine_msgidcomments PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_duplicates_msgctxt PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_blanks PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_output_str_unicode PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_posections PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_typecomments PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_future_flags PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unassociated_comments PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode_header PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_prevmsgid_parse PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_newlines PASSED [ 76%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unix_newlines PASSED [ 77%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines PASSED [ 77%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mac_newlines PASSED [ 77%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines PASSED [ 77%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_header PASSED [ 77%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_comment PASSED [ 77%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_bom PASSED [ 77%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_long_msgidcomments PASSED [ 77%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_incomplete PASSED [ 77%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_invalid PASSED [ 77%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines_write PASSED [ 77%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_typecomment XFAIL [ 77%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines_typecomment PASSED [ 77%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_custom PASSED [ 77%] 244s tests/translate/storage/test_pypo.py::TestPYPOFile::test_line_number PASSED [ 77%] 244s tests/translate/storage/test_qm.py::TestQtUnit::test_isfuzzy PASSED [ 77%] 244s tests/translate/storage/test_qm.py::TestQtUnit::test_create PASSED [ 77%] 244s tests/translate/storage/test_qm.py::TestQtUnit::test_eq PASSED [ 77%] 244s tests/translate/storage/test_qm.py::TestQtUnit::test_target PASSED [ 77%] 244s tests/translate/storage/test_qm.py::TestQtUnit::test_escapes PASSED [ 77%] 244s tests/translate/storage/test_qm.py::TestQtUnit::test_difficult_escapes PASSED [ 77%] 244s tests/translate/storage/test_qm.py::TestQtUnit::test_note_sanity PASSED [ 77%] 244s tests/translate/storage/test_qm.py::TestQtUnit::test_line_number_default PASSED [ 77%] 244s tests/translate/storage/test_qm.py::TestQtUnit::test_rich_get PASSED [ 77%] 244s tests/translate/storage/test_qm.py::TestQtUnit::test_rich_set PASSED [ 77%] 244s tests/translate/storage/test_qm.py::TestQtFile::test_create_blank PASSED [ 77%] 244s tests/translate/storage/test_qm.py::TestQtFile::test_find PASSED [ 77%] 244s tests/translate/storage/test_qm.py::TestQtFile::test_translate PASSED [ 77%] 244s tests/translate/storage/test_qm.py::TestQtFile::test_markup PASSED [ 77%] 244s tests/translate/storage/test_qm.py::TestQtFile::test_extensions PASSED [ 77%] 244s tests/translate/storage/test_qm.py::TestQtFile::test_mimetypes PASSED [ 77%] 244s tests/translate/storage/test_qm.py::TestQtFile::test_parse PASSED [ 77%] 244s tests/translate/storage/test_qm.py::TestQtFile::test_save PASSED [ 77%] 244s tests/translate/storage/test_qm.py::TestQtFile::test_files PASSED [ 77%] 244s tests/translate/storage/test_qm.py::TestQtFile::test_nonascii PASSED [ 77%] 244s tests/translate/storage/test_qm.py::TestQtFile::test_add PASSED [ 77%] 244s tests/translate/storage/test_qm.py::TestQtFile::test_remove PASSED [ 77%] 244s tests/translate/storage/test_qph.py::TestQphUnit::test_isfuzzy PASSED [ 77%] 244s tests/translate/storage/test_qph.py::TestQphUnit::test_create PASSED [ 77%] 244s tests/translate/storage/test_qph.py::TestQphUnit::test_eq PASSED [ 78%] 244s tests/translate/storage/test_qph.py::TestQphUnit::test_target PASSED [ 78%] 244s tests/translate/storage/test_qph.py::TestQphUnit::test_escapes PASSED [ 78%] 244s tests/translate/storage/test_qph.py::TestQphUnit::test_difficult_escapes PASSED [ 78%] 244s tests/translate/storage/test_qph.py::TestQphUnit::test_note_sanity PASSED [ 78%] 244s tests/translate/storage/test_qph.py::TestQphUnit::test_line_number_default PASSED [ 78%] 244s tests/translate/storage/test_qph.py::TestQphUnit::test_rich_get PASSED [ 78%] 244s tests/translate/storage/test_qph.py::TestQphUnit::test_rich_set PASSED [ 78%] 244s tests/translate/storage/test_qph.py::TestQphFile::test_create_blank PASSED [ 78%] 244s tests/translate/storage/test_qph.py::TestQphFile::test_add PASSED [ 78%] 244s tests/translate/storage/test_qph.py::TestQphFile::test_remove PASSED [ 78%] 244s tests/translate/storage/test_qph.py::TestQphFile::test_find PASSED [ 78%] 244s tests/translate/storage/test_qph.py::TestQphFile::test_translate PASSED [ 78%] 244s tests/translate/storage/test_qph.py::TestQphFile::test_parse PASSED [ 78%] 244s tests/translate/storage/test_qph.py::TestQphFile::test_files PASSED [ 78%] 244s tests/translate/storage/test_qph.py::TestQphFile::test_save PASSED [ 78%] 244s tests/translate/storage/test_qph.py::TestQphFile::test_markup PASSED [ 78%] 244s tests/translate/storage/test_qph.py::TestQphFile::test_nonascii PASSED [ 78%] 244s tests/translate/storage/test_qph.py::TestQphFile::test_extensions PASSED [ 78%] 244s tests/translate/storage/test_qph.py::TestQphFile::test_mimetypes PASSED [ 78%] 244s tests/translate/storage/test_qph.py::TestQphFile::test_basic PASSED [ 78%] 244s tests/translate/storage/test_qph.py::TestQphFile::test_source PASSED [ 78%] 244s tests/translate/storage/test_qph.py::TestQphFile::test_target PASSED [ 78%] 244s tests/translate/storage/test_qph.py::TestQphFile::test_language PASSED [ 78%] 244s tests/translate/storage/test_rc.py::test_escaping PASSED [ 78%] 244s tests/translate/storage/test_rc.py::TestRcFile::test_parse_only_comments PASSED [ 78%] 244s tests/translate/storage/test_rc.py::TestRcFile::test_parse_only_textinclude PASSED [ 78%] 244s tests/translate/storage/test_rc.py::TestRcFile::test_parse_dialog PASSED [ 78%] 244s tests/translate/storage/test_rc.py::TestRcFile::test_parse_stringtable PASSED [ 78%] 244s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_lf PASSED [ 78%] 244s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_crlf PASSED [ 78%] 244s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_cr PASSED [ 78%] 244s tests/translate/storage/test_rc.py::TestRcFile::test_parse_no_language PASSED [ 78%] 244s tests/translate/storage/test_rc.py::TestRcFile::test_textinclude PASSED [ 78%] 244s tests/translate/storage/test_rc.py::TestRcFile::test_multiline PASSED [ 78%] 244s tests/translate/storage/test_rc.py::TestRcFile::test_str PASSED [ 78%] 244s tests/translate/storage/test_rc.py::TestRcFile::test_empty PASSED [ 78%] 244s tests/translate/storage/test_rc.py::TestRcFile::test_utf_8 PASSED [ 78%] 244s tests/translate/storage/test_rc.py::TestRcFile::test_utf_16 PASSED [ 78%] 244s tests/translate/storage/test_rc.py::TestRcFile::test_comment PASSED [ 79%] 244s tests/translate/storage/test_rc.py::TestRcFile::test_stringtables PASSED [ 79%] 244s tests/translate/storage/test_rc.py::TestRcFile::test_textinclude_appstudio PASSED [ 79%] 244s tests/translate/storage/test_rc.py::TestRcFile::test_id_whitespace PASSED [ 79%] 244s tests/translate/storage/test_rc.py::TestRcFile::test_menu_comment PASSED [ 79%] 244s tests/translate/storage/test_rc.py::TestRcFile::test_decompiled PASSED [ 79%] 244s tests/translate/storage/test_rc.py::TestRcFile::test_quotes PASSED [ 79%] 244s tests/translate/storage/test_rc.py::TestRcFile::test_utf16_pragma_code_page PASSED [ 79%] 244s tests/translate/storage/test_rc.py::TestRcFile::test_utf8_pragma_code_page PASSED [ 79%] 244s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_isfuzzy PASSED [ 79%] 244s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_create PASSED [ 79%] 244s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_eq PASSED [ 79%] 244s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_escapes PASSED [ 79%] 244s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_difficult_escapes PASSED [ 79%] 244s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_note_sanity PASSED [ 79%] 244s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_line_number_default PASSED [ 79%] 244s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_target PASSED [ 79%] 244s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_rich_get PASSED [ 79%] 244s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_rich_set PASSED [ 79%] 244s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_create_blank PASSED [ 79%] 244s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_add PASSED [ 79%] 244s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_remove PASSED [ 79%] 244s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_find PASSED [ 79%] 244s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_parse PASSED [ 79%] 244s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_files PASSED [ 79%] 244s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_save PASSED [ 79%] 244s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_extensions PASSED [ 79%] 244s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_mimetypes PASSED [ 79%] 244s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_translate PASSED [ 79%] 244s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_markup PASSED [ 79%] 244s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_nonascii PASSED [ 79%] 244s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_roundtrip PASSED [ 79%] 244s tests/translate/storage/test_resx.py::TestRESXUnit::test_isfuzzy PASSED [ 79%] 244s tests/translate/storage/test_resx.py::TestRESXUnit::test_create PASSED [ 79%] 244s tests/translate/storage/test_resx.py::TestRESXUnit::test_eq PASSED [ 79%] 244s tests/translate/storage/test_resx.py::TestRESXUnit::test_escapes PASSED [ 79%] 244s tests/translate/storage/test_resx.py::TestRESXUnit::test_difficult_escapes PASSED [ 79%] 244s tests/translate/storage/test_resx.py::TestRESXUnit::test_note_sanity PASSED [ 79%] 244s tests/translate/storage/test_resx.py::TestRESXUnit::test_line_number_default PASSED [ 79%] 244s tests/translate/storage/test_resx.py::TestRESXUnit::test_target PASSED [ 80%] 244s tests/translate/storage/test_resx.py::TestRESXUnit::test_rich_get PASSED [ 80%] 244s tests/translate/storage/test_resx.py::TestRESXUnit::test_rich_set PASSED [ 80%] 244s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_isfuzzy PASSED [ 80%] 244s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_create PASSED [ 80%] 244s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_eq PASSED [ 80%] 244s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_escapes PASSED [ 80%] 244s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_difficult_escapes PASSED [ 80%] 244s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_note_sanity PASSED [ 80%] 244s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_line_number_default PASSED [ 80%] 244s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_target PASSED [ 80%] 244s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_rich_get PASSED [ 80%] 244s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_rich_set PASSED [ 80%] 244s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_newunit PASSED [ 80%] 244s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_newunit_comment PASSED [ 80%] 244s tests/translate/storage/test_resx.py::TestRESXfile::test_create_blank PASSED [ 80%] 244s tests/translate/storage/test_resx.py::TestRESXfile::test_add PASSED [ 80%] 244s tests/translate/storage/test_resx.py::TestRESXfile::test_remove PASSED [ 80%] 244s tests/translate/storage/test_resx.py::TestRESXfile::test_find PASSED [ 80%] 244s tests/translate/storage/test_resx.py::TestRESXfile::test_parse PASSED [ 80%] 244s tests/translate/storage/test_resx.py::TestRESXfile::test_files PASSED [ 80%] 244s tests/translate/storage/test_resx.py::TestRESXfile::test_save PASSED [ 80%] 244s tests/translate/storage/test_resx.py::TestRESXfile::test_extensions PASSED [ 80%] 244s tests/translate/storage/test_resx.py::TestRESXfile::test_mimetypes PASSED [ 80%] 244s tests/translate/storage/test_resx.py::TestRESXfile::test_translate PASSED [ 80%] 244s tests/translate/storage/test_resx.py::TestRESXfile::test_markup PASSED [ 80%] 244s tests/translate/storage/test_resx.py::TestRESXfile::test_nonascii PASSED [ 80%] 244s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_isfuzzy PASSED [ 80%] 244s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_create PASSED [ 80%] 244s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_eq PASSED [ 80%] 244s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_escapes PASSED [ 80%] 244s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_difficult_escapes PASSED [ 80%] 244s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_note_sanity PASSED [ 80%] 244s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_line_number_default PASSED [ 80%] 244s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_target PASSED [ 80%] 244s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_rich_get PASSED [ 80%] 244s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_rich_set PASSED [ 80%] 244s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_source PASSED [ 80%] 244s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_eq_formatvaluetype PASSED [ 80%] 244s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_innerkey PASSED [ 81%] 244s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_create_blank PASSED [ 81%] 244s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_add PASSED [ 81%] 244s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_remove PASSED [ 81%] 244s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_find PASSED [ 81%] 244s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_parse PASSED [ 81%] 244s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_files PASSED [ 81%] 244s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_save PASSED [ 81%] 244s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_extensions PASSED [ 81%] 244s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_mimetypes PASSED [ 81%] 244s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_translate PASSED [ 81%] 244s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_markup PASSED [ 81%] 244s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_nonascii PASSED [ 81%] 244s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_serialize PASSED [ 81%] 244s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_default_handlings PASSED [ 81%] 244s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_filename PASSED [ 81%] 244s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_base_filename PASSED [ 81%] 244s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_filename_default_language PASSED [ 81%] 244s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_plural_zero_always_set PASSED [ 81%] 244s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_add_unit PASSED [ 81%] 244s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_create_blank PASSED [ 81%] 244s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_add PASSED [ 81%] 244s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_remove PASSED [ 81%] 244s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_find PASSED [ 81%] 244s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_parse PASSED [ 81%] 244s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_files PASSED [ 81%] 244s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_save PASSED [ 81%] 244s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_extensions PASSED [ 81%] 244s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_mimetypes PASSED [ 81%] 244s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_translate PASSED [ 81%] 244s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_markup PASSED [ 81%] 244s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_nonascii PASSED [ 81%] 244s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_ordering PASSED [ 81%] 244s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_create_blank PASSED [ 81%] 244s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_add PASSED [ 81%] 244s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_remove PASSED [ 81%] 244s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_find PASSED [ 81%] 244s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_parse PASSED [ 81%] 244s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_files PASSED [ 81%] 244s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_save PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_extensions PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_mimetypes PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_translate PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_markup PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_nonascii PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_ordering PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_note_sanity XFAIL [ 82%] 244s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_create_blank PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_add PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_remove PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_find PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_parse PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_files PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_save PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_extensions PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_mimetypes PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_translate PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_markup PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_nonascii PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_ordering PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_create_blank PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_add PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_remove PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_find PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_parse PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_files PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_save PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_extensions PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_mimetypes PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_translate PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_markup PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_nonascii PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_ordering PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_style_preservation PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_create_blank PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_add PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_remove PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_find PASSED [ 82%] 244s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_parse PASSED [ 83%] 244s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_files PASSED [ 83%] 244s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_save PASSED [ 83%] 244s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_extensions PASSED [ 83%] 244s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_mimetypes PASSED [ 83%] 244s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_translate PASSED [ 83%] 244s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_markup PASSED [ 83%] 244s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_nonascii PASSED [ 83%] 244s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_ordering PASSED [ 83%] 244s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_style_preservation PASSED [ 83%] 244s tests/translate/storage/test_tbx.py::TestTBXUnit::test_isfuzzy PASSED [ 83%] 244s tests/translate/storage/test_tbx.py::TestTBXUnit::test_create PASSED [ 83%] 244s tests/translate/storage/test_tbx.py::TestTBXUnit::test_eq PASSED [ 83%] 244s tests/translate/storage/test_tbx.py::TestTBXUnit::test_target PASSED [ 83%] 244s tests/translate/storage/test_tbx.py::TestTBXUnit::test_escapes PASSED [ 83%] 244s tests/translate/storage/test_tbx.py::TestTBXUnit::test_difficult_escapes PASSED [ 83%] 244s tests/translate/storage/test_tbx.py::TestTBXUnit::test_note_sanity PASSED [ 83%] 244s tests/translate/storage/test_tbx.py::TestTBXUnit::test_line_number_default PASSED [ 83%] 244s tests/translate/storage/test_tbx.py::TestTBXUnit::test_rich_get PASSED [ 83%] 244s tests/translate/storage/test_tbx.py::TestTBXUnit::test_rich_set PASSED [ 83%] 244s tests/translate/storage/test_tbx.py::TestTBXfile::test_create_blank PASSED [ 83%] 244s tests/translate/storage/test_tbx.py::TestTBXfile::test_add PASSED [ 83%] 244s tests/translate/storage/test_tbx.py::TestTBXfile::test_remove PASSED [ 83%] 244s tests/translate/storage/test_tbx.py::TestTBXfile::test_find PASSED [ 83%] 244s tests/translate/storage/test_tbx.py::TestTBXfile::test_translate PASSED [ 83%] 244s tests/translate/storage/test_tbx.py::TestTBXfile::test_parse PASSED [ 83%] 244s tests/translate/storage/test_tbx.py::TestTBXfile::test_files PASSED [ 83%] 244s tests/translate/storage/test_tbx.py::TestTBXfile::test_save PASSED [ 83%] 244s tests/translate/storage/test_tbx.py::TestTBXfile::test_markup PASSED [ 83%] 244s tests/translate/storage/test_tbx.py::TestTBXfile::test_nonascii PASSED [ 83%] 244s tests/translate/storage/test_tbx.py::TestTBXfile::test_extensions PASSED [ 83%] 244s tests/translate/storage/test_tbx.py::TestTBXfile::test_mimetypes PASSED [ 83%] 244s tests/translate/storage/test_tbx.py::TestTBXfile::test_basic PASSED [ 83%] 244s tests/translate/storage/test_tbx.py::TestTBXfile::test_source PASSED [ 83%] 244s tests/translate/storage/test_tbx.py::TestTBXfile::test_target PASSED [ 83%] 244s tests/translate/storage/test_tbx.py::TestTBXfile::test_setid PASSED [ 83%] 244s tests/translate/storage/test_tbx.py::TestTBXfile::test_indent PASSED [ 83%] 244s tests/translate/storage/test_tbx.py::TestTBXfile::test_descrip PASSED [ 83%] 244s tests/translate/storage/test_tbx.py::TestTBXfile::test_note_from PASSED [ 83%] 244s tests/translate/storage/test_tbx.py::TestTBXfile::test_administrative_status_and_translation_needed PASSED [ 84%] 244s tests/translate/storage/test_tiki.py::TestTikiUnit::test_locations PASSED [ 84%] 244s tests/translate/storage/test_tiki.py::TestTikiUnit::test_to_unicode PASSED [ 84%] 244s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_simple PASSED [ 84%] 244s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_encode PASSED [ 84%] 244s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_locations PASSED [ 84%] 244s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_ignore_extras PASSED [ 84%] 244s tests/translate/storage/test_tmx.py::TestTMXUnit::test_isfuzzy PASSED [ 84%] 244s tests/translate/storage/test_tmx.py::TestTMXUnit::test_create PASSED [ 84%] 244s tests/translate/storage/test_tmx.py::TestTMXUnit::test_eq PASSED [ 84%] 244s tests/translate/storage/test_tmx.py::TestTMXUnit::test_target PASSED [ 84%] 244s tests/translate/storage/test_tmx.py::TestTMXUnit::test_escapes PASSED [ 84%] 244s tests/translate/storage/test_tmx.py::TestTMXUnit::test_difficult_escapes PASSED [ 84%] 244s tests/translate/storage/test_tmx.py::TestTMXUnit::test_note_sanity PASSED [ 84%] 244s tests/translate/storage/test_tmx.py::TestTMXUnit::test_line_number_default PASSED [ 84%] 244s tests/translate/storage/test_tmx.py::TestTMXUnit::test_rich_get PASSED [ 84%] 244s tests/translate/storage/test_tmx.py::TestTMXUnit::test_rich_set PASSED [ 84%] 244s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_isfuzzy PASSED [ 84%] 244s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_create PASSED [ 84%] 244s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_eq PASSED [ 84%] 244s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_target PASSED [ 84%] 244s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_escapes PASSED [ 84%] 244s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_difficult_escapes PASSED [ 84%] 244s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_note_sanity PASSED [ 84%] 244s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_line_number_default PASSED [ 84%] 244s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_rich_get PASSED [ 84%] 244s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_rich_set PASSED [ 84%] 244s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_context PASSED [ 84%] 244s tests/translate/storage/test_tmx.py::TestTMXfile::test_create_blank PASSED [ 84%] 244s tests/translate/storage/test_tmx.py::TestTMXfile::test_add PASSED [ 84%] 244s tests/translate/storage/test_tmx.py::TestTMXfile::test_remove PASSED [ 84%] 244s tests/translate/storage/test_tmx.py::TestTMXfile::test_find PASSED [ 84%] 244s tests/translate/storage/test_tmx.py::TestTMXfile::test_parse PASSED [ 84%] 244s tests/translate/storage/test_tmx.py::TestTMXfile::test_files PASSED [ 84%] 244s tests/translate/storage/test_tmx.py::TestTMXfile::test_save PASSED [ 84%] 244s tests/translate/storage/test_tmx.py::TestTMXfile::test_markup PASSED [ 84%] 244s tests/translate/storage/test_tmx.py::TestTMXfile::test_nonascii PASSED [ 84%] 244s tests/translate/storage/test_tmx.py::TestTMXfile::test_extensions PASSED [ 84%] 244s tests/translate/storage/test_tmx.py::TestTMXfile::test_mimetypes PASSED [ 84%] 244s tests/translate/storage/test_tmx.py::TestTMXfile::test_translate PASSED [ 85%] 244s tests/translate/storage/test_tmx.py::TestTMXfile::test_addtranslation PASSED [ 85%] 244s tests/translate/storage/test_tmx.py::TestTMXfile::test_withcomment PASSED [ 85%] 244s tests/translate/storage/test_tmx.py::TestTMXfile::test_withnewlines PASSED [ 85%] 244s tests/translate/storage/test_tmx.py::TestTMXfile::test_xmlentities PASSED [ 85%] 244s tests/translate/storage/test_tmx.py::TestTMXfile::test_controls_cleaning PASSED [ 85%] 244s tests/translate/storage/test_tmx.py::TestTMXfile::test_context PASSED [ 85%] 244s tests/translate/storage/test_tmx.py::TestTMXfile::test_note_order PASSED [ 85%] 244s tests/translate/storage/test_tmx.py::TestTMXfile::test_prop_and_note_order PASSED [ 85%] 244s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_isfuzzy PASSED [ 85%] 244s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_create PASSED [ 85%] 244s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_eq PASSED [ 85%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_escapes PASSED [ 85%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_difficult_escapes PASSED [ 85%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_note_sanity PASSED [ 85%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_line_number_default PASSED [ 85%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_target PASSED [ 85%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_rich_get PASSED [ 85%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_rich_set PASSED [ 85%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_getlocations PASSED [ 85%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_create_blank PASSED [ 85%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_add PASSED [ 85%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_find PASSED [ 85%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_parse PASSED [ 85%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_files PASSED [ 85%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_save PASSED [ 85%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_extensions PASSED [ 85%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_mimetypes PASSED [ 85%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_translate PASSED [ 85%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_markup PASSED [ 85%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_nonascii PASSED [ 85%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_serialize PASSED [ 85%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_empty PASSED [ 85%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_edit PASSED [ 85%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_edit_unicode PASSED [ 85%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_parse_unicode_list PASSED [ 85%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_ordering PASSED [ 85%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_nested PASSED [ 85%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_multiline PASSED [ 85%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_boolean PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_integer PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_no_quote_strings PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_double_quote_strings PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_single_quote_strings PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_escaped_double_quotes PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_newlines PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_list PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_inline_table PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_key_nesting PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_add_to_empty PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_dict_in_list PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_remove PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_special PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_extraction_simple PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_extraction_multiline PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_no_comment_backwards_compat PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_simple PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_multiline PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_nested PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_with_modification PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_literal_string PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_multiline_basic_string PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_multiline_literal_string PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_create_blank PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_add PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_remove PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_find PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_parse PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_files PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_save PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_extensions PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_mimetypes PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_translate PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_markup PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_nonascii PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_simple_plural PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_plural_with_other_keys PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_full_plural_forms PASSED [ 86%] 245s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_roundtrip_plural PASSED [ 87%] 245s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_mixed_content PASSED [ 87%] 245s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_letsencrypt_style PASSED [ 87%] 245s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_comment_preservation_goi18n PASSED [ 87%] 245s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_comment_preservation_goi18n_plural PASSED [ 87%] 245s tests/translate/storage/test_trados.py::test_unescape PASSED [ 87%] 245s tests/translate/storage/test_trados.py::test_escape PASSED [ 87%] 245s tests/translate/storage/test_ts.py::TestTS::test_construct PASSED [ 87%] 245s tests/translate/storage/test_ts2.py::TestTSUnit::test_isfuzzy PASSED [ 87%] 245s tests/translate/storage/test_ts2.py::TestTSUnit::test_create PASSED [ 87%] 245s tests/translate/storage/test_ts2.py::TestTSUnit::test_eq PASSED [ 87%] 245s tests/translate/storage/test_ts2.py::TestTSUnit::test_target PASSED [ 87%] 245s tests/translate/storage/test_ts2.py::TestTSUnit::test_escapes PASSED [ 87%] 245s tests/translate/storage/test_ts2.py::TestTSUnit::test_difficult_escapes PASSED [ 87%] 245s tests/translate/storage/test_ts2.py::TestTSUnit::test_note_sanity PASSED [ 87%] 245s tests/translate/storage/test_ts2.py::TestTSUnit::test_line_number_default PASSED [ 87%] 245s tests/translate/storage/test_ts2.py::TestTSUnit::test_rich_get PASSED [ 87%] 245s tests/translate/storage/test_ts2.py::TestTSUnit::test_rich_set PASSED [ 87%] 245s tests/translate/storage/test_ts2.py::TestTSfile::test_create_blank PASSED [ 87%] 245s tests/translate/storage/test_ts2.py::TestTSfile::test_add PASSED [ 87%] 245s tests/translate/storage/test_ts2.py::TestTSfile::test_remove PASSED [ 87%] 245s tests/translate/storage/test_ts2.py::TestTSfile::test_find PASSED [ 87%] 245s tests/translate/storage/test_ts2.py::TestTSfile::test_translate PASSED [ 87%] 245s tests/translate/storage/test_ts2.py::TestTSfile::test_parse PASSED [ 87%] 245s tests/translate/storage/test_ts2.py::TestTSfile::test_files PASSED [ 87%] 245s tests/translate/storage/test_ts2.py::TestTSfile::test_save PASSED [ 87%] 245s tests/translate/storage/test_ts2.py::TestTSfile::test_markup PASSED [ 87%] 245s tests/translate/storage/test_ts2.py::TestTSfile::test_nonascii PASSED [ 87%] 245s tests/translate/storage/test_ts2.py::TestTSfile::test_extensions PASSED [ 87%] 245s tests/translate/storage/test_ts2.py::TestTSfile::test_mimetypes PASSED [ 87%] 245s tests/translate/storage/test_ts2.py::TestTSfile::test_basic PASSED [ 87%] 245s tests/translate/storage/test_ts2.py::TestTSfile::test_source PASSED [ 87%] 245s tests/translate/storage/test_ts2.py::TestTSfile::test_target PASSED [ 87%] 245s tests/translate/storage/test_ts2.py::TestTSfile::test_plurals PASSED [ 87%] 245s tests/translate/storage/test_ts2.py::TestTSfile::test_nplural PASSED [ 87%] 245s tests/translate/storage/test_ts2.py::TestTSfile::test_language PASSED [ 87%] 245s tests/translate/storage/test_ts2.py::TestTSfile::test_edit PASSED [ 87%] 245s tests/translate/storage/test_ts2.py::TestTSfile::test_obsolete PASSED [ 87%] 245s tests/translate/storage/test_ts2.py::TestTSfile::test_locations PASSED [ 87%] 245s tests/translate/storage/test_ts2.py::TestTSfile::test_merge_with_fuzzies PASSED [ 88%] 245s tests/translate/storage/test_ts2.py::TestTSfile::test_getid PASSED [ 88%] 245s tests/translate/storage/test_ts2.py::TestTSfile::test_backnforth PASSED [ 88%] 245s tests/translate/storage/test_ts2.py::TestTSfile::test_context PASSED [ 88%] 245s tests/translate/storage/test_ts2.py::TestTSfile::test_roundtrip_context PASSED [ 88%] 245s tests/translate/storage/test_ts2.py::TestTSfile::test_edit_missing_translation PASSED [ 88%] 245s tests/translate/storage/test_ts2.py::TestTSfile::test_missing_source PASSED [ 88%] 245s tests/translate/storage/test_txt.py::TestTxtUnit::test_isfuzzy PASSED [ 88%] 245s tests/translate/storage/test_txt.py::TestTxtUnit::test_create PASSED [ 88%] 245s tests/translate/storage/test_txt.py::TestTxtUnit::test_eq PASSED [ 88%] 245s tests/translate/storage/test_txt.py::TestTxtUnit::test_escapes PASSED [ 88%] 245s tests/translate/storage/test_txt.py::TestTxtUnit::test_difficult_escapes PASSED [ 88%] 245s tests/translate/storage/test_txt.py::TestTxtUnit::test_note_sanity PASSED [ 88%] 245s tests/translate/storage/test_txt.py::TestTxtUnit::test_line_number_default PASSED [ 88%] 245s tests/translate/storage/test_txt.py::TestTxtUnit::test_target PASSED [ 88%] 245s tests/translate/storage/test_txt.py::TestTxtUnit::test_rich_get PASSED [ 88%] 245s tests/translate/storage/test_txt.py::TestTxtUnit::test_rich_set PASSED [ 88%] 245s tests/translate/storage/test_txt.py::TestTxtFile::test_create_blank PASSED [ 88%] 245s tests/translate/storage/test_txt.py::TestTxtFile::test_add PASSED [ 88%] 245s tests/translate/storage/test_txt.py::TestTxtFile::test_remove PASSED [ 88%] 245s tests/translate/storage/test_txt.py::TestTxtFile::test_find PASSED [ 88%] 245s tests/translate/storage/test_txt.py::TestTxtFile::test_parse PASSED [ 88%] 245s tests/translate/storage/test_txt.py::TestTxtFile::test_files PASSED [ 88%] 245s tests/translate/storage/test_txt.py::TestTxtFile::test_save PASSED [ 88%] 245s tests/translate/storage/test_txt.py::TestTxtFile::test_extensions PASSED [ 88%] 245s tests/translate/storage/test_txt.py::TestTxtFile::test_mimetypes PASSED [ 88%] 245s tests/translate/storage/test_txt.py::TestTxtFile::test_translate PASSED [ 88%] 245s tests/translate/storage/test_txt.py::TestTxtFile::test_markup PASSED [ 88%] 245s tests/translate/storage/test_txt.py::TestTxtFile::test_nonascii PASSED [ 88%] 245s tests/translate/storage/test_txt.py::TestTxtFile::test_simpleblock PASSED [ 88%] 245s tests/translate/storage/test_txt.py::TestTxtFile::test_multipleblocks PASSED [ 88%] 245s tests/translate/storage/test_txt.py::TestTxtFile::test_no_segmentation PASSED [ 88%] 245s tests/translate/storage/test_utx.py::TestUtxUnit::test_isfuzzy PASSED [ 88%] 245s tests/translate/storage/test_utx.py::TestUtxUnit::test_create PASSED [ 88%] 245s tests/translate/storage/test_utx.py::TestUtxUnit::test_eq PASSED [ 88%] 245s tests/translate/storage/test_utx.py::TestUtxUnit::test_target PASSED [ 88%] 245s tests/translate/storage/test_utx.py::TestUtxUnit::test_escapes PASSED [ 88%] 245s tests/translate/storage/test_utx.py::TestUtxUnit::test_difficult_escapes PASSED [ 88%] 245s tests/translate/storage/test_utx.py::TestUtxUnit::test_note_sanity PASSED [ 88%] 245s tests/translate/storage/test_utx.py::TestUtxUnit::test_line_number_default PASSED [ 89%] 245s tests/translate/storage/test_utx.py::TestUtxUnit::test_rich_get PASSED [ 89%] 245s tests/translate/storage/test_utx.py::TestUtxUnit::test_rich_set PASSED [ 89%] 245s tests/translate/storage/test_utx.py::TestUtxFile::test_create_blank PASSED [ 89%] 245s tests/translate/storage/test_utx.py::TestUtxFile::test_add PASSED [ 89%] 245s tests/translate/storage/test_utx.py::TestUtxFile::test_remove PASSED [ 89%] 245s tests/translate/storage/test_utx.py::TestUtxFile::test_find PASSED [ 89%] 245s tests/translate/storage/test_utx.py::TestUtxFile::test_translate PASSED [ 89%] 245s tests/translate/storage/test_utx.py::TestUtxFile::test_parse PASSED [ 89%] 245s tests/translate/storage/test_utx.py::TestUtxFile::test_files PASSED [ 89%] 245s tests/translate/storage/test_utx.py::TestUtxFile::test_save PASSED [ 89%] 245s tests/translate/storage/test_utx.py::TestUtxFile::test_markup PASSED [ 89%] 245s tests/translate/storage/test_utx.py::TestUtxFile::test_nonascii PASSED [ 89%] 245s tests/translate/storage/test_utx.py::TestUtxFile::test_extensions PASSED [ 89%] 245s tests/translate/storage/test_utx.py::TestUtxFile::test_mimetypes PASSED [ 89%] 245s tests/translate/storage/test_wordfast.py::TestWFTime::test_timestring PASSED [ 89%] 245s tests/translate/storage/test_wordfast.py::TestWFTime::test_time PASSED [ 89%] 245s tests/translate/storage/test_wordfast.py::TestWFUnit::test_isfuzzy PASSED [ 89%] 245s tests/translate/storage/test_wordfast.py::TestWFUnit::test_create PASSED [ 89%] 245s tests/translate/storage/test_wordfast.py::TestWFUnit::test_eq PASSED [ 89%] 245s tests/translate/storage/test_wordfast.py::TestWFUnit::test_target PASSED [ 89%] 245s tests/translate/storage/test_wordfast.py::TestWFUnit::test_escapes PASSED [ 89%] 245s tests/translate/storage/test_wordfast.py::TestWFUnit::test_note_sanity PASSED [ 89%] 245s tests/translate/storage/test_wordfast.py::TestWFUnit::test_line_number_default PASSED [ 89%] 245s tests/translate/storage/test_wordfast.py::TestWFUnit::test_rich_get PASSED [ 89%] 245s tests/translate/storage/test_wordfast.py::TestWFUnit::test_rich_set PASSED [ 89%] 245s tests/translate/storage/test_wordfast.py::TestWFUnit::test_difficult_escapes PASSED [ 89%] 245s tests/translate/storage/test_wordfast.py::TestWFUnit::test_wordfast_escaping PASSED [ 89%] 245s tests/translate/storage/test_wordfast.py::TestWFUnit::test_newlines PASSED [ 89%] 245s tests/translate/storage/test_wordfast.py::TestWFUnit::test_language_setting PASSED [ 89%] 245s tests/translate/storage/test_wordfast.py::TestWFUnit::test_istranslated PASSED [ 89%] 245s tests/translate/storage/test_wordfast.py::TestWFFile::test_create_blank PASSED [ 89%] 245s tests/translate/storage/test_wordfast.py::TestWFFile::test_add PASSED [ 89%] 245s tests/translate/storage/test_wordfast.py::TestWFFile::test_remove PASSED [ 89%] 245s tests/translate/storage/test_wordfast.py::TestWFFile::test_find PASSED [ 89%] 245s tests/translate/storage/test_wordfast.py::TestWFFile::test_translate PASSED [ 89%] 245s tests/translate/storage/test_wordfast.py::TestWFFile::test_parse PASSED [ 89%] 245s tests/translate/storage/test_wordfast.py::TestWFFile::test_files PASSED [ 89%] 245s tests/translate/storage/test_wordfast.py::TestWFFile::test_save PASSED [ 89%] 245s tests/translate/storage/test_wordfast.py::TestWFFile::test_markup PASSED [ 90%] 245s tests/translate/storage/test_wordfast.py::TestWFFile::test_nonascii PASSED [ 90%] 245s tests/translate/storage/test_wordfast.py::TestWFFile::test_extensions PASSED [ 90%] 245s tests/translate/storage/test_wordfast.py::TestWFFile::test_mimetypes PASSED [ 90%] 245s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_isfuzzy PASSED [ 90%] 245s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_create PASSED [ 90%] 245s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_eq PASSED [ 90%] 245s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_target PASSED [ 90%] 245s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_escapes PASSED [ 90%] 245s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_difficult_escapes PASSED [ 90%] 245s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_note_sanity PASSED [ 90%] 245s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_line_number_default PASSED [ 90%] 245s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_rich_get PASSED [ 90%] 245s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_rich_set PASSED [ 90%] 245s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_markreview PASSED [ 90%] 245s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_errors PASSED [ 90%] 245s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_accepted_control_chars PASSED [ 90%] 245s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_unaccepted_control_chars PASSED [ 90%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_create_blank PASSED [ 90%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add PASSED [ 90%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_remove PASSED [ 90%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_find PASSED [ 90%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_translate PASSED [ 90%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_parse PASSED [ 90%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_files PASSED [ 90%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_save PASSED [ 90%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_markup PASSED [ 90%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_nonascii PASSED [ 90%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_extensions PASSED [ 90%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_mimetypes PASSED [ 90%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_basic PASSED [ 90%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_namespace PASSED [ 90%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_rich_source PASSED [ 90%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_rich_target PASSED [ 90%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_source PASSED [ 90%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_target PASSED [ 90%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_sourcelanguage PASSED [ 90%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_targetlanguage PASSED [ 90%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_targetlanguage_multi PASSED [ 90%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_notes PASSED [ 91%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_alttrans PASSED [ 91%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_fuzzy PASSED [ 91%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_xml_space PASSED [ 91%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_parsing PASSED [ 91%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_marktranslatable PASSED [ 91%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_entities PASSED [ 91%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_multiple_filenodes PASSED [ 91%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_groups_when_adding_units PASSED [ 91%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_multiple_files_and_groups PASSED [ 91%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_unit_to_existing_group PASSED [ 91%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_unit_to_different_file PASSED [ 91%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_mixed_groups_and_body PASSED [ 91%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_addunit_with_new_false PASSED [ 91%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_namespace_preservation_across_versions PASSED [ 91%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_units_between_different_files PASSED [ 91%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_group_preservation_across_different_namespaces PASSED [ 91%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_cross_namespace_group_and_file_preservation PASSED [ 91%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_indent PASSED [ 91%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_target PASSED [ 91%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve PASSED [ 91%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_closing_tags PASSED [ 91%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_context_groups PASSED [ 91%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_getlocations PASSED [ 91%] 245s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_addlocation PASSED [ 91%] 246s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_huge PASSED [ 91%] 246s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_add PASSED [ 91%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_isfuzzy PASSED [ 91%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_create PASSED [ 91%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_eq PASSED [ 91%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_target PASSED [ 91%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_escapes PASSED [ 91%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_difficult_escapes PASSED [ 91%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_note_sanity PASSED [ 91%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_line_number_default PASSED [ 91%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_rich_get PASSED [ 91%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_rich_set PASSED [ 91%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_notes PASSED [ 91%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_id_management PASSED [ 91%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_marktranslatable PASSED [ 92%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_create_blank PASSED [ 92%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_add PASSED [ 92%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_remove PASSED [ 92%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_find PASSED [ 92%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_translate PASSED [ 92%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_parse PASSED [ 92%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_files PASSED [ 92%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_save PASSED [ 92%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_markup PASSED [ 92%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_nonascii PASSED [ 92%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_extensions PASSED [ 92%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_mimetypes PASSED [ 92%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_basic PASSED [ 92%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_source_target PASSED [ 92%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_language_attributes PASSED [ 92%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_namespace PASSED [ 92%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_unit_structure PASSED [ 92%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_multiple_units PASSED [ 92%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_parse_xliff2 PASSED [ 92%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_parse_translate_attribute PASSED [ 92%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_multiple_segments_per_unit PASSED [ 92%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_mixed_single_and_multiple_segments PASSED [ 92%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_segments_without_ids PASSED [ 92%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_escaped_inline_tags PASSED [ 92%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_simple_source_target_pairs PASSED [ 92%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_malformed_xml_declaration PASSED [ 92%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_variable_placeholders PASSED [ 92%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_add_unit PASSED [ 92%] 246s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_states PASSED [ 92%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_isfuzzy PASSED [ 92%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_create PASSED [ 92%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_eq PASSED [ 92%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_escapes PASSED [ 92%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_difficult_escapes PASSED [ 92%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_note_sanity PASSED [ 92%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_line_number_default PASSED [ 92%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_target PASSED [ 92%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_rich_get PASSED [ 92%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_rich_set PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_getlocations PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_create_blank PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_add PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_find PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_parse PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_files PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_save PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_extensions PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_mimetypes PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_translate PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_markup PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_nonascii PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_serialize PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_empty PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_edit PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_edit_unicode PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_parse_unicode_list PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_ordering PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_initial_comments PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_string_key PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_nested PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_multiline PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_boolean PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_integer PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_no_quote_strings PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_double_quote_strings PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_single_quote_strings PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_avoid_escaping_double_quote_strings PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_avoid_escaping_single_quote_strings PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_escaped_double_quotes PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_newlines PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_abbreviated_list PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_abbreviated_dictionary PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_key_nesting PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_add_to_mepty PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_empty_key PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_dict_in_list PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_dump_args PASSED [ 93%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_anchors PASSED [ 94%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_tagged_scalar PASSED [ 94%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_numeric PASSED [ 94%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_remove PASSED [ 94%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_special PASSED [ 94%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_quotes_roundtrip PASSED [ 94%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_simple PASSED [ 94%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_multiline PASSED [ 94%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_nested PASSED [ 94%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_mixed PASSED [ 94%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_no_comment_backwards_compat PASSED [ 94%] 246s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_multiline_literal_format PASSED [ 94%] 246s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_create_blank PASSED [ 94%] 246s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_remove PASSED [ 94%] 246s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_find PASSED [ 94%] 246s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_parse PASSED [ 94%] 246s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_files PASSED [ 94%] 246s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_save PASSED [ 94%] 246s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_extensions PASSED [ 94%] 246s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_mimetypes PASSED [ 94%] 246s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_translate PASSED [ 94%] 246s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_markup PASSED [ 94%] 246s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_nonascii PASSED [ 94%] 246s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_list PASSED [ 94%] 246s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby PASSED [ 94%] 246s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_wrong PASSED [ 94%] 246s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_invalid_value PASSED [ 94%] 246s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural PASSED [ 94%] 246s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_empty PASSED [ 94%] 246s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_anchors PASSED [ 94%] 246s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_type_change PASSED [ 94%] 246s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_add PASSED [ 94%] 246s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_blank PASSED [ 94%] 246s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_partial PASSED [ 94%] 246s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_pt_br PASSED [ 94%] 246s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_bug_ruby_remove_zero_few_and_mix_others PASSED [ 94%] 246s tests/translate/storage/xml_extract/test_misc.py::test_reduce_tree PASSED [ 94%] 246s tests/translate/storage/xml_extract/test_misc.py::test_compose_mappings PASSED [ 94%] 246s tests/translate/storage/xml_extract/test_misc.py::test_parse_tag PASSED [ 94%] 246s tests/translate/storage/xml_extract/test_unit_tree.py::test__split_xpath_component PASSED [ 95%] 246s tests/translate/storage/xml_extract/test_unit_tree.py::test__split_xpath PASSED [ 95%] 246s tests/translate/storage/xml_extract/test_unit_tree.py::test__add_unit_to_tree PASSED [ 95%] 246s tests/translate/storage/xml_extract/test_xpath_breadcrumb.py::test_breadcrumb PASSED [ 95%] 246s tests/translate/tools/test_help.py::test_help[build_tmdb] SKIPPED (S...) [ 95%] 246s tests/translate/tools/test_help.py::test_help[phppo2pypo] SKIPPED (S...) [ 95%] 246s tests/translate/tools/test_help.py::test_help[poclean] SKIPPED (Skip...) [ 95%] 246s tests/translate/tools/test_help.py::test_help[pocompile] SKIPPED (Sk...) [ 95%] 246s tests/translate/tools/test_help.py::test_help[poconflicts] SKIPPED (...) [ 95%] 246s tests/translate/tools/test_help.py::test_help[pocount] SKIPPED (Skip...) [ 95%] 246s tests/translate/tools/test_help.py::test_help[podebug] SKIPPED (Skip...) [ 95%] 246s tests/translate/tools/test_help.py::test_help[pogrep] SKIPPED (Skip ...) [ 95%] 246s tests/translate/tools/test_help.py::test_help[pomerge] SKIPPED (Skip...) [ 95%] 246s tests/translate/tools/test_help.py::test_help[porestructure] SKIPPED [ 95%] 246s tests/translate/tools/test_help.py::test_help[posegment] SKIPPED (Sk...) [ 95%] 246s tests/translate/tools/test_help.py::test_help[poswap] SKIPPED (Skip ...) [ 95%] 246s tests/translate/tools/test_help.py::test_help[poterminology] SKIPPED [ 95%] 246s tests/translate/tools/test_help.py::test_help[pretranslate] SKIPPED [ 95%] 246s tests/translate/tools/test_help.py::test_help[pydiff] SKIPPED (Skip ...) [ 95%] 246s tests/translate/tools/test_help.py::test_help[pypo2phppo] SKIPPED (S...) [ 95%] 246s tests/translate/tools/test_junitmsgfmt.py::test_output[failure] PASSED [ 95%] 246s tests/translate/tools/test_junitmsgfmt.py::test_output[untranslated] PASSED [ 95%] 246s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPo::test_single_po PASSED [ 95%] 246s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPo::test_plural_po PASSED [ 95%] 246s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_single_po PASSED [ 95%] 246s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_plural_po PASSED [ 95%] 246s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_help PASSED [ 95%] 246s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_zero PASSED [ 95%] 246s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_one PASSED [ 95%] 246s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_two PASSED [ 95%] 246s tests/translate/tools/test_pocount.py::TestCount::test_punctuation_divides_words PASSED [ 95%] 246s tests/translate/tools/test_pocount.py::TestCount::test_xml_tags PASSED [ 95%] 246s tests/translate/tools/test_pocount.py::TestCount::test_newlines PASSED [ 95%] 246s tests/translate/tools/test_pocount.py::TestCount::test_variables_are_words PASSED [ 95%] 246s tests/translate/tools/test_pocount.py::TestCount::test_plurals PASSED [ 95%] 246s tests/translate/tools/test_pocount.py::TestCount::test_plurals_kde XFAIL [ 95%] 246s tests/translate/tools/test_pocount.py::TestCount::test_msgid_blank PASSED [ 95%] 246s tests/translate/tools/test_pocount.py::TestPOCount::test_translated PASSED [ 95%] 246s tests/translate/tools/test_pocount.py::TestPOCount::test_fuzzy PASSED [ 95%] 246s tests/translate/tools/test_pocount.py::TestPOCount::test_untranslated PASSED [ 96%] 246s tests/translate/tools/test_pocount.py::TestPOCount::test_total PASSED [ 96%] 246s tests/translate/tools/test_pocount.py::TestPOCount::test_translatedsourcewords PASSED [ 96%] 246s tests/translate/tools/test_pocount.py::TestPOCount::test_fuzzysourcewords PASSED [ 96%] 246s tests/translate/tools/test_pocount.py::TestPOCount::test_untranslatedsourcewords PASSED [ 96%] 246s tests/translate/tools/test_pocount.py::TestPOCount::test_totalsourcewords PASSED [ 96%] 246s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-csv] PASSED [ 96%] 246s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-full] PASSED [ 96%] 246s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-short-strings] PASSED [ 96%] 246s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-short-words] PASSED [ 96%] 246s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-csv] PASSED [ 96%] 246s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-full] PASSED [ 96%] 246s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-short-strings] PASSED [ 96%] 246s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-short-words] PASSED [ 96%] 246s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-csv] PASSED [ 96%] 246s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-full] PASSED [ 96%] 246s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-short-strings] PASSED [ 96%] 246s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-short-words] PASSED [ 96%] 246s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-csv] PASSED [ 96%] 246s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-full] PASSED [ 96%] 246s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-short-strings] PASSED [ 96%] 246s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-short-words] PASSED [ 96%] 246s tests/translate/tools/test_pocount.py::test_cases[po-file] PASSED [ 96%] 246s tests/translate/tools/test_pocount.py::test_cases[po-file-fuzzy] PASSED [ 96%] 246s tests/translate/tools/test_pocount.py::test_cases[po-file-csv] PASSED [ 96%] 246s tests/translate/tools/test_pocount.py::test_cases[xliff-states-yes] PASSED [ 96%] 246s tests/translate/tools/test_pocount.py::test_cases[xliff-states-no] PASSED [ 96%] 246s tests/translate/tools/test_pocount.py::test_error_cases[mutually-exclusive] PASSED [ 96%] 246s tests/translate/tools/test_pocount.py::test_error_cases[missing-file] PASSED [ 96%] 246s tests/translate/tools/test_pocount.py::test_error_cases[no-args] PASSED [ 96%] 246s tests/translate/tools/test_pocount.py::test_csv_line_terminator PASSED [ 96%] 246s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_fuzzy_with_target PASSED [ 96%] 246s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_fuzzy_without_target PASSED [ 96%] 246s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_translated_not_fuzzy PASSED [ 96%] 246s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_untranslated_empty_target PASSED [ 96%] 246s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_categorization_mutually_exclusive PASSED [ 96%] 246s tests/translate/tools/test_pocount.py::TestPOCountLineEndings::test_unusual_line_endings PASSED [ 96%] 246s tests/translate/tools/test_podebug.py::TestPODebug::test_ignore_gtk PASSED [ 96%] 246s tests/translate/tools/test_podebug.py::TestPODebug::test_keep_target PASSED [ 96%] 246s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank PASSED [ 97%] 246s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank_clears_fuzzy PASSED [ 97%] 246s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank_with_plurals PASSED [ 97%] 246s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_en PASSED [ 97%] 246s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_xxx PASSED [ 97%] 246s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_bracket PASSED [ 97%] 246s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode PASSED [ 97%] 246s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_at_placeholders PASSED [ 97%] 246s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_single_brace_placeholders PASSED [ 97%] 246s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_double_brace_placeholders PASSED [ 97%] 246s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_html PASSED [ 97%] 246s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_multiple_styles_of_placeholder PASSED [ 97%] 246s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped PASSED [ 97%] 246s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_at_placeholders PASSED [ 97%] 246s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_single_brace_placeholders PASSED [ 97%] 246s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_double_brace_placeholders PASSED [ 97%] 246s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_html PASSED [ 97%] 246s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_multiple_styles_of_placeholder PASSED [ 97%] 246s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified PASSED [ 97%] 246s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_at_placeholders PASSED [ 97%] 246s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_single_brace_placeholders PASSED [ 97%] 246s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_double_brace_placeholders PASSED [ 97%] 246s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_html PASSED [ 97%] 246s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_multiple_styles_of_placeholder PASSED [ 97%] 246s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_chef PASSED [ 97%] 246s tests/translate/tools/test_podebug.py::TestPODebug::test_po_variables PASSED [ 97%] 246s tests/translate/tools/test_podebug.py::TestPODebug::test_xliff_rewrite PASSED [ 97%] 246s tests/translate/tools/test_podebug.py::TestPODebug::test_hash PASSED [ 97%] 246s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_msgid PASSED [ 97%] 246s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_msgstr PASSED [ 97%] 246s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_locations PASSED [ 97%] 246s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_comments PASSED [ 97%] 246s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_locations_with_comment_enabled PASSED [ 97%] 246s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_message_searchstring PASSED [ 97%] 246s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_message_regex_searchstring PASSED [ 97%] 246s tests/translate/tools/test_pogrep.py::TestPOGrep::test_keep_translations PASSED [ 97%] 246s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_normalise PASSED [ 97%] 247s tests/translate/tools/test_pogrep.py::TestXLiffGrep::test_simplegrep PASSED [ 97%] 247s tests/translate/tools/test_pomerge.py::test_str2bool PASSED [ 97%] 247s tests/translate/tools/test_pomerge.py::TestPOMerge::test_mergesore_bad_data PASSED [ 98%] 247s tests/translate/tools/test_pomerge.py::TestPOMerge::test_simplemerge PASSED [ 98%] 247s tests/translate/tools/test_pomerge.py::TestPOMerge::test_simplemerge_no_locations PASSED [ 98%] 247s tests/translate/tools/test_pomerge.py::TestPOMerge::test_replacemerge PASSED [ 98%] 247s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_blanks PASSED [ 98%] 247s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_fuzzies PASSED [ 98%] 247s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_locations PASSED [ 98%] 247s tests/translate/tools/test_pomerge.py::TestPOMerge::test_unit_missing_in_template_with_locations PASSED [ 98%] 247s tests/translate/tools/test_pomerge.py::TestPOMerge::test_unit_missing_in_template_no_locations PASSED [ 98%] 247s tests/translate/tools/test_pomerge.py::TestPOMerge::test_reflowed_source_comments PASSED [ 98%] 247s tests/translate/tools/test_pomerge.py::TestPOMerge::test_comments_with_blank_lines PASSED [ 98%] 247s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merge_dont_delete_unassociated_comments PASSED [ 98%] 247s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_trailing_newlines PASSED [ 98%] 247s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_minor_start_and_end_of_sentence_changes PASSED [ 98%] 247s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_last_entry_in_a_file PASSED [ 98%] 247s tests/translate/tools/test_pomerge.py::TestPOMerge::test_escape_tabs XFAIL [ 98%] 247s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_comments_layout PASSED [ 98%] 247s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merge_dos2unix PASSED [ 98%] 247s tests/translate/tools/test_pomerge.py::TestPOMerge::test_xliff_into_xliff PASSED [ 98%] 247s tests/translate/tools/test_pomerge.py::TestPOMerge::test_po_into_xliff PASSED [ 98%] 247s tests/translate/tools/test_pomerge.py::TestPOMerge::test_xliff_into_po PASSED [ 98%] 247s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_dont_merge_kde_comments_found_in_translation PASSED [ 98%] 247s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_untranslated_with_kde_disambiguation PASSED [ 98%] 247s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_header_entries PASSED [ 98%] 247s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_different_locations PASSED [ 98%] 247s tests/translate/tools/test_posegment.py::TestPOSegment::test_en_ja_simple PASSED [ 98%] 247s tests/translate/tools/test_posegment.py::TestPOSegment::test_en_ja_punctuation PASSED [ 98%] 247s tests/translate/tools/test_posegment.py::TestPOSegment::test_transifex_po PASSED [ 98%] 247s tests/translate/tools/test_posegment.py::TestXLIFFSegment::test_xliff_en_simple PASSED [ 98%] 247s tests/translate/tools/test_posegment.py::TestXLIFFSegment::test_xliff_untranslated PASSED [ 98%] 247s tests/translate/tools/test_posegment.py::TestTMXSegment::test_tmx_en_simple PASSED [ 98%] 247s tests/translate/tools/test_poterminology.py::TestPOTerminology::test_term_extraction PASSED [ 98%] 247s tests/translate/tools/test_poterminology.py::TestPOTerminology::test_unitinfo_stores_minimal_data PASSED [ 98%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_pretranslatepo_blank PASSED [ 98%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_simple PASSED [ 98%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_messages_marked_fuzzy PASSED [ 98%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_plurals_with_fuzzy_matching PASSED [ 98%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgid_change XFAIL [ 98%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_location_change PASSED [ 98%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_location_and_whitespace_change PASSED [ 99%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_accelerator_changes XFAIL [ 99%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_lines_cut_differently XFAIL [ 99%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_automatic_comments_dont_duplicate PASSED [ 99%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_automatic_comments_new_overrides_old PASSED [ 99%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_comments_with_blank_comment_lines PASSED [ 99%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_empty_commentlines PASSED [ 99%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgidcomments PASSED [ 99%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_plurals PASSED [ 99%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_resurrect_obsolete_messages PASSED [ 99%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_comments PASSED [ 99%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_typecomments PASSED [ 99%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_xliff_states PASSED [ 99%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_pretranslatepo_blank PASSED [ 99%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_simple PASSED [ 99%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_messages_marked_fuzzy PASSED [ 99%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_plurals_with_fuzzy_matching PASSED [ 99%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgid_change XFAIL [ 99%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_location_change PASSED [ 99%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_location_and_whitespace_change PASSED [ 99%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_accelerator_changes XFAIL [ 99%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_lines_cut_differently XFAIL [ 99%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_automatic_comments_dont_duplicate PASSED [ 99%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_automatic_comments_new_overrides_old PASSED [ 99%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_comments_with_blank_comment_lines PASSED [ 99%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_empty_commentlines PASSED [ 99%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgidcomments PASSED [ 99%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_plurals PASSED [ 99%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_resurrect_obsolete_messages PASSED [ 99%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_comments PASSED [ 99%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_typecomments PASSED [ 99%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_xliff_states PASSED [ 99%] 247s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_help PASSED [ 99%] 247s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPo::test_single_po PASSED [ 99%] 247s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPo::test_plural_po PASSED [ 99%] 247s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_single_po PASSED [ 99%] 247s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_plural_po PASSED [ 99%] 247s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_help PASSED [ 99%] 247s tests/xliff_conformance/test_xliff_conformance.py::test_open_office_to_xliff SKIPPED [ 99%] 247s tests/xliff_conformance/test_xliff_conformance.py::test_po_to_xliff SKIPPED [100%] 247s 247s =============================== warnings summary =============================== 247s tests/odf_xliff/test_odf_xliff.py::test_roundtrip 247s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.g1gmkF/autopkgtest_tmp/tests/odf_xliff/test_2.odt'> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_convertandroid 247s Warning: unclosed file <_io.TextIOWrapper name='TestAndroid2POCommand_test_convertandroid/en.po' mode='r' encoding='UTF-8'> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder 247s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder 247s Warning: unclosed file <_io.TextIOWrapper name='TestCSV2POCommand_test_columnorder/test.po' mode='r' encoding='UTF-8'> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_pot 247s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_pot/simple.pot'> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_po 247s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_po 247s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_po/simple.po'> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_remove_duplicates 247s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_remove_duplicates/simple.po'> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_xlf 247s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_xlf/simple.xlf'> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder 247s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder 247s Warning: unclosed file <_io.TextIOWrapper name='TestPO2CSVCommand_test_columnorder/test.csv' mode='r' encoding='UTF-8'> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_context 247s Warning: unclosed file <_io.TextIOWrapper name='TestPO2CSVCommand_test_context/test.csv' mode='r' encoding='UTF-8'> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing 247s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey 247s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey 247s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing 247s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey 247s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_amp_no_accesskey 247s Warning: Could not find accesskey for key.accesskey 247s 247s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified 247s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file 247s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file_and_templates_overwritten 247s Warning: unclosed file <_io.BufferedReader name='translation/file1.po'> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified 247s Warning: unclosed file <_io.BufferedWriter name='translated/file1.html'> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_convert 247s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.g1gmkF/autopkgtest_tmp/tests/translate/convert/test.idml'> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_with_single_po 247s Warning: unclosed file <_io.BufferedReader name='translation.po'> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert 247s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert_with_multiple_units 247s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert 247s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.g1gmkF/autopkgtest_tmp/tests/translate/convert/test.odt'> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_simple 247s Warning: unclosed file <_io.FileIO name='input.oo' mode='rb' closefd=True> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_simple 247s Warning: unclosed file <_io.FileIO name='output.oo' mode='wb' closefd=True> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey 247s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys_missing_accesskey 247s Warning: Could not find accesskey for prop.accesskey 247s 247s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_context 247s Warning: unclosed file <_io.BufferedReader name='test.po'> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_context 247s Warning: unclosed file <_io.TextIOWrapper name='TestPO2TMXCommand_test_context/test.tmx' mode='r' encoding='UTF-8'> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert 247s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert/simple.po'> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf16 247s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_utf16/simple.po'> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 247s Warning: unclosed file <_io.BufferedWriter name='simple.po'> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 247s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 247s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_wrong/simple.po'> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf8 247s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_utf8/simple.po'> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_menuex 247s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_menuex/simple.po'> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_pot 247s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_simple_pot/simple.pot'> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_po 247s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_simple_po/simple.po'> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_remove_duplicates 247s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_remove_duplicates/simple.po'> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_preserve_filename 247s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_preserve_filename/snippet.xlf'> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_pot 247s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_simple_pot/simple.pot'> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_po 247s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_simple_po/simple.po'> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_remove_duplicates 247s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_remove_duplicates/simple.po'> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers 247s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers 247s tests/translate/filters/test_checks.py::test_noaccelerators_only_in_mozilla_checker 247s tests/translate/filters/test_checks.py::test_ensure_accelerators_not_in_target_if_not_in_source 247s Warning: The 'u' type code is deprecated and will be removed in Python 3.16 247s 247s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_save_bundle 247s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_save_bundle 247s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpltcv7o2d_test.txt'> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_cross_device_save 247s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_cross_device_save 247s Warning: unclosed file <_io.BufferedReader name='/tmp/tmp91wgc5j1_crossdevice.txt'> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_replace_project_zip 247s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_replace_project_zip 247s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpcc8j_uss_initial.txt'> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 247s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 247s Warning: unclosed file <_io.BufferedReader name='/tmp/tmp8cp_x1eq_load_test.txt'> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 247s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 247s Warning: unclosed file <_io.BufferedReader name='/tmp/tmphotlzm7o_load_test.txt'> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 247s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 247s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpaqcs4dfq_file0.txt'> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 247s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 247s Warning: unclosed file <_io.BufferedReader name='/tmp/tmp_5ca_y2j_file1.txt'> 247s Enable tracemalloc to get traceback where the object was allocated. 247s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 247s 247s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 247s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 247s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpdpm1zmiz_file2.txt'> 247s Enable tracemalloc to get traceback where the object was allocated. 248s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 248s 248s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting 248s Warning: DTD parse error: :1:35:FATAL:PARSER:ERR_ENTITY_NOT_FINISHED: xmlParseEntityDecl: entity test.me not terminated 248s :1:35:FATAL:PARSER:ERR_EXT_SUBSET_NOT_FINISHED: Content error in the external subset 248s 248s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting 248s Warning: DTD file '' does not validate 248s 248s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 248s --------------------------- snapshot report summary ---------------------------- 248s 23 snapshots passed. 248s =========================== short test summary info ============================ 248s SKIPPED [1] tests/translate/storage/test_cpo.py:15: could not import 'translate.storage.cpo': gettext PO library not found 248s SKIPPED [1] tests/translate/storage/test_fluent.py:29: could not import 'translate.storage.fluent': No module named 'fluent' 248s SKIPPED [1] tests/translate/filters/test_checks.py:1429: Spell checking for af is not available 248s SKIPPED [1] tests/translate/storage/test_mo.py:512: Skip testing command line tools 248s SKIPPED [16] tests/translate/tools/test_help.py:16: Skip testing command line tools 248s SKIPPED [1] tests/xliff_conformance/test_xliff_conformance.py:47: Skip testing command line tools 248s SKIPPED [1] tests/xliff_conformance/test_xliff_conformance.py:57: Skip testing command line tools 248s XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accelerator_keys_not_in_sentence - Not Implemented 248s XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accelerator_keys_not_in_sentence - Not Implemented 248s XFAIL tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_table - https://github.com/miyuchina/mistletoe/issues/244 248s XFAIL tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_propertyless_template - Need to review if we want this behaviour 248s XFAIL tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_propertyless_template - Need to review if we want this behaviour 248s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_change - Not implemented - review if this is even correct 248s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_accelerator_changes - Not Implemented - needs review 248s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_lines_cut_differently - Not Implemented - review if this is even correct 248s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_change - Not implemented - review if this is even correct 248s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_accelerator_changes - Not Implemented - needs review 248s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_lines_cut_differently - Not Implemented - review if this is even correct 248s XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_no_duplicates - This is invalid YAML document 248s XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_no_duplicates - This is invalid YAML document 248s XFAIL tests/translate/filters/test_checks.py::test_acceleratedvariables - Accelerated variables needs a better implementation 248s XFAIL tests/translate/filters/test_checks.py::test_musttranslatewords - FIXME: All fails() tests are not working 248s XFAIL tests/translate/filters/test_checks.py::test_persian_single_and_double_quote_fail_at_the_same_time - Bug #3408 248s XFAIL tests/translate/filters/test_checks.py::test_bengali_mozilla_inverted_xmltags - Bug #3506 248s XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_general_placeables - Test needs fixing, disabled for now 248s XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_xliff_placeables - Test needs fixing, disabled for now 248s XFAIL tests/translate/storage/test_dtd.py::test_quotefordtd_unimplemented_cases - Not Implemented 248s XFAIL tests/translate/storage/test_dtd.py::test_unquotefromdtd_unimplemented_cases - Not Implemented 248s XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_comment_following - Not Implemented 248s XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting - Not Implemented 248s 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 248s XFAIL tests/translate/storage/test_po.py::TestPOFile::test_kde_plurals - Not Implemented 248s XFAIL tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo 248s XFAIL tests/translate/storage/test_properties.py::TestXWikiFullPage::test_remove - removal not working in full page 248s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_plurals - Not Implemented 248s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo 248s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_typecomment - Not sure if this can not be parsed gracefully 248s XFAIL tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_note_sanity - Not Implemented 248s XFAIL tests/translate/tools/test_pocount.py::TestCount::test_plurals_kde - Support commented out pending removal 248s XFAIL tests/translate/tools/test_pomerge.py::TestPOMerge::test_escape_tabs - Not Implemented 248s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgid_change - Not Implemented 248s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_accelerator_changes - Not Implemented 248s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_lines_cut_differently - Not Implemented 248s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgid_change - Not Implemented 248s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_accelerator_changes - Not Implemented 248s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_lines_cut_differently - Not Implemented 248s ========== 3843 passed, 22 skipped, 39 xfailed, 69 warnings in 17.98s ========== 249s autopkgtest [05:42:10]: test python3-translate: -----------------------] 249s python3-translate PASS 249s autopkgtest [05:42:10]: test python3-translate: - - - - - - - - - - results - - - - - - - - - - 250s autopkgtest [05:42:11]: test python3-translate-commands: preparing testbed 269s Creating nova instance adt-resolute-arm64-translate-toolkit-20260130-053801-juju-7f2275-prod-proposed-migration-environment-20-7158e1f5-5e15-4511-85b1-a01ac0c9050e from image adt/ubuntu-resolute-arm64-server-20260130.img (UUID d80a3628-95a8-4c17-a25a-26b02882b363)... 322s autopkgtest [05:43:23]: testbed dpkg architecture: arm64 322s autopkgtest [05:43:23]: testbed apt version: 3.1.14 322s autopkgtest [05:43:23]: @@@@@@@@@@@@@@@@@@@@ test bed setup 322s autopkgtest [05:43:23]: testbed release detected to be: resolute 323s autopkgtest [05:43:24]: updating testbed package index (apt update) 324s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 324s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 324s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 324s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 324s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [103 kB] 324s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [33.0 kB] 324s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [2820 B] 324s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [1600 kB] 324s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 Packages [120 kB] 324s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 c-n-f Metadata [4364 B] 324s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/restricted arm64 Packages [12.3 kB] 324s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/restricted arm64 c-n-f Metadata [328 B] 324s Get:13 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 Packages [1166 kB] 324s Get:14 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 c-n-f Metadata [21.9 kB] 324s Get:15 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse arm64 Packages [25.4 kB] 324s Get:16 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse arm64 c-n-f Metadata [720 B] 327s Fetched 3215 kB in 1s (3756 kB/s) 328s Reading package lists... 328s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 328s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 328s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 328s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 329s Reading package lists... 329s Reading package lists... 330s Building dependency tree... 330s Reading state information... 330s Calculating upgrade... 330s The following packages will be upgraded: 330s bzip2 inetutils-telnet libbz2-1.0 libsqlite3-0 telnet 330s 5 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 330s Need to get 888 kB of archives. 330s After this operation, 2048 B of additional disk space will be used. 330s Get:1 http://ftpmaster.internal/ubuntu resolute/main arm64 bzip2 arm64 1.0.8-6build2 [34.0 kB] 330s Get:2 http://ftpmaster.internal/ubuntu resolute/main arm64 libbz2-1.0 arm64 1.0.8-6build2 [34.9 kB] 330s Get:3 http://ftpmaster.internal/ubuntu resolute/main arm64 libsqlite3-0 arm64 3.46.1-9 [711 kB] 330s Get:4 http://ftpmaster.internal/ubuntu resolute/main arm64 inetutils-telnet arm64 2:2.7-2ubuntu1 [104 kB] 330s Get:5 http://ftpmaster.internal/ubuntu resolute/main arm64 telnet all 0.17+2.7-2ubuntu1 [3636 B] 331s dpkg-preconfigure: unable to re-open stdin: No such file or directory 331s Fetched 888 kB in 0s (15.8 MB/s) 331s (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 ... 135255 files and directories currently installed.) 331s Preparing to unpack .../bzip2_1.0.8-6build2_arm64.deb ... 331s Unpacking bzip2 (1.0.8-6build2) over (1.0.8-6build1) ... 331s Preparing to unpack .../libbz2-1.0_1.0.8-6build2_arm64.deb ... 331s Unpacking libbz2-1.0:arm64 (1.0.8-6build2) over (1.0.8-6build1) ... 331s Setting up libbz2-1.0:arm64 (1.0.8-6build2) ... 331s (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 ... 135255 files and directories currently installed.) 331s Preparing to unpack .../libsqlite3-0_3.46.1-9_arm64.deb ... 331s Unpacking libsqlite3-0:arm64 (3.46.1-9) over (3.46.1-8) ... 331s Preparing to unpack .../inetutils-telnet_2%3a2.7-2ubuntu1_arm64.deb ... 331s Unpacking inetutils-telnet (2:2.7-2ubuntu1) over (2:2.6-4ubuntu1) ... 331s Preparing to unpack .../telnet_0.17+2.7-2ubuntu1_all.deb ... 331s Unpacking telnet (0.17+2.7-2ubuntu1) over (0.17+2.6-4ubuntu1) ... 331s Setting up libsqlite3-0:arm64 (3.46.1-9) ... 331s Setting up inetutils-telnet (2:2.7-2ubuntu1) ... 331s Setting up bzip2 (1.0.8-6build2) ... 331s Setting up telnet (0.17+2.7-2ubuntu1) ... 331s Processing triggers for man-db (2.13.1-1) ... 332s Processing triggers for libc-bin (2.42-2ubuntu4) ... 332s autopkgtest [05:43:33]: upgrading testbed (apt dist-upgrade and autopurge) 332s Reading package lists... 332s Building dependency tree... 332s Reading state information... 333s Calculating upgrade... 333s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 333s Reading package lists... 334s Building dependency tree... 334s Reading state information... 334s Solving dependencies... 334s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 337s Reading package lists... 337s Building dependency tree... 337s Reading state information... 337s Solving dependencies... 337s The following NEW packages will be installed: 337s dictionaries-common emacsen-common gettext hunspell-en-us libapr1t64 337s libaprutil1t64 libaspell15 libenchant-2-2 libexttextcat-data libgomp1 337s libhunspell-1.7-0 libpython3.14-minimal libpython3.14-stdlib libserf-1-1 337s libsvn1 libutf8proc3 libxapian30 libxslt1.1 python3-aeidon python3-all 337s python3-bs4 python3-charset-normalizer python3-cheroot 337s python3-diff-match-patch python3-enchant python3-iniconfig python3-iniparse 337s python3-levenshtein python3-lxml python3-mistletoe python3-phply 337s python3-pluggy python3-ply python3-pycountry python3-pytest python3-pytz 337s python3-rapidfuzz python3-ruamel.yaml python3-ruamel.yaml.clib 337s python3-soupsieve python3-syrupy python3-tomlkit python3-translate 337s python3-unicode-segmentation-rs python3-vobject python3-xapian python3.14 337s python3.14-minimal subversion translate-toolkit 338s 0 upgraded, 50 newly installed, 0 to remove and 0 not upgraded. 338s Need to get 19.3 MB of archives. 338s After this operation, 90.9 MB of additional disk space will be used. 338s Get:1 http://ftpmaster.internal/ubuntu resolute/main arm64 libpython3.14-minimal arm64 3.14.2-1 [917 kB] 338s Get:2 http://ftpmaster.internal/ubuntu resolute/main arm64 python3.14-minimal arm64 3.14.2-1 [2548 kB] 338s Get:3 http://ftpmaster.internal/ubuntu resolute/main arm64 emacsen-common all 3.0.8 [13.9 kB] 338s Get:4 http://ftpmaster.internal/ubuntu resolute/main arm64 dictionaries-common all 1.31.3 [179 kB] 338s Get:5 http://ftpmaster.internal/ubuntu resolute/main arm64 libgomp1 arm64 15.2.0-12ubuntu1 [147 kB] 338s Get:6 http://ftpmaster.internal/ubuntu resolute/main arm64 gettext arm64 0.23.2-1 [998 kB] 338s Get:7 http://ftpmaster.internal/ubuntu resolute/main arm64 hunspell-en-us all 1:2020.12.07-4build1 [585 kB] 338s Get:8 http://ftpmaster.internal/ubuntu resolute/main arm64 libapr1t64 arm64 1.7.6-3 [107 kB] 338s Get:9 http://ftpmaster.internal/ubuntu resolute/main arm64 libaprutil1t64 arm64 1.6.3-3ubuntu3 [92.9 kB] 338s Get:10 http://ftpmaster.internal/ubuntu resolute/main arm64 libaspell15 arm64 0.60.8.1-6 [314 kB] 338s Get:11 http://ftpmaster.internal/ubuntu resolute/main arm64 libhunspell-1.7-0 arm64 1.7.2+really1.7.2-11 [300 kB] 338s Get:12 http://ftpmaster.internal/ubuntu resolute/main arm64 libenchant-2-2 arm64 2.8.2+dfsg1-3build1 [57.8 kB] 338s Get:13 http://ftpmaster.internal/ubuntu resolute/main arm64 libexttextcat-data all 3.4.7-1ubuntu2 [193 kB] 338s Get:14 http://ftpmaster.internal/ubuntu resolute/main arm64 libpython3.14-stdlib arm64 3.14.2-1 [2351 kB] 338s Get:15 http://ftpmaster.internal/ubuntu resolute/universe arm64 libserf-1-1 arm64 1.3.10-3ubuntu1 [48.7 kB] 338s Get:16 http://ftpmaster.internal/ubuntu resolute/universe arm64 libutf8proc3 arm64 2.10.0-2 [71.3 kB] 338s Get:17 http://ftpmaster.internal/ubuntu resolute/universe arm64 libsvn1 arm64 1.14.5-5 [1334 kB] 338s Get:18 http://ftpmaster.internal/ubuntu resolute/universe arm64 libxapian30 arm64 1.4.29-3 [684 kB] 338s Get:19 http://ftpmaster.internal/ubuntu resolute/main arm64 libxslt1.1 arm64 1.1.43-0.3 [172 kB] 338s Get:20 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-aeidon all 1.15-2build1 [225 kB] 338s Get:21 http://ftpmaster.internal/ubuntu resolute/main arm64 python3.14 arm64 3.14.2-1 [816 kB] 338s Get:22 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-all arm64 3.13.9-3 [890 B] 338s Get:23 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-soupsieve all 2.8.3-1 [34.0 kB] 338s Get:24 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-bs4 all 4.14.3-2build1 [84.8 kB] 338s Get:25 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-charset-normalizer arm64 3.4.4-2 [169 kB] 338s Get:26 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-cheroot all 11.1.2+ds1-1 [81.5 kB] 338s Get:27 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-diff-match-patch all 20241021-1 [33.6 kB] 338s Get:28 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-enchant all 3.3.0-1 [35.0 kB] 338s Get:29 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-iniconfig all 2.1.0-2 [6962 B] 338s Get:30 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-rapidfuzz arm64 3.12.2+ds-1build1 [1368 kB] 338s Get:31 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-levenshtein arm64 0.27.1-2build1 [132 kB] 338s Get:32 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-lxml arm64 6.0.2-1 [2155 kB] 338s Get:33 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-mistletoe all 1.5.1-1 [41.7 kB] 338s Get:34 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-ply all 3.11-10 [45.9 kB] 338s Get:35 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-phply all 1.2.6-1build1 [50.6 kB] 338s Get:36 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pluggy all 1.6.0-2 [21.1 kB] 338s Get:37 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pytest all 9.0.2-2 [277 kB] 338s Get:38 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pytz all 2025.2-5 [32.4 kB] 338s Get:39 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-ruamel.yaml.clib arm64 0.2.15+ds-1 [178 kB] 338s Get:40 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 python3-ruamel.yaml all 0.18.10+ds-1build1 [127 kB] 338s Get:41 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-syrupy all 5.0.0-1 [47.9 kB] 338s Get:42 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-tomlkit all 0.13.3-2 [39.1 kB] 338s Get:43 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-translate all 3.18.1-1 [339 kB] 338s Get:44 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-unicode-segmentation-rs arm64 0.2.1-1 [211 kB] 338s Get:45 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-vobject all 0.9.9+dfsg-1 [41.5 kB] 338s Get:46 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-xapian arm64 1.4.29-1build1 [561 kB] 338s Get:47 http://ftpmaster.internal/ubuntu resolute/universe arm64 subversion arm64 1.14.5-5 [895 kB] 338s Get:48 http://ftpmaster.internal/ubuntu resolute/universe arm64 translate-toolkit all 3.18.1-1 [83.7 kB] 338s Get:49 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-iniparse all 0.5.1-2 [21.4 kB] 338s Get:50 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pycountry all 24.6.1+ds1-1 [30.0 kB] 339s Preconfiguring packages ... 339s Fetched 19.3 MB in 1s (19.5 MB/s) 339s Selecting previously unselected package libpython3.14-minimal:arm64. 339s (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 ... 135255 files and directories currently installed.) 339s Preparing to unpack .../00-libpython3.14-minimal_3.14.2-1_arm64.deb ... 339s Unpacking libpython3.14-minimal:arm64 (3.14.2-1) ... 339s Selecting previously unselected package python3.14-minimal. 339s Preparing to unpack .../01-python3.14-minimal_3.14.2-1_arm64.deb ... 339s Unpacking python3.14-minimal (3.14.2-1) ... 339s Selecting previously unselected package emacsen-common. 339s Preparing to unpack .../02-emacsen-common_3.0.8_all.deb ... 339s Unpacking emacsen-common (3.0.8) ... 339s Selecting previously unselected package dictionaries-common. 339s Preparing to unpack .../03-dictionaries-common_1.31.3_all.deb ... 339s Adding 'diversion of /usr/share/dict/words to /usr/share/dict/words.pre-dictionaries-common by dictionaries-common' 339s Unpacking dictionaries-common (1.31.3) ... 339s Selecting previously unselected package libgomp1:arm64. 339s Preparing to unpack .../04-libgomp1_15.2.0-12ubuntu1_arm64.deb ... 339s Unpacking libgomp1:arm64 (15.2.0-12ubuntu1) ... 339s Selecting previously unselected package gettext. 339s Preparing to unpack .../05-gettext_0.23.2-1_arm64.deb ... 339s Unpacking gettext (0.23.2-1) ... 339s Selecting previously unselected package hunspell-en-us. 339s Preparing to unpack .../06-hunspell-en-us_1%3a2020.12.07-4build1_all.deb ... 339s Unpacking hunspell-en-us (1:2020.12.07-4build1) ... 339s Selecting previously unselected package libapr1t64:arm64. 339s Preparing to unpack .../07-libapr1t64_1.7.6-3_arm64.deb ... 339s Unpacking libapr1t64:arm64 (1.7.6-3) ... 339s Selecting previously unselected package libaprutil1t64:arm64. 339s Preparing to unpack .../08-libaprutil1t64_1.6.3-3ubuntu3_arm64.deb ... 339s Unpacking libaprutil1t64:arm64 (1.6.3-3ubuntu3) ... 339s Selecting previously unselected package libaspell15:arm64. 339s Preparing to unpack .../09-libaspell15_0.60.8.1-6_arm64.deb ... 339s Unpacking libaspell15:arm64 (0.60.8.1-6) ... 340s Selecting previously unselected package libhunspell-1.7-0:arm64. 340s Preparing to unpack .../10-libhunspell-1.7-0_1.7.2+really1.7.2-11_arm64.deb ... 340s Unpacking libhunspell-1.7-0:arm64 (1.7.2+really1.7.2-11) ... 340s Selecting previously unselected package libenchant-2-2:arm64. 340s Preparing to unpack .../11-libenchant-2-2_2.8.2+dfsg1-3build1_arm64.deb ... 340s Unpacking libenchant-2-2:arm64 (2.8.2+dfsg1-3build1) ... 340s Selecting previously unselected package libexttextcat-data. 340s Preparing to unpack .../12-libexttextcat-data_3.4.7-1ubuntu2_all.deb ... 340s Unpacking libexttextcat-data (3.4.7-1ubuntu2) ... 340s Selecting previously unselected package libpython3.14-stdlib:arm64. 340s Preparing to unpack .../13-libpython3.14-stdlib_3.14.2-1_arm64.deb ... 340s Unpacking libpython3.14-stdlib:arm64 (3.14.2-1) ... 340s Selecting previously unselected package libserf-1-1:arm64. 340s Preparing to unpack .../14-libserf-1-1_1.3.10-3ubuntu1_arm64.deb ... 340s Unpacking libserf-1-1:arm64 (1.3.10-3ubuntu1) ... 340s Selecting previously unselected package libutf8proc3:arm64. 340s Preparing to unpack .../15-libutf8proc3_2.10.0-2_arm64.deb ... 340s Unpacking libutf8proc3:arm64 (2.10.0-2) ... 340s Selecting previously unselected package libsvn1:arm64. 340s Preparing to unpack .../16-libsvn1_1.14.5-5_arm64.deb ... 340s Unpacking libsvn1:arm64 (1.14.5-5) ... 340s Selecting previously unselected package libxapian30:arm64. 340s Preparing to unpack .../17-libxapian30_1.4.29-3_arm64.deb ... 340s Unpacking libxapian30:arm64 (1.4.29-3) ... 340s Selecting previously unselected package libxslt1.1:arm64. 340s Preparing to unpack .../18-libxslt1.1_1.1.43-0.3_arm64.deb ... 340s Unpacking libxslt1.1:arm64 (1.1.43-0.3) ... 340s Selecting previously unselected package python3-aeidon. 340s Preparing to unpack .../19-python3-aeidon_1.15-2build1_all.deb ... 340s Unpacking python3-aeidon (1.15-2build1) ... 340s Selecting previously unselected package python3.14. 340s Preparing to unpack .../20-python3.14_3.14.2-1_arm64.deb ... 340s Unpacking python3.14 (3.14.2-1) ... 340s Selecting previously unselected package python3-all. 340s Preparing to unpack .../21-python3-all_3.13.9-3_arm64.deb ... 340s Unpacking python3-all (3.13.9-3) ... 340s Selecting previously unselected package python3-soupsieve. 340s Preparing to unpack .../22-python3-soupsieve_2.8.3-1_all.deb ... 340s Unpacking python3-soupsieve (2.8.3-1) ... 340s Selecting previously unselected package python3-bs4. 340s Preparing to unpack .../23-python3-bs4_4.14.3-2build1_all.deb ... 340s Unpacking python3-bs4 (4.14.3-2build1) ... 340s Selecting previously unselected package python3-charset-normalizer. 340s Preparing to unpack .../24-python3-charset-normalizer_3.4.4-2_arm64.deb ... 340s Unpacking python3-charset-normalizer (3.4.4-2) ... 340s Selecting previously unselected package python3-cheroot. 340s Preparing to unpack .../25-python3-cheroot_11.1.2+ds1-1_all.deb ... 340s Unpacking python3-cheroot (11.1.2+ds1-1) ... 340s Selecting previously unselected package python3-diff-match-patch. 340s Preparing to unpack .../26-python3-diff-match-patch_20241021-1_all.deb ... 340s Unpacking python3-diff-match-patch (20241021-1) ... 340s Selecting previously unselected package python3-enchant. 340s Preparing to unpack .../27-python3-enchant_3.3.0-1_all.deb ... 340s Unpacking python3-enchant (3.3.0-1) ... 340s Selecting previously unselected package python3-iniconfig. 340s Preparing to unpack .../28-python3-iniconfig_2.1.0-2_all.deb ... 340s Unpacking python3-iniconfig (2.1.0-2) ... 340s Selecting previously unselected package python3-rapidfuzz. 340s Preparing to unpack .../29-python3-rapidfuzz_3.12.2+ds-1build1_arm64.deb ... 340s Unpacking python3-rapidfuzz (3.12.2+ds-1build1) ... 341s Selecting previously unselected package python3-levenshtein. 341s Preparing to unpack .../30-python3-levenshtein_0.27.1-2build1_arm64.deb ... 341s Unpacking python3-levenshtein (0.27.1-2build1) ... 341s Selecting previously unselected package python3-lxml:arm64. 341s Preparing to unpack .../31-python3-lxml_6.0.2-1_arm64.deb ... 341s Unpacking python3-lxml:arm64 (6.0.2-1) ... 341s Selecting previously unselected package python3-mistletoe. 341s Preparing to unpack .../32-python3-mistletoe_1.5.1-1_all.deb ... 341s Unpacking python3-mistletoe (1.5.1-1) ... 341s Selecting previously unselected package python3-ply. 341s Preparing to unpack .../33-python3-ply_3.11-10_all.deb ... 341s Unpacking python3-ply (3.11-10) ... 341s Selecting previously unselected package python3-phply. 341s Preparing to unpack .../34-python3-phply_1.2.6-1build1_all.deb ... 341s Unpacking python3-phply (1.2.6-1build1) ... 341s Selecting previously unselected package python3-pluggy. 341s Preparing to unpack .../35-python3-pluggy_1.6.0-2_all.deb ... 341s Unpacking python3-pluggy (1.6.0-2) ... 341s Selecting previously unselected package python3-pytest. 341s Preparing to unpack .../36-python3-pytest_9.0.2-2_all.deb ... 341s Unpacking python3-pytest (9.0.2-2) ... 341s Selecting previously unselected package python3-pytz. 341s Preparing to unpack .../37-python3-pytz_2025.2-5_all.deb ... 341s Unpacking python3-pytz (2025.2-5) ... 341s Selecting previously unselected package python3-ruamel.yaml.clib. 341s Preparing to unpack .../38-python3-ruamel.yaml.clib_0.2.15+ds-1_arm64.deb ... 341s Unpacking python3-ruamel.yaml.clib (0.2.15+ds-1) ... 341s Selecting previously unselected package python3-ruamel.yaml. 341s Preparing to unpack .../39-python3-ruamel.yaml_0.18.10+ds-1build1_all.deb ... 341s Unpacking python3-ruamel.yaml (0.18.10+ds-1build1) ... 341s Selecting previously unselected package python3-syrupy. 341s Preparing to unpack .../40-python3-syrupy_5.0.0-1_all.deb ... 341s Unpacking python3-syrupy (5.0.0-1) ... 341s Selecting previously unselected package python3-tomlkit. 341s Preparing to unpack .../41-python3-tomlkit_0.13.3-2_all.deb ... 341s Unpacking python3-tomlkit (0.13.3-2) ... 341s Selecting previously unselected package python3-translate. 341s Preparing to unpack .../42-python3-translate_3.18.1-1_all.deb ... 341s Unpacking python3-translate (3.18.1-1) ... 341s Selecting previously unselected package python3-unicode-segmentation-rs. 341s Preparing to unpack .../43-python3-unicode-segmentation-rs_0.2.1-1_arm64.deb ... 341s Unpacking python3-unicode-segmentation-rs (0.2.1-1) ... 341s Selecting previously unselected package python3-vobject. 341s Preparing to unpack .../44-python3-vobject_0.9.9+dfsg-1_all.deb ... 341s Unpacking python3-vobject (0.9.9+dfsg-1) ... 341s Selecting previously unselected package python3-xapian. 341s Preparing to unpack .../45-python3-xapian_1.4.29-1build1_arm64.deb ... 341s Unpacking python3-xapian (1.4.29-1build1) ... 341s Selecting previously unselected package subversion. 341s Preparing to unpack .../46-subversion_1.14.5-5_arm64.deb ... 341s Unpacking subversion (1.14.5-5) ... 341s Selecting previously unselected package translate-toolkit. 341s Preparing to unpack .../47-translate-toolkit_3.18.1-1_all.deb ... 341s Unpacking translate-toolkit (3.18.1-1) ... 341s Selecting previously unselected package python3-iniparse. 341s Preparing to unpack .../48-python3-iniparse_0.5.1-2_all.deb ... 341s Unpacking python3-iniparse (0.5.1-2) ... 341s Selecting previously unselected package python3-pycountry. 341s Preparing to unpack .../49-python3-pycountry_24.6.1+ds1-1_all.deb ... 341s Unpacking python3-pycountry (24.6.1+ds1-1) ... 342s Setting up python3-iniconfig (2.1.0-2) ... 342s Setting up libxapian30:arm64 (1.4.29-3) ... 342s Setting up python3-rapidfuzz (3.12.2+ds-1build1) ... 342s Setting up python3-diff-match-patch (20241021-1) ... 342s Setting up python3-aeidon (1.15-2build1) ... 343s Setting up libutf8proc3:arm64 (2.10.0-2) ... 343s Setting up libaspell15:arm64 (0.60.8.1-6) ... 343s Setting up python3-charset-normalizer (3.4.4-2) ... 343s Setting up python3-ply (3.11-10) ... 343s Setting up libpython3.14-minimal:arm64 (3.14.2-1) ... 343s Setting up python3-ruamel.yaml.clib (0.2.15+ds-1) ... 343s Setting up python3-pytz (2025.2-5) ... 343s Setting up python3-unicode-segmentation-rs (0.2.1-1) ... 344s Setting up libgomp1:arm64 (15.2.0-12ubuntu1) ... 344s Setting up emacsen-common (3.0.8) ... 344s Setting up python3-cheroot (11.1.2+ds1-1) ... 344s Setting up python3-pycountry (24.6.1+ds1-1) ... 344s Setting up python3-xapian (1.4.29-1build1) ... 344s Setting up python3-pluggy (1.6.0-2) ... 345s Setting up python3-ruamel.yaml (0.18.10+ds-1build1) ... 345s Setting up python3-mistletoe (1.5.1-1) ... 345s Setting up libexttextcat-data (3.4.7-1ubuntu2) ... 345s Setting up libapr1t64:arm64 (1.7.6-3) ... 345s Setting up libxslt1.1:arm64 (1.1.43-0.3) ... 345s Setting up python3-levenshtein (0.27.1-2build1) ... 345s Setting up libhunspell-1.7-0:arm64 (1.7.2+really1.7.2-11) ... 345s Setting up python3-tomlkit (0.13.3-2) ... 346s Setting up python3-soupsieve (2.8.3-1) ... 346s Setting up python3.14-minimal (3.14.2-1) ... 347s Setting up python3-iniparse (0.5.1-2) ... 347s Setting up libaprutil1t64:arm64 (1.6.3-3ubuntu3) ... 347s Setting up python3-vobject (0.9.9+dfsg-1) ... 347s Setting up gettext (0.23.2-1) ... 347s Setting up python3-phply (1.2.6-1build1) ... 348s Setting up dictionaries-common (1.31.3) ... 348s Setting up libpython3.14-stdlib:arm64 (3.14.2-1) ... 348s Setting up python3-pytest (9.0.2-2) ... 349s Setting up python3-syrupy (5.0.0-1) ... 349s Setting up libserf-1-1:arm64 (1.3.10-3ubuntu1) ... 349s Setting up python3-bs4 (4.14.3-2build1) ... 349s Setting up python3-lxml:arm64 (6.0.2-1) ... 349s Setting up hunspell-en-us (1:2020.12.07-4build1) ... 349s Setting up python3.14 (3.14.2-1) ... 351s Setting up libsvn1:arm64 (1.14.5-5) ... 351s Setting up libenchant-2-2:arm64 (2.8.2+dfsg1-3build1) ... 351s Setting up subversion (1.14.5-5) ... 351s Setting up python3-all (3.13.9-3) ... 351s Setting up python3-enchant (3.3.0-1) ... 351s Setting up python3-translate (3.18.1-1) ... 352s Setting up translate-toolkit (3.18.1-1) ... 352s Processing triggers for libc-bin (2.42-2ubuntu4) ... 352s Processing triggers for systemd (259-1ubuntu2) ... 352s Processing triggers for man-db (2.13.1-1) ... 353s Processing triggers for install-info (7.2-5) ... 353s Processing triggers for dictionaries-common (1.31.3) ... 355s autopkgtest [05:43:56]: test python3-translate-commands: [----------------------- 356s ============================= test session starts ============================== 356s platform linux -- Python 3.14.2, pytest-9.0.2, pluggy-1.6.0 -- /usr/bin/python3.14 356s cachedir: .pytest_cache 356s rootdir: /tmp/autopkgtest.g1gmkF/autopkgtest_tmp 356s plugins: typeguard-4.4.4, syrupy-5.0.0 362s collecting ... collected 3902 items / 2 skipped 362s 362s tests/odf_xliff/test_odf_xliff.py::test_odf2xliff PASSED [ 0%] 362s tests/odf_xliff/test_odf_xliff.py::test_roundtrip PASSED [ 0%] 362s tests/odf_xliff/test_odf_xliff.py::test_odf2xliff2_inline PASSED [ 0%] 362s tests/translate/convert/test_accesskey.py::test_get_label_and_accesskey PASSED [ 0%] 362s tests/translate/convert/test_accesskey.py::test_extract_bad_accesskeys PASSED [ 0%] 362s tests/translate/convert/test_accesskey.py::test_ignore_entities PASSED [ 0%] 362s tests/translate/convert/test_accesskey.py::test_alternate_accesskey_marker PASSED [ 0%] 362s tests/translate/convert/test_accesskey.py::test_unicode PASSED [ 0%] 362s tests/translate/convert/test_accesskey.py::test_numeric PASSED [ 0%] 362s tests/translate/convert/test_accesskey.py::test_empty_string PASSED [ 0%] 362s tests/translate/convert/test_accesskey.py::test_end_of_string PASSED [ 0%] 362s tests/translate/convert/test_accesskey.py::test_combine_label_accesskey PASSED [ 0%] 362s tests/translate/convert/test_accesskey.py::test_combine_label_accesskey_different_capitals PASSED [ 0%] 362s tests/translate/convert/test_accesskey.py::test_uncombinable PASSED [ 0%] 362s tests/translate/convert/test_accesskey.py::test_accesskey_already_in_text PASSED [ 0%] 362s tests/translate/convert/test_android2po.py::TestAndroid2PO::test_no_template_units PASSED [ 0%] 362s tests/translate/convert/test_android2po.py::TestAndroid2PO::test_template_units PASSED [ 0%] 362s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_no_template_units PASSED [ 0%] 362s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_template_units PASSED [ 0%] 362s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_help PASSED [ 0%] 362s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_convertandroid PASSED [ 0%] 362s tests/translate/convert/test_convert.py::TestConvertCommand::test_help PASSED [ 0%] 362s tests/translate/convert/test_csv2po.py::test_replacestrings PASSED [ 0%] 362s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_simpleentity PASSED [ 0%] 362s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_simpleentity_with_template PASSED [ 0%] 362s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_newlines PASSED [ 0%] 362s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_tabs PASSED [ 0%] 362s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_quotes PASSED [ 0%] 362s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_empties PASSED [ 0%] 362s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_kdecomment PASSED [ 0%] 362s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_escaped_newlines PASSED [ 0%] 362s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_line_numbers_in_errors PASSED [ 0%] 362s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_simpleentity PASSED [ 0%] 362s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_simpleentity_with_template PASSED [ 0%] 362s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_newlines PASSED [ 0%] 362s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_tabs PASSED [ 0%] 362s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_quotes PASSED [ 0%] 362s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_empties PASSED [ 0%] 362s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_kdecomment PASSED [ 0%] 362s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_escaped_newlines PASSED [ 1%] 362s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_line_numbers_in_errors PASSED [ 1%] 362s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_help PASSED [ 1%] 362s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder PASSED [ 1%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_simpleentity PASSED [ 1%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_convertdtd PASSED [ 1%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_apos PASSED [ 1%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_quotes PASSED [ 1%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_emptyentity PASSED [ 1%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_two_empty_entities PASSED [ 1%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_emptyentity_translated PASSED [ 1%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_localisaton_note_simple PASSED [ 1%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_localisation_note_merge PASSED [ 1%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_simple PASSED [ 1%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_label PASSED [ 1%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_onlyentity PASSED [ 1%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_commentedout PASSED [ 1%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_spaces_at_start_of_dtd_lines PASSED [ 1%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accesskeys_folding PASSED [ 1%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accesskeys_mismatch PASSED [ 1%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_carriage_return_in_multiline_dtd PASSED [ 1%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_multiline_with_blankline PASSED [ 1%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_multiline_closing_quotes PASSED [ 1%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_preserving_spaces PASSED [ 1%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_escaping_newline_tabs PASSED [ 1%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_abandoned_accelerator PASSED [ 1%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_unassociable_accelerator PASSED [ 1%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_changed_labels_and_accelerators PASSED [ 1%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accelerator_keys_not_in_sentence XFAIL [ 1%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_exclude_entity_includes PASSED [ 1%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_linewraps PASSED [ 1%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_merging_with_new_untranslated PASSED [ 1%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_merge_without_template PASSED [ 1%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_simpleentity PASSED [ 1%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_convertdtd PASSED [ 1%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_apos PASSED [ 1%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_quotes PASSED [ 1%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_emptyentity PASSED [ 1%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_two_empty_entities PASSED [ 1%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_emptyentity_translated PASSED [ 2%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_localisaton_note_simple PASSED [ 2%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_localisation_note_merge PASSED [ 2%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_simple PASSED [ 2%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_label PASSED [ 2%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_onlyentity PASSED [ 2%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_commentedout PASSED [ 2%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_spaces_at_start_of_dtd_lines PASSED [ 2%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accesskeys_folding PASSED [ 2%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accesskeys_mismatch PASSED [ 2%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_carriage_return_in_multiline_dtd PASSED [ 2%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_multiline_with_blankline PASSED [ 2%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_multiline_closing_quotes PASSED [ 2%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_preserving_spaces PASSED [ 2%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_escaping_newline_tabs PASSED [ 2%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_abandoned_accelerator PASSED [ 2%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_unassociable_accelerator PASSED [ 2%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_changed_labels_and_accelerators PASSED [ 2%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accelerator_keys_not_in_sentence XFAIL [ 2%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_exclude_entity_includes PASSED [ 2%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_linewraps PASSED [ 2%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_merging_with_new_untranslated PASSED [ 2%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_merge_without_template PASSED [ 2%] 362s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_help PASSED [ 2%] 362s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_defaults PASSED [ 2%] 362s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_root_name PASSED [ 2%] 362s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_value_name PASSED [ 2%] 362s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_key PASSED [ 2%] 362s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_default_namespace PASSED [ 2%] 362s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_namespace_prefix PASSED [ 2%] 362s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_all_parameters PASSED [ 2%] 362s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_empty_file_is_empty_store PASSED [ 2%] 362s tests/translate/convert/test_flatxml2po.py::TestFlatXML2POCommand::test_help PASSED [ 2%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_extract_lang_attribute_from_html_tag PASSED [ 2%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_do_not_extract_lang_attribute_from_tags_other_than_html PASSED [ 2%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_title PASSED [ 2%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_title_with_linebreak PASSED [ 2%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta PASSED [ 2%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p PASSED [ 2%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_br PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_linebreak PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_linebreak_and_embedded_br PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_uppercase_html PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_div PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_div_with_linebreaks PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_a PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_a_with_linebreak PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_sequence_of_anchor_elements PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_img PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_img_empty PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_img_inside_a PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_table_summary PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_simple PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_complex PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_empty PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_address PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_headings PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_headings_with_linebreaks PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_dt PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_dd PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_span PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_ul PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_nested_lists PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_duplicates PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_multiline_reflow PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_nested_tags PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_carriage_return PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_encoding_latin1 PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_strip_html PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_entityrefs_in_text PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_entityrefs_in_attributes PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_charrefs PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_multiple_php PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php_multiline PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php_with_embedded_html PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_comments PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_attribute_without_value PASSED [ 3%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_data_translate_ignore_attribute PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_translate_comment_directives PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta_social_media_tags PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta_non_translatable_tags_not_extracted PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta_mixed_translatable_and_non_translatable PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_data_translate_comment_attribute PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_data_translate_comment_without_keepcomments PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2PO::test_text_after_empty_tags PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_extract_lang_attribute_from_html_tag PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_do_not_extract_lang_attribute_from_tags_other_than_html PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_title PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_title_with_linebreak PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_br PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_linebreak PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_linebreak_and_embedded_br PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_uppercase_html PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_div PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_div_with_linebreaks PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_a PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_a_with_linebreak PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_sequence_of_anchor_elements PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_img PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_img_empty PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_img_inside_a PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_table_summary PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_simple PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_complex PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_empty PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_address PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_headings PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_headings_with_linebreaks PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_dt PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_dd PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_span PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_ul PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_nested_lists PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_duplicates PASSED [ 4%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multiline_reflow PASSED [ 5%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_nested_tags PASSED [ 5%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_carriage_return PASSED [ 5%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_encoding_latin1 PASSED [ 5%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_strip_html PASSED [ 5%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_entityrefs_in_text PASSED [ 5%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_entityrefs_in_attributes PASSED [ 5%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_charrefs PASSED [ 5%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php PASSED [ 5%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multiple_php PASSED [ 5%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php_multiline PASSED [ 5%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php_with_embedded_html PASSED [ 5%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_comments PASSED [ 5%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_attribute_without_value PASSED [ 5%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_data_translate_ignore_attribute PASSED [ 5%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_translate_comment_directives PASSED [ 5%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta_social_media_tags PASSED [ 5%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta_non_translatable_tags_not_extracted PASSED [ 5%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta_mixed_translatable_and_non_translatable PASSED [ 5%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_data_translate_comment_attribute PASSED [ 5%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_data_translate_comment_without_keepcomments PASSED [ 5%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_text_after_empty_tags PASSED [ 5%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_help PASSED [ 5%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_single PASSED [ 5%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_onefile PASSED [ 5%] 362s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_onefile_to_stdout PASSED [ 5%] 362s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_convert_empty_file PASSED [ 5%] 362s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_no_translations PASSED [ 5%] 362s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_summary PASSED [ 5%] 362s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_description PASSED [ 5%] 362s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_location PASSED [ 5%] 362s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_comment PASSED [ 5%] 362s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_no_template_duplicate_style PASSED [ 5%] 362s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge PASSED [ 5%] 362s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_misaligned_files PASSED [ 5%] 362s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_blank_msgstr PASSED [ 5%] 362s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_duplicate_style PASSED [ 5%] 362s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_convert_empty_file PASSED [ 5%] 362s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_no_translations PASSED [ 5%] 362s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_summary PASSED [ 6%] 362s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_description PASSED [ 6%] 362s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_location PASSED [ 6%] 362s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_comment PASSED [ 6%] 362s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_no_template_duplicate_style PASSED [ 6%] 362s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge PASSED [ 6%] 362s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_misaligned_files PASSED [ 6%] 363s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_blank_msgstr PASSED [ 6%] 363s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_duplicate_style PASSED [ 6%] 363s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_help PASSED [ 6%] 363s tests/translate/convert/test_idml2po.py::TestIDML2POCommand::test_help PASSED [ 6%] 363s tests/translate/convert/test_idml2po.py::TestIDML2POCommand::test_convert PASSED [ 6%] 363s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_empty_file PASSED [ 6%] 363s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_no_translation PASSED [ 6%] 363s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_simple PASSED [ 6%] 363s tests/translate/convert/test_ini2po.py::TestIni2PO::test_no_duplicates PASSED [ 6%] 363s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_simple PASSED [ 6%] 363s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_misaligned_files PASSED [ 6%] 363s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_blank_msgstr PASSED [ 6%] 363s tests/translate/convert/test_ini2po.py::TestIni2PO::test_dialects_inno PASSED [ 6%] 363s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_empty_file PASSED [ 6%] 363s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_no_translation PASSED [ 6%] 363s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_simple PASSED [ 6%] 363s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_no_duplicates PASSED [ 6%] 363s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_simple PASSED [ 6%] 363s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_misaligned_files PASSED [ 6%] 363s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_blank_msgstr PASSED [ 6%] 363s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_dialects_inno PASSED [ 6%] 363s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_help PASSED [ 6%] 363s tests/translate/convert/test_json2po.py::TestJson2PO::test_simple PASSED [ 6%] 363s tests/translate/convert/test_json2po.py::TestJson2PO::test_three_same_keys PASSED [ 6%] 363s tests/translate/convert/test_json2po.py::TestJson2PO::test_filter PASSED [ 6%] 363s tests/translate/convert/test_json2po.py::TestJson2PO::test_multiple_units PASSED [ 6%] 363s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_simple PASSED [ 6%] 363s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_three_same_keys PASSED [ 6%] 363s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_filter PASSED [ 6%] 363s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_multiple_units PASSED [ 6%] 363s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_help PASSED [ 6%] 363s tests/translate/convert/test_md2po.py::TestMD2PO::test_help PASSED [ 6%] 363s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_file_with_multifile_single PASSED [ 7%] 363s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_file_with_multifile_onefile PASSED [ 7%] 363s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_directory_with_multifile_single PASSED [ 7%] 363s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_directory_with_multifile_onefile PASSED [ 7%] 363s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_frontmatter PASSED [ 7%] 363s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_translation_ignore_sections PASSED [ 7%] 363s tests/translate/convert/test_moz2po.py::TestMoz2PO::test_duplicate_locations PASSED [ 7%] 363s tests/translate/convert/test_moz2po.py::TestMoz2POCommand::test_duplicate_locations PASSED [ 7%] 363s tests/translate/convert/test_moz2po.py::TestMoz2POCommand::test_help PASSED [ 7%] 363s tests/translate/convert/test_mozfunny2prop.py::TestInc2PO::test_simpleentry PASSED [ 7%] 363s tests/translate/convert/test_mozfunny2prop.py::TestInc2PO::test_uncomment_contributors PASSED [ 7%] 363s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_convert_empty PASSED [ 7%] 363s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_string PASSED [ 7%] 363s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_merge PASSED [ 7%] 363s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_entry PASSED [ 7%] 363s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_comment PASSED [ 7%] 363s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_meta_tags PASSED [ 7%] 363s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_keep_duplicates PASSED [ 7%] 363s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_drop_duplicates PASSED [ 7%] 363s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_convert_empty PASSED [ 7%] 363s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_string PASSED [ 7%] 363s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_merge PASSED [ 7%] 363s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_entry PASSED [ 7%] 363s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_comment PASSED [ 7%] 363s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_meta_tags PASSED [ 7%] 363s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_keep_duplicates PASSED [ 7%] 363s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_drop_duplicates PASSED [ 7%] 363s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_help PASSED [ 7%] 363s tests/translate/convert/test_ods2xliff.py::TestODF2XLIFFCommand::test_help PASSED [ 7%] 363s tests/translate/convert/test_ods2xliff.py::TestODF2XLIFFCommand::test_convert PASSED [ 7%] 363s tests/translate/convert/test_oo2po.py::TestOO2PO::test_simpleentity PASSED [ 7%] 363s tests/translate/convert/test_oo2po.py::TestOO2PO::test_escapes PASSED [ 7%] 363s tests/translate/convert/test_oo2po.py::TestOO2PO::test_roundtrip_escape PASSED [ 7%] 363s tests/translate/convert/test_oo2po.py::TestOO2PO::test_roundtrip_whitespaceonly PASSED [ 7%] 363s tests/translate/convert/test_oo2po.py::TestOO2PO::test_double_escapes PASSED [ 7%] 363s tests/translate/convert/test_oo2po.py::TestOO2PO::test_escapes_helpcontent2 PASSED [ 7%] 363s tests/translate/convert/test_oo2po.py::TestOO2PO::test_msgid_bug_error_address PASSED [ 7%] 363s tests/translate/convert/test_oo2po.py::TestOO2PO::test_x_comment_inclusion PASSED [ 7%] 363s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simpleentity PASSED [ 7%] 363s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_escapes PASSED [ 8%] 363s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_roundtrip_escape PASSED [ 8%] 363s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_roundtrip_whitespaceonly PASSED [ 8%] 363s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_double_escapes PASSED [ 8%] 363s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_escapes_helpcontent2 PASSED [ 8%] 363s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_msgid_bug_error_address PASSED [ 8%] 363s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_x_comment_inclusion PASSED [ 8%] 363s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_help PASSED [ 8%] 363s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_preserve_filename PASSED [ 8%] 363s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_pot PASSED [ 8%] 363s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_po PASSED [ 8%] 363s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_onefile_nonrecursive PASSED [ 8%] 363s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_remove_duplicates PASSED [ 8%] 363s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_simpleentity PASSED [ 8%] 363s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_escapes PASSED [ 8%] 363s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_roundtrip_escape PASSED [ 8%] 363s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_roundtrip_whitespaceonly PASSED [ 8%] 363s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_double_escapes PASSED [ 8%] 363s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_escapes_helpcontent2 PASSED [ 8%] 363s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_x_comment_inclusion PASSED [ 8%] 363s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_msgid_bug_error_address PASSED [ 8%] 363s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simpleentity PASSED [ 8%] 363s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_escapes PASSED [ 8%] 363s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_roundtrip_escape PASSED [ 8%] 363s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_roundtrip_whitespaceonly PASSED [ 8%] 363s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_double_escapes PASSED [ 8%] 363s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_escapes_helpcontent2 PASSED [ 8%] 363s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_x_comment_inclusion PASSED [ 8%] 363s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_msgid_bug_error_address PASSED [ 8%] 363s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_help PASSED [ 8%] 363s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_preserve_filename PASSED [ 8%] 363s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_xlf PASSED [ 8%] 363s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_po PASSED [ 8%] 363s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_onefile_nonrecursive PASSED [ 8%] 363s tests/translate/convert/test_php2po.py::TestPhp2PO::test_simpleentry PASSED [ 8%] 363s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphp PASSED [ 8%] 363s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphptemplate PASSED [ 8%] 363s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphpmissing PASSED [ 8%] 363s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphpempty PASSED [ 8%] 363s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unicode PASSED [ 9%] 363s tests/translate/convert/test_php2po.py::TestPhp2PO::test_multiline PASSED [ 9%] 363s tests/translate/convert/test_php2po.py::TestPhp2PO::test_comments_before PASSED [ 9%] 363s tests/translate/convert/test_php2po.py::TestPhp2PO::test_emptyentry PASSED [ 9%] 363s tests/translate/convert/test_php2po.py::TestPhp2PO::test_hash_comment_with_equals PASSED [ 9%] 363s tests/translate/convert/test_php2po.py::TestPhp2PO::test_emptyentry_translated PASSED [ 9%] 363s tests/translate/convert/test_php2po.py::TestPhp2PO::test_newlines_in_value PASSED [ 9%] 363s tests/translate/convert/test_php2po.py::TestPhp2PO::test_spaces_in_name PASSED [ 9%] 363s tests/translate/convert/test_php2po.py::TestPhp2PO::test_named_array PASSED [ 9%] 363s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unnamed_array PASSED [ 9%] 363s tests/translate/convert/test_php2po.py::TestPhp2PO::test_named_nested_arrays PASSED [ 9%] 363s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unnamed_nested_arrays PASSED [ 9%] 363s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_simpleentry PASSED [ 9%] 363s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphp PASSED [ 9%] 363s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphptemplate PASSED [ 9%] 363s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphpmissing PASSED [ 9%] 363s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphpempty PASSED [ 9%] 363s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unicode PASSED [ 9%] 363s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_multiline PASSED [ 9%] 363s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_comments_before PASSED [ 9%] 363s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_emptyentry PASSED [ 9%] 363s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_hash_comment_with_equals PASSED [ 9%] 363s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_emptyentry_translated PASSED [ 9%] 363s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_newlines_in_value PASSED [ 9%] 363s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_spaces_in_name PASSED [ 9%] 363s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_named_array PASSED [ 9%] 363s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unnamed_array PASSED [ 9%] 363s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_named_nested_arrays PASSED [ 9%] 363s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unnamed_nested_arrays PASSED [ 9%] 363s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_help PASSED [ 9%] 363s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_simpleentity PASSED [ 9%] 363s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_multiline PASSED [ 9%] 363s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapednewlines PASSED [ 9%] 363s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedtabs PASSED [ 9%] 363s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedquotes PASSED [ 9%] 363s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedescape PASSED [ 9%] 363s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_singlequotes PASSED [ 9%] 363s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_empties PASSED [ 9%] 363s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_kdecomments PASSED [ 9%] 363s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_simpleentity PASSED [ 10%] 363s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_multiline PASSED [ 10%] 363s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapednewlines PASSED [ 10%] 363s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedtabs PASSED [ 10%] 363s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedquotes PASSED [ 10%] 363s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedescape PASSED [ 10%] 363s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_singlequotes PASSED [ 10%] 363s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_empties PASSED [ 10%] 363s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_kdecomments PASSED [ 10%] 363s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_help PASSED [ 10%] 363s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder PASSED [ 10%] 363s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_context PASSED [ 10%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_joinlines PASSED [ 10%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_escapedstr PASSED [ 10%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_missingaccesskey PASSED [ 10%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskeycase PASSED [ 10%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_types PASSED [ 10%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing PASSED [ 10%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey PASSED [ 10%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_source_no_amp_in_target PASSED [ 10%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_both_amp_and_accesskey PASSED [ 10%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey PASSED [ 10%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_entities_two PASSED [ 10%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_entities PASSED [ 10%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_comments_translator PASSED [ 10%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_retains_hashprefix PASSED [ 10%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_convertdtd PASSED [ 10%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_untranslated_with_template PASSED [ 10%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_untranslated_without_template PASSED [ 10%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_blank_source PASSED [ 10%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_newlines_escapes PASSED [ 10%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_simple PASSED [ 10%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_escape PASSED [ 10%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_quotes PASSED [ 10%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_amp PASSED [ 10%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_merging_entries_with_spaces_removed PASSED [ 10%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_preserving_spaces PASSED [ 10%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_preserving_spaces_after_value PASSED [ 10%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_comments PASSED [ 10%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_duplicates PASSED [ 11%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_joinlines PASSED [ 11%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_escapedstr PASSED [ 11%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_missingaccesskey PASSED [ 11%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskeycase PASSED [ 11%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_types PASSED [ 11%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing PASSED [ 11%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey PASSED [ 11%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_source_no_amp_in_target PASSED [ 11%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_both_amp_and_accesskey PASSED [ 11%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_amp_no_accesskey PASSED [ 11%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_entities_two PASSED [ 11%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_entities PASSED [ 11%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_comments_translator PASSED [ 11%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_retains_hashprefix PASSED [ 11%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_convertdtd PASSED [ 11%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_untranslated_with_template PASSED [ 11%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_untranslated_without_template PASSED [ 11%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_blank_source PASSED [ 11%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_newlines_escapes PASSED [ 11%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_simple PASSED [ 11%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_escape PASSED [ 11%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_quotes PASSED [ 11%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_amp PASSED [ 11%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_merging_entries_with_spaces_removed PASSED [ 11%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_preserving_spaces PASSED [ 11%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_preserving_spaces_after_value PASSED [ 11%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_comments PASSED [ 11%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_duplicates PASSED [ 11%] 363s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_help PASSED [ 11%] 363s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_defaults PASSED [ 11%] 363s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_root_name PASSED [ 11%] 363s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_value_name PASSED [ 11%] 363s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_key PASSED [ 11%] 363s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_default_namespace PASSED [ 11%] 363s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_namespace_prefix PASSED [ 11%] 363s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_indent_eight PASSED [ 11%] 363s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_noindent PASSED [ 11%] 363s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXMLCommand::test_help PASSED [ 11%] 363s tests/translate/convert/test_po2html.py::TestPO2Html::test_simple PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2Html::test_linebreaks PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2Html::test_replace_substrings PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_outside_translatable_content PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_within_translatable_content_not_embedded PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_embedded_within_translatable_content PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_without_value PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2Html::test_entities PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2Html::test_entities_template_vs_po_mismatch PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2Html::test_utf8_non_ascii_characters PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2Html::test_custom_entities_preserved PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2Html::test_escapes PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_auto_rtl PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_auto_ltr PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_added_when_missing PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_not_changed_without_lang_translation PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_translated PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_untranslated PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_fuzzy PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2Html::test_untranslated_attributes PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2Html::test_button_translation PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2Html::test_lang_attribute_only_on_html_tag PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2Html::test_data_translate_ignore_preserved PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2Html::test_translate_comment_directives_preserved PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2Html::test_data_translate_ignore_with_translation_in_po PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2Html::test_translate_comment_with_translation_in_po PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2Html::test_meta_social_media_tags_translation PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2Html::test_meta_non_translatable_tags_preserved PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_simple PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_linebreaks PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_replace_substrings PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_outside_translatable_content PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_within_translatable_content_not_embedded PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_embedded_within_translatable_content PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_without_value PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_entities PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_entities_template_vs_po_mismatch PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_utf8_non_ascii_characters PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_custom_entities_preserved PASSED [ 12%] 363s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_escapes PASSED [ 13%] 363s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_auto_rtl PASSED [ 13%] 363s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_auto_ltr PASSED [ 13%] 363s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_added_when_missing PASSED [ 13%] 363s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_not_changed_without_lang_translation PASSED [ 13%] 363s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_translated PASSED [ 13%] 363s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_untranslated PASSED [ 13%] 363s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_fuzzy PASSED [ 13%] 363s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_untranslated_attributes PASSED [ 13%] 363s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_button_translation PASSED [ 13%] 363s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_lang_attribute_only_on_html_tag PASSED [ 13%] 363s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_data_translate_ignore_preserved PASSED [ 13%] 363s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_translate_comment_directives_preserved PASSED [ 13%] 363s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_data_translate_ignore_with_translation_in_po PASSED [ 13%] 363s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_translate_comment_with_translation_in_po PASSED [ 13%] 363s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_meta_social_media_tags_translation PASSED [ 13%] 363s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_meta_non_translatable_tags_preserved PASSED [ 13%] 363s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_help PASSED [ 13%] 363s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_individual_files PASSED [ 13%] 363s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_fully_recursive PASSED [ 13%] 363s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_input_specified PASSED [ 13%] 363s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified PASSED [ 13%] 363s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_output_specified PASSED [ 13%] 363s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file PASSED [ 13%] 363s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file_and_templates_overwritten PASSED [ 13%] 364s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_empty_file PASSED [ 13%] 364s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_summary PASSED [ 13%] 364s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_description PASSED [ 13%] 364s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_location PASSED [ 13%] 364s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_comment PASSED [ 13%] 364s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_complex_icalendar PASSED [ 13%] 364s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_skip_fuzzy PASSED [ 13%] 364s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_include_fuzzy PASSED [ 13%] 364s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_no_template PASSED [ 13%] 364s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_template_location_not_in_source_file PASSED [ 13%] 364s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_completion_below_threshold PASSED [ 13%] 364s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_completion_above_threshold PASSED [ 13%] 364s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_empty_file PASSED [ 13%] 364s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_summary PASSED [ 13%] 364s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_description PASSED [ 14%] 364s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_location PASSED [ 14%] 364s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_comment PASSED [ 14%] 364s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_complex_icalendar PASSED [ 14%] 364s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_skip_fuzzy PASSED [ 14%] 364s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_include_fuzzy PASSED [ 14%] 364s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_no_template PASSED [ 14%] 364s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_template_location_not_in_source_file PASSED [ 14%] 364s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_completion_below_threshold PASSED [ 14%] 364s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_completion_above_threshold PASSED [ 14%] 364s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_help PASSED [ 14%] 364s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_help PASSED [ 14%] 364s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_convert PASSED [ 14%] 364s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_no_templates PASSED [ 14%] 364s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_simple PASSED [ 14%] 364s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_space_preservation PASSED [ 14%] 364s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_blank_entries PASSED [ 14%] 364s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_fuzzy PASSED [ 14%] 364s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_propertyless_template PASSED [ 14%] 364s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_empty_value PASSED [ 14%] 364s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_dialects_inno PASSED [ 14%] 364s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_misaligned_files PASSED [ 14%] 364s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_completion_below_threshold PASSED [ 14%] 364s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_completion_above_threshold PASSED [ 14%] 364s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_no_fuzzy PASSED [ 14%] 364s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_allow_fuzzy PASSED [ 14%] 364s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_missing_source PASSED [ 14%] 364s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_repeated_locations PASSED [ 14%] 364s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_no_templates PASSED [ 14%] 364s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_simple PASSED [ 14%] 364s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_space_preservation PASSED [ 14%] 364s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_blank_entries PASSED [ 14%] 364s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_fuzzy PASSED [ 14%] 364s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_propertyless_template PASSED [ 14%] 364s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_empty_value PASSED [ 14%] 364s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_dialects_inno PASSED [ 14%] 364s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_misaligned_files PASSED [ 14%] 364s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_completion_below_threshold PASSED [ 14%] 364s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_completion_above_threshold PASSED [ 14%] 364s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_no_fuzzy PASSED [ 15%] 364s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_allow_fuzzy PASSED [ 15%] 364s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_missing_source PASSED [ 15%] 364s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_repeated_locations PASSED [ 15%] 364s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_help PASSED [ 15%] 364s tests/translate/convert/test_po2json.py::TestPO2JSON::test_basic PASSED [ 15%] 364s tests/translate/convert/test_po2json.py::TestPO2JSON::test_ordering_serialize PASSED [ 15%] 364s tests/translate/convert/test_po2json.py::TestPO2JSON::test_dont_use_empty_translation PASSED [ 15%] 364s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_false_remove_untranslated_false PASSED [ 15%] 364s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_false_remove_untranslated_true PASSED [ 15%] 364s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_true_remove_untranslated_false PASSED [ 15%] 364s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_true_remove_untranslated_true PASSED [ 15%] 364s tests/translate/convert/test_po2md.py::TestPO2MD::test_help PASSED [ 15%] 364s tests/translate/convert/test_po2md.py::TestPO2MD::test_single_markdown_file_with_single_po PASSED [ 15%] 364s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_with_single_po PASSED [ 15%] 364s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_and_directory_of_po_files PASSED [ 15%] 364s tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_table XFAIL [ 15%] 364s tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_frontmatter PASSED [ 15%] 364s tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_translation_ignore_sections PASSED [ 15%] 364s tests/translate/convert/test_po2moz.py::TestPO2MozCommand::test_help PASSED [ 15%] 364s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_empty PASSED [ 15%] 364s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_simple PASSED [ 15%] 364s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_comment PASSED [ 15%] 364s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_ok_marker PASSED [ 15%] 364s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_completion_below_threshold PASSED [ 15%] 364s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_completion_above_threshold PASSED [ 15%] 364s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_skip_non_translatable_input PASSED [ 15%] 364s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_no_fuzzy PASSED [ 15%] 364s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_allow_fuzzy PASSED [ 15%] 364s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_mark_active PASSED [ 15%] 364s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_empty PASSED [ 15%] 364s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_simple PASSED [ 15%] 364s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_comment PASSED [ 15%] 364s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_ok_marker PASSED [ 15%] 364s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_completion_below_threshold PASSED [ 15%] 364s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_completion_above_threshold PASSED [ 15%] 364s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_skip_non_translatable_input PASSED [ 15%] 364s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_no_fuzzy PASSED [ 15%] 364s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_allow_fuzzy PASSED [ 15%] 364s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_mark_active PASSED [ 16%] 364s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_help PASSED [ 16%] 364s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_help PASSED [ 16%] 364s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert PASSED [ 16%] 364s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert_with_multiple_units PASSED [ 16%] 364s tests/translate/convert/test_po2oo.py::TestPO2OO::test_convertoo PASSED [ 16%] 364s tests/translate/convert/test_po2oo.py::TestPO2OO::test_pofilter PASSED [ 16%] 364s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_simple PASSED [ 16%] 364s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_escape PASSED [ 16%] 364s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_quotes PASSED [ 16%] 364s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_spaces PASSED [ 16%] 364s tests/translate/convert/test_po2oo.py::TestPO2OO::test_default_timestamp PASSED [ 16%] 364s tests/translate/convert/test_po2oo.py::TestPO2OO::test_escape_conversion PASSED [ 16%] 364s tests/translate/convert/test_po2oo.py::TestPO2OO::test_helpcontent_escapes PASSED [ 16%] 364s tests/translate/convert/test_po2oo.py::TestPO2OO::test_helpcontent_escapes2 PASSED [ 16%] 364s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_convertoo PASSED [ 16%] 364s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_pofilter PASSED [ 16%] 364s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_simple PASSED [ 16%] 364s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_escape PASSED [ 16%] 364s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_quotes PASSED [ 16%] 364s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_spaces PASSED [ 16%] 364s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_default_timestamp PASSED [ 16%] 364s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_escape_conversion PASSED [ 16%] 364s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_helpcontent_escapes PASSED [ 16%] 364s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_helpcontent_escapes2 PASSED [ 16%] 364s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_help PASSED [ 16%] 364s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp PASSED [ 16%] 364s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp_notemplate PASSED [ 16%] 364s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp_empty_template PASSED [ 16%] 364s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_simple PASSED [ 16%] 364s tests/translate/convert/test_po2php.py::TestPO2Php::test_space_preservation PASSED [ 16%] 364s tests/translate/convert/test_po2php.py::TestPO2Php::test_preserve_unused_statement PASSED [ 16%] 364s tests/translate/convert/test_po2php.py::TestPO2Php::test_not_translated_multiline PASSED [ 16%] 364s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_blank_entries PASSED [ 16%] 364s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_fuzzy PASSED [ 16%] 364s tests/translate/convert/test_po2php.py::TestPO2Php::test_locations_with_spaces PASSED [ 16%] 364s tests/translate/convert/test_po2php.py::TestPO2Php::test_inline_comments PASSED [ 16%] 364s tests/translate/convert/test_po2php.py::TestPO2Php::test_block_comments PASSED [ 16%] 364s tests/translate/convert/test_po2php.py::TestPO2Php::test_named_variables PASSED [ 16%] 364s tests/translate/convert/test_po2php.py::TestPO2Php::test_multiline PASSED [ 17%] 364s tests/translate/convert/test_po2php.py::TestPO2Php::test_hash_comment PASSED [ 17%] 364s tests/translate/convert/test_po2php.py::TestPO2Php::test_arrays PASSED [ 17%] 364s tests/translate/convert/test_po2php.py::TestPO2Php::test_named_nested_array PASSED [ 17%] 364s tests/translate/convert/test_po2php.py::TestPO2Php::test_unnamed_nested_arrays PASSED [ 17%] 364s tests/translate/convert/test_po2php.py::TestPO2Php::test_return_array_with_comments PASSED [ 17%] 364s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_propertyless_template XFAIL [ 17%] 364s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp PASSED [ 17%] 364s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp_notemplate PASSED [ 17%] 364s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp_empty_template PASSED [ 17%] 364s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_simple PASSED [ 17%] 364s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_space_preservation PASSED [ 17%] 364s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_preserve_unused_statement PASSED [ 17%] 364s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_not_translated_multiline PASSED [ 17%] 364s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_blank_entries PASSED [ 17%] 364s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_fuzzy PASSED [ 17%] 364s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_locations_with_spaces PASSED [ 17%] 364s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_inline_comments PASSED [ 17%] 364s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_block_comments PASSED [ 17%] 364s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_named_variables PASSED [ 17%] 364s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_multiline PASSED [ 17%] 364s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_hash_comment PASSED [ 17%] 364s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_arrays PASSED [ 17%] 364s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_named_nested_array PASSED [ 17%] 364s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_unnamed_nested_arrays PASSED [ 17%] 364s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_return_array_with_comments PASSED [ 17%] 364s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_propertyless_template XFAIL [ 17%] 364s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_help PASSED [ 17%] 364s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_simple PASSED [ 17%] 364s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated PASSED [ 17%] 364s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_hard_newlines_preserved PASSED [ 17%] 364s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_space_preservation PASSED [ 17%] 364s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_no_value PASSED [ 17%] 364s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_no_separator PASSED [ 17%] 364s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_value_no_key PASSED [ 17%] 364s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_blank_entries PASSED [ 17%] 364s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_fuzzy PASSED [ 17%] 364s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys PASSED [ 17%] 364s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey PASSED [ 17%] 364s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_margin_whitespace PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_all_whitespace PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_propertyless_template PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_delimiters PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_empty_value PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_personalities PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_simple PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_multiline PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_multiline2 PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_comments PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_unchanged PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_blank PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_gaia_plurals PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_duplicates PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_gwt_plurals PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_utf16_with_empty_lines PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_simple PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_hard_newlines_preserved PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_space_preservation PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_no_value PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_no_separator PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_value_no_key PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_blank_entries PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_fuzzy PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys_missing_accesskey PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_margin_whitespace PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_all_whitespace PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_propertyless_template PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_delimiters PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_empty_value PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_personalities PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_simple PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_multiline PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_multiline2 PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_comments PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_unchanged PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_blank PASSED [ 18%] 364s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_gaia_plurals PASSED [ 19%] 364s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_duplicates PASSED [ 19%] 364s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_gwt_plurals PASSED [ 19%] 364s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_utf16_with_empty_lines PASSED [ 19%] 364s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_help PASSED [ 19%] 364s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_help PASSED [ 19%] 364s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert PASSED [ 19%] 364s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_quotes PASSED [ 19%] 364s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment PASSED [ 19%] 364s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment_dos_eol PASSED [ 19%] 364s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_double_string PASSED [ 19%] 365s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_popup PASSED [ 19%] 365s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_discardable PASSED [ 19%] 365s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_menuex PASSED [ 19%] 365s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_newlines PASSED [ 19%] 365s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment_after PASSED [ 19%] 365s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_block_language PASSED [ 19%] 365s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_output_encoding PASSED [ 19%] 365s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_quotes_strintable PASSED [ 19%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_simpleunit PASSED [ 19%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_basic PASSED [ 19%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_multiline PASSED [ 19%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapednewlines PASSED [ 19%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapedtabs PASSED [ 19%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapedquotes PASSED [ 19%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_exclusions PASSED [ 19%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments PASSED [ 19%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingcomment PASSED [ 19%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingduplicatecomment PASSED [ 19%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingduplicatecommentwithwhitespace PASSED [ 19%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments PASSED [ 19%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments_existingcomment PASSED [ 19%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments_existingduplicatecomment PASSED [ 19%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments PASSED [ 19%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments_existingduplicatecomment PASSED [ 19%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments_existingcomment PASSED [ 19%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_existingcomments PASSED [ 19%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_plus_in_resourcekey PASSED [ 19%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_special_chars_in_resourcekey PASSED [ 19%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_simpleunit PASSED [ 20%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_basic PASSED [ 20%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_multiline PASSED [ 20%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapednewlines PASSED [ 20%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapedtabs PASSED [ 20%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapedquotes PASSED [ 20%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_exclusions PASSED [ 20%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments PASSED [ 20%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingcomment PASSED [ 20%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingduplicatecomment PASSED [ 20%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingduplicatecommentwithwhitespace PASSED [ 20%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments PASSED [ 20%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments_existingcomment PASSED [ 20%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments_existingduplicatecomment PASSED [ 20%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments PASSED [ 20%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments_existingduplicatecomment PASSED [ 20%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments_existingcomment PASSED [ 20%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_existingcomments PASSED [ 20%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_plus_in_resourcekey PASSED [ 20%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_special_chars_in_resourcekey PASSED [ 20%] 365s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_help PASSED [ 20%] 365s tests/translate/convert/test_po2sub.py::TestPO2Sub::test_subrip PASSED [ 20%] 365s tests/translate/convert/test_po2sub.py::TestPO2SubCommand::test_subrip PASSED [ 20%] 365s tests/translate/convert/test_po2sub.py::TestPO2SubCommand::test_help PASSED [ 20%] 365s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert_empty PASSED [ 20%] 365s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert PASSED [ 20%] 365s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert_marked_untranslated PASSED [ 20%] 365s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert_empty PASSED [ 20%] 365s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert PASSED [ 20%] 365s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert_marked_untranslated PASSED [ 20%] 365s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_help PASSED [ 20%] 365s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_basic PASSED [ 20%] 365s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_sourcelanguage PASSED [ 20%] 365s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_targetlanguage PASSED [ 20%] 365s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_multiline PASSED [ 20%] 365s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapednewlines PASSED [ 20%] 365s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapedtabs PASSED [ 20%] 365s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapedquotes PASSED [ 20%] 365s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_exclusions PASSED [ 20%] 365s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_nonascii PASSED [ 21%] 365s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_nonecomments PASSED [ 21%] 365s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_otherscomments PASSED [ 21%] 365s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_sourcecomments PASSED [ 21%] 365s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_typecomments PASSED [ 21%] 365s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_basic PASSED [ 21%] 365s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_sourcelanguage PASSED [ 21%] 365s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_targetlanguage PASSED [ 21%] 365s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_multiline PASSED [ 21%] 365s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapednewlines PASSED [ 21%] 365s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapedtabs PASSED [ 21%] 365s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapedquotes PASSED [ 21%] 365s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_exclusions PASSED [ 21%] 365s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_nonascii PASSED [ 21%] 365s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_nonecomments PASSED [ 21%] 365s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_otherscomments PASSED [ 21%] 365s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_sourcecomments PASSED [ 21%] 365s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_typecomments PASSED [ 21%] 365s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_help PASSED [ 21%] 365s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_context PASSED [ 21%] 365s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_simple_convert PASSED [ 21%] 365s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_nested_convert PASSED [ 21%] 365s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_template_required PASSED [ 21%] 365s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_untranslated_uses_source PASSED [ 21%] 365s tests/translate/convert/test_po2ts.py::TestPO2TS::test_simpleunit PASSED [ 21%] 365s tests/translate/convert/test_po2ts.py::TestPO2TS::test_simple_unicode_unit PASSED [ 21%] 365s tests/translate/convert/test_po2ts.py::TestPO2TS::test_fullunit PASSED [ 21%] 365s tests/translate/convert/test_po2ts.py::TestPO2TS::test_fuzzyunit PASSED [ 21%] 365s tests/translate/convert/test_po2ts.py::TestPO2TS::test_obsolete PASSED [ 21%] 365s tests/translate/convert/test_po2ts.py::TestPO2TS::test_duplicates PASSED [ 21%] 365s tests/translate/convert/test_po2ts.py::TestPO2TS::test_linebreak PASSED [ 21%] 365s tests/translate/convert/test_po2ts.py::TestPO2TS::test_linebreak_consecutive PASSED [ 21%] 365s tests/translate/convert/test_po2ts.py::TestPO2TS::test_plural PASSED [ 21%] 365s tests/translate/convert/test_po2ts.py::TestPO2TS::test_plural_fuzzy PASSED [ 21%] 365s tests/translate/convert/test_po2ts.py::TestPO2TS::test_unit_without_location PASSED [ 21%] 365s tests/translate/convert/test_po2ts.py::TestPO2TS::test_mixed_units_with_and_without_location PASSED [ 21%] 365s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_simpleunit PASSED [ 21%] 365s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_simple_unicode_unit PASSED [ 21%] 365s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_fullunit PASSED [ 21%] 365s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_fuzzyunit PASSED [ 22%] 365s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_obsolete PASSED [ 22%] 365s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_duplicates PASSED [ 22%] 365s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_linebreak PASSED [ 22%] 365s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_linebreak_consecutive PASSED [ 22%] 365s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_plural PASSED [ 22%] 365s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_plural_fuzzy PASSED [ 22%] 365s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_unit_without_location PASSED [ 22%] 365s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_mixed_units_with_and_without_location PASSED [ 22%] 365s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_help PASSED [ 22%] 365s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_basic PASSED [ 22%] 365s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_nonascii PASSED [ 22%] 365s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_blank_handling PASSED [ 22%] 365s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_fuzzy_handling PASSED [ 22%] 365s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_obsolete_ignore PASSED [ 22%] 365s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_header_ignore PASSED [ 22%] 365s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_convert_completion_below_threshold PASSED [ 22%] 365s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_convert_completion_above_threshold PASSED [ 22%] 365s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_substring_replacement PASSED [ 22%] 365s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_duplicate_text_segment_based_replacement PASSED [ 22%] 365s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_dokuwiki_flavour_segmentation PASSED [ 22%] 365s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_basic PASSED [ 22%] 365s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_nonascii PASSED [ 22%] 365s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_blank_handling PASSED [ 22%] 365s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_fuzzy_handling PASSED [ 22%] 365s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_obsolete_ignore PASSED [ 22%] 365s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_header_ignore PASSED [ 22%] 365s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_convert_completion_below_threshold PASSED [ 22%] 365s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_convert_completion_above_threshold PASSED [ 22%] 365s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_substring_replacement PASSED [ 22%] 365s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_duplicate_text_segment_based_replacement PASSED [ 22%] 365s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_dokuwiki_flavour_segmentation PASSED [ 22%] 365s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_help PASSED [ 22%] 365s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_basic PASSED [ 22%] 365s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_unicode PASSED [ 22%] 365s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_ordering_serialize PASSED [ 22%] 365s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_markmin PASSED [ 22%] 365s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_minimal PASSED [ 22%] 365s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_basic PASSED [ 22%] 365s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_multiline PASSED [ 23%] 365s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapednewlines PASSED [ 23%] 365s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapedtabs PASSED [ 23%] 365s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapedquotes PASSED [ 23%] 365s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_locationcomments PASSED [ 23%] 365s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_othercomments PASSED [ 23%] 365s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_automaticcomments PASSED [ 23%] 365s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_header PASSED [ 23%] 365s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_fuzzy PASSED [ 23%] 365s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_germanic_plurals PASSED [ 23%] 365s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_funny_plurals PASSED [ 23%] 365s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_language_tags PASSED [ 23%] 365s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_variables PASSED [ 23%] 365s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_approved PASSED [ 23%] 365s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_empty_PO PASSED [ 23%] 365s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_no_templates PASSED [ 23%] 365s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_simple_output PASSED [ 23%] 365s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_simple PASSED [ 23%] 365s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_translated PASSED [ 23%] 365s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_no_fuzzy PASSED [ 23%] 365s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_allow_fuzzy PASSED [ 23%] 365s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_nested PASSED [ 23%] 365s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_completion_below_threshold PASSED [ 23%] 365s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_completion_above_threshold PASSED [ 23%] 365s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_empty_PO PASSED [ 23%] 365s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_no_templates PASSED [ 23%] 365s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_simple_output PASSED [ 23%] 365s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_simple PASSED [ 23%] 365s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_translated PASSED [ 23%] 365s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_no_fuzzy PASSED [ 23%] 365s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_allow_fuzzy PASSED [ 23%] 365s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_nested PASSED [ 23%] 365s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_completion_below_threshold PASSED [ 23%] 365s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_completion_above_threshold PASSED [ 23%] 365s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_help PASSED [ 23%] 365s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_convertpot_blank PASSED [ 23%] 365s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_convertpot_blank_plurals PASSED [ 23%] 365s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_simple PASSED [ 23%] 365s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_messages_marked_fuzzy PASSED [ 23%] 365s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_plurals_with_fuzzy_matching PASSED [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_change XFAIL [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_change PASSED [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_and_whitespace_change PASSED [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_ambiguous_with_disambiguous PASSED [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_accelerator_changes XFAIL [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_lines_cut_differently XFAIL [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_automatic_comments_dont_duplicate PASSED [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_automatic_comments_new_overrides_old PASSED [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_comments_with_blank_comment_lines PASSED [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_empty_commentlines PASSED [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgidcomments PASSED [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_with_msgidcomment PASSED [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_plurals PASSED [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_obsoleting_messages PASSED [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_not_obsoleting_empty_messages PASSED [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_new_before_obsolete PASSED [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_resurrect_obsolete_messages PASSED [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_resurrect_obsolete_messages_into_msgidcomment PASSED [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_header_initialisation PASSED [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_comments PASSED [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_typecomments PASSED [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgctxt PASSED [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgctxt_multiline PASSED [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgid_merge_on_location PASSED [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgid_merge_on_id PASSED [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_empty_msgid PASSED [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_migrate_msgidcomment_to_msgctxt PASSED [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_obsolete_msgctxt PASSED [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_small_strings PASSED [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_convertpot_blank PASSED [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_convertpot_blank_plurals PASSED [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_simple PASSED [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_messages_marked_fuzzy PASSED [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_plurals_with_fuzzy_matching PASSED [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_change XFAIL [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_change PASSED [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_and_whitespace_change PASSED [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_ambiguous_with_disambiguous PASSED [ 24%] 365s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_accelerator_changes XFAIL [ 25%] 365s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_lines_cut_differently XFAIL [ 25%] 365s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_automatic_comments_dont_duplicate PASSED [ 25%] 365s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_automatic_comments_new_overrides_old PASSED [ 25%] 365s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_comments_with_blank_comment_lines PASSED [ 25%] 365s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_empty_commentlines PASSED [ 25%] 365s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgidcomments PASSED [ 25%] 365s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_with_msgidcomment PASSED [ 25%] 365s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_plurals PASSED [ 25%] 365s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_obsoleting_messages PASSED [ 25%] 365s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_not_obsoleting_empty_messages PASSED [ 25%] 365s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_new_before_obsolete PASSED [ 25%] 365s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_resurrect_obsolete_messages PASSED [ 25%] 365s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_resurrect_obsolete_messages_into_msgidcomment PASSED [ 25%] 365s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_header_initialisation PASSED [ 25%] 365s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_comments PASSED [ 25%] 365s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_typecomments PASSED [ 25%] 365s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgctxt PASSED [ 25%] 365s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgctxt_multiline PASSED [ 25%] 365s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgid_merge_on_location PASSED [ 25%] 365s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgid_merge_on_id PASSED [ 25%] 365s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_empty_msgid PASSED [ 25%] 365s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_migrate_msgidcomment_to_msgctxt PASSED [ 25%] 365s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_obsolete_msgctxt PASSED [ 25%] 365s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_small_strings PASSED [ 25%] 365s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_help PASSED [ 25%] 365s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_no_endlines_added PASSED [ 25%] 365s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_uncomment_contributors PASSED [ 25%] 365s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_multiline_comment_newlines PASSED [ 25%] 365s tests/translate/convert/test_prop2po.py::TestProp2PO::test_simpleentry PASSED [ 25%] 365s tests/translate/convert/test_prop2po.py::TestProp2PO::test_convertprop PASSED [ 25%] 365s tests/translate/convert/test_prop2po.py::TestProp2PO::test_no_value_entry PASSED [ 25%] 365s tests/translate/convert/test_prop2po.py::TestProp2PO::test_no_separator_entry PASSED [ 25%] 365s tests/translate/convert/test_prop2po.py::TestProp2PO::test_value_no_key_entry PASSED [ 25%] 365s tests/translate/convert/test_prop2po.py::TestProp2PO::test_tab_at_end_of_string PASSED [ 25%] 365s tests/translate/convert/test_prop2po.py::TestProp2PO::test_tab_at_start_of_value PASSED [ 25%] 365s tests/translate/convert/test_prop2po.py::TestProp2PO::test_unicode PASSED [ 25%] 365s tests/translate/convert/test_prop2po.py::TestProp2PO::test_multiline_escaping PASSED [ 25%] 365s tests/translate/convert/test_prop2po.py::TestProp2PO::test_comments PASSED [ 25%] 366s tests/translate/convert/test_prop2po.py::TestProp2PO::test_multiline_comments PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2PO::test_folding_accesskeys PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2PO::test_dont_translate PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2PO::test_duplicate_locations_mozilla PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2PO::test_emptyproperty PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2PO::test_emptyproperty_translated PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2PO::test_newlines_in_value PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2PO::test_header_comments PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2PO::test_unassociated_comment_order PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2PO::test_x_header PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2PO::test_gaia_plurals PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2PO::test_successive_gaia_plurals PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2PO::test_duplicate_keys PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2PO::test_gwt_plurals PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2PO::test_strings_bilingual_simple PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2PO::test_strings_bilingual_multiline PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_simpleentry PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_convertprop PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_no_value_entry PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_no_separator_entry PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_value_no_key_entry PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_tab_at_end_of_string PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_tab_at_start_of_value PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_unicode PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_multiline_escaping PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_comments PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_multiline_comments PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_folding_accesskeys PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_dont_translate PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_duplicate_locations_mozilla PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_emptyproperty PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_emptyproperty_translated PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_newlines_in_value PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_header_comments PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_unassociated_comment_order PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_x_header PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_gaia_plurals PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_successive_gaia_plurals PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_duplicate_keys PASSED [ 26%] 366s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_gwt_plurals PASSED [ 27%] 366s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_strings_bilingual_simple PASSED [ 27%] 366s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_strings_bilingual_multiline PASSED [ 27%] 366s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_help PASSED [ 27%] 366s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_help PASSED [ 27%] 366s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert PASSED [ 27%] 366s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf16 PASSED [ 27%] 366s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong PASSED [ 27%] 366s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf8 PASSED [ 27%] 366s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_menuex PASSED [ 27%] 366s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_simple PASSED [ 27%] 366s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_multiple_units PASSED [ 27%] 366s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_automaticcomments PASSED [ 27%] 366s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_translatorcomments PASSED [ 27%] 366s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_locations PASSED [ 27%] 366s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple PASSED [ 27%] 366s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_multiple_units PASSED [ 27%] 366s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_automaticcomments PASSED [ 27%] 366s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_translatorcomments PASSED [ 27%] 366s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_locations PASSED [ 27%] 366s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_help PASSED [ 27%] 366s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_pot PASSED [ 27%] 366s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_po PASSED [ 27%] 366s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_remove_duplicates PASSED [ 27%] 366s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_convert_empty PASSED [ 27%] 366s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_converttiki_defaults PASSED [ 27%] 366s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_converttiki_includeunused PASSED [ 27%] 366s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_convert_empty PASSED [ 27%] 366s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_converttiki_defaults PASSED [ 27%] 366s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_converttiki_includeunused PASSED [ 27%] 366s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_help PASSED [ 27%] 366s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_simple_convert PASSED [ 27%] 366s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_nested_convert PASSED [ 27%] 366s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_comment_extraction PASSED [ 27%] 366s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_merge_with_template PASSED [ 27%] 366s tests/translate/convert/test_ts2po.py::TestTS2PO::test_blank PASSED [ 27%] 366s tests/translate/convert/test_ts2po.py::TestTS2PO::test_basic PASSED [ 27%] 366s tests/translate/convert/test_ts2po.py::TestTS2PO::test_unfinished PASSED [ 27%] 366s tests/translate/convert/test_ts2po.py::TestTS2PO::test_multiline PASSED [ 27%] 366s tests/translate/convert/test_ts2po.py::TestTS2PO::test_obsolete PASSED [ 28%] 366s tests/translate/convert/test_ts2po.py::TestTS2PO::test_comment PASSED [ 28%] 366s tests/translate/convert/test_ts2po.py::TestTS2PO::test_extracomment PASSED [ 28%] 366s tests/translate/convert/test_ts2po.py::TestTS2PO::test_emptycontext PASSED [ 28%] 366s tests/translate/convert/test_ts2po.py::TestTS2PO::test_plural PASSED [ 28%] 366s tests/translate/convert/test_ts2po.py::TestTS2PO::test_plural_unfinished PASSED [ 28%] 366s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_blank PASSED [ 28%] 366s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_basic PASSED [ 28%] 366s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_unfinished PASSED [ 28%] 366s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_multiline PASSED [ 28%] 366s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_obsolete PASSED [ 28%] 366s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_comment PASSED [ 28%] 366s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_extracomment PASSED [ 28%] 366s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_emptycontext PASSED [ 28%] 366s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_plural PASSED [ 28%] 366s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_plural_unfinished PASSED [ 28%] 366s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_help PASSED [ 28%] 366s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_convert_empty PASSED [ 28%] 366s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_keep_duplicates PASSED [ 28%] 366s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_drop_duplicates PASSED [ 28%] 366s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_simple PASSED [ 28%] 366s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_multiple_units PASSED [ 28%] 366s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_carriage_return PASSED [ 28%] 366s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_merge PASSED [ 28%] 366s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_no_segmentation PASSED [ 28%] 366s tests/translate/convert/test_txt2po.py::TestDoku2po::test_convert_empty PASSED [ 28%] 366s tests/translate/convert/test_txt2po.py::TestDoku2po::test_keep_duplicates PASSED [ 28%] 366s tests/translate/convert/test_txt2po.py::TestDoku2po::test_drop_duplicates PASSED [ 28%] 366s tests/translate/convert/test_txt2po.py::TestDoku2po::test_basic PASSED [ 28%] 366s tests/translate/convert/test_txt2po.py::TestDoku2po::test_bullet_list PASSED [ 28%] 366s tests/translate/convert/test_txt2po.py::TestDoku2po::test_numbered_list PASSED [ 28%] 366s tests/translate/convert/test_txt2po.py::TestDoku2po::test_spacing PASSED [ 28%] 366s tests/translate/convert/test_txt2po.py::TestDoku2po::test_merge PASSED [ 28%] 366s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_convert_empty PASSED [ 28%] 366s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_keep_duplicates PASSED [ 28%] 366s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_drop_duplicates PASSED [ 28%] 366s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_simple PASSED [ 28%] 366s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_multiple_units PASSED [ 28%] 366s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_carriage_return PASSED [ 28%] 366s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_merge PASSED [ 29%] 366s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_no_segmentation PASSED [ 29%] 366s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_help PASSED [ 29%] 366s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_basic PASSED [ 29%] 366s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_unicode PASSED [ 29%] 366s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_markmin PASSED [ 29%] 366s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_help PASSED [ 29%] 366s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert PASSED [ 29%] 366s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_minimal PASSED [ 29%] 366s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_basic PASSED [ 29%] 366s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_translatorcomments PASSED [ 29%] 366s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_autocomment PASSED [ 29%] 366s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_locations PASSED [ 29%] 366s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_fuzzy PASSED [ 29%] 366s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_plurals PASSED [ 29%] 366s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_minimal PASSED [ 29%] 366s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_basic PASSED [ 29%] 366s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_translatorcomments PASSED [ 29%] 366s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_autocomment PASSED [ 29%] 366s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_locations PASSED [ 29%] 366s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_fuzzy PASSED [ 29%] 366s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_plurals PASSED [ 29%] 366s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_help PASSED [ 29%] 366s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_simple_convert PASSED [ 29%] 366s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_minimal PASSED [ 29%] 366s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_basic PASSED [ 29%] 366s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_translatorcomments PASSED [ 29%] 366s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_autocomment PASSED [ 29%] 366s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_locations PASSED [ 29%] 366s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_fuzzy PASSED [ 29%] 366s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_plurals PASSED [ 29%] 366s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_help PASSED [ 29%] 366s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_preserve_filename PASSED [ 29%] 366s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_pot PASSED [ 29%] 366s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_po PASSED [ 29%] 366s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_remove_duplicates PASSED [ 29%] 366s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_convert_empty_YAML PASSED [ 29%] 366s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_simple_output PASSED [ 29%] 366s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_simple PASSED [ 29%] 366s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_nested PASSED [ 30%] 366s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_no_duplicates XFAIL [ 30%] 366s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_convert_with_template PASSED [ 30%] 366s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_comment_extraction PASSED [ 30%] 366s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_comment_extraction_nested PASSED [ 30%] 366s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_convert_empty_YAML PASSED [ 30%] 366s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_simple_output PASSED [ 30%] 366s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_simple PASSED [ 30%] 366s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_nested PASSED [ 30%] 366s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_no_duplicates XFAIL [ 30%] 366s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_convert_with_template PASSED [ 30%] 366s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_comment_extraction PASSED [ 30%] 366s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_comment_extraction_nested PASSED [ 30%] 366s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_help PASSED [ 30%] 366s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_empty_target PASSED [ 30%] 366s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_ellipsis PASSED [ 30%] 366s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_spacestart_spaceend PASSED [ 30%] 366s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_start_capitals PASSED [ 30%] 366s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_end_punc PASSED [ 30%] 366s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_combinations PASSED [ 30%] 366s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_nothing_to_do PASSED [ 30%] 366s tests/translate/filters/test_checks.py::test_defaults PASSED [ 30%] 366s tests/translate/filters/test_checks.py::test_construct PASSED [ 30%] 366s tests/translate/filters/test_checks.py::test_accelerator_markers PASSED [ 30%] 366s tests/translate/filters/test_checks.py::test_messages PASSED [ 30%] 366s tests/translate/filters/test_checks.py::test_accelerators PASSED [ 30%] 366s tests/translate/filters/test_checks.py::test_acceleratedvariables XFAIL [ 30%] 366s tests/translate/filters/test_checks.py::test_acronyms PASSED [ 30%] 366s tests/translate/filters/test_checks.py::test_blank PASSED [ 30%] 366s tests/translate/filters/test_checks.py::test_brackets PASSED [ 30%] 366s tests/translate/filters/test_checks.py::test_compendiumconflicts PASSED [ 30%] 366s tests/translate/filters/test_checks.py::test_doublequoting PASSED [ 30%] 366s tests/translate/filters/test_checks.py::test_doublespacing PASSED [ 30%] 366s tests/translate/filters/test_checks.py::test_doublewords PASSED [ 30%] 366s tests/translate/filters/test_checks.py::test_endpunc PASSED [ 30%] 366s tests/translate/filters/test_checks.py::test_endwhitespace PASSED [ 30%] 366s tests/translate/filters/test_checks.py::test_escapes PASSED [ 30%] 366s tests/translate/filters/test_checks.py::test_newlines PASSED [ 30%] 366s tests/translate/filters/test_checks.py::test_tabs PASSED [ 30%] 366s tests/translate/filters/test_checks.py::test_filepaths PASSED [ 31%] 366s tests/translate/filters/test_checks.py::test_kdecomments PASSED [ 31%] 366s tests/translate/filters/test_checks.py::test_long PASSED [ 31%] 366s tests/translate/filters/test_checks.py::test_musttranslatewords XFAIL [ 31%] 366s tests/translate/filters/test_checks.py::test_notranslatewords PASSED [ 31%] 366s tests/translate/filters/test_checks.py::test_numbers PASSED [ 31%] 366s tests/translate/filters/test_checks.py::test_persian_numbers PASSED [ 31%] 366s tests/translate/filters/test_checks.py::test_bengali_numbers PASSED [ 31%] 366s tests/translate/filters/test_checks.py::test_arabic_numbers PASSED [ 31%] 366s tests/translate/filters/test_checks.py::test_assamese_numbers PASSED [ 31%] 366s tests/translate/filters/test_checks.py::test_options PASSED [ 31%] 367s tests/translate/filters/test_checks.py::test_printf PASSED [ 31%] 367s tests/translate/filters/test_checks.py::test_pythonbraceformat PASSED [ 31%] 367s tests/translate/filters/test_checks.py::test_puncspacing PASSED [ 31%] 367s tests/translate/filters/test_checks.py::test_purepunc PASSED [ 31%] 367s tests/translate/filters/test_checks.py::test_sentencecount PASSED [ 31%] 367s tests/translate/filters/test_checks.py::test_short PASSED [ 31%] 367s tests/translate/filters/test_checks.py::test_singlequoting PASSED [ 31%] 367s tests/translate/filters/test_checks.py::test_vietnamese_singlequoting PASSED [ 31%] 367s tests/translate/filters/test_checks.py::test_persian_single_and_double_quote_fail_at_the_same_time XFAIL [ 31%] 367s tests/translate/filters/test_checks.py::test_persian_quoting PASSED [ 31%] 367s tests/translate/filters/test_checks.py::test_simplecaps PASSED [ 31%] 367s tests/translate/filters/test_checks.py::test_spellcheck SKIPPED (Spe...) [ 31%] 367s tests/translate/filters/test_checks.py::test_startcaps PASSED [ 31%] 367s tests/translate/filters/test_checks.py::test_startpunc PASSED [ 31%] 367s tests/translate/filters/test_checks.py::test_startwhitespace PASSED [ 31%] 367s tests/translate/filters/test_checks.py::test_unchanged PASSED [ 31%] 367s tests/translate/filters/test_checks.py::test_untranslated PASSED [ 31%] 367s tests/translate/filters/test_checks.py::test_validchars PASSED [ 31%] 367s tests/translate/filters/test_checks.py::test_minimalchecker PASSED [ 31%] 367s tests/translate/filters/test_checks.py::test_reducedchecker PASSED [ 31%] 367s tests/translate/filters/test_checks.py::test_variables_kde PASSED [ 31%] 367s tests/translate/filters/test_checks.py::test_variables_gnome PASSED [ 31%] 367s tests/translate/filters/test_checks.py::test_variables_mozilla PASSED [ 31%] 367s tests/translate/filters/test_checks.py::test_variables_openoffice PASSED [ 31%] 367s tests/translate/filters/test_checks.py::test_variables_cclicense PASSED [ 31%] 367s tests/translate/filters/test_checks.py::test_variables_ios PASSED [ 31%] 367s tests/translate/filters/test_checks.py::test_xmltags PASSED [ 31%] 367s tests/translate/filters/test_checks.py::test_bengali_mozilla_inverted_xmltags XFAIL [ 31%] 367s tests/translate/filters/test_checks.py::test_ooxmltags PASSED [ 32%] 367s tests/translate/filters/test_checks.py::test_functions PASSED [ 32%] 367s tests/translate/filters/test_checks.py::test_emails PASSED [ 32%] 367s tests/translate/filters/test_checks.py::test_urls PASSED [ 32%] 367s tests/translate/filters/test_checks.py::test_simpleplurals PASSED [ 32%] 367s tests/translate/filters/test_checks.py::test_nplurals PASSED [ 32%] 367s tests/translate/filters/test_checks.py::test_credits PASSED [ 32%] 367s tests/translate/filters/test_checks.py::test_gconf PASSED [ 32%] 367s tests/translate/filters/test_checks.py::test_validxml PASSED [ 32%] 367s tests/translate/filters/test_checks.py::test_hassuggestion PASSED [ 32%] 367s tests/translate/filters/test_checks.py::test_dialogsizes PASSED [ 32%] 367s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers PASSED [ 32%] 367s tests/translate/filters/test_checks.py::test_mozilla_no_accelerators_for_indic PASSED [ 32%] 367s tests/translate/filters/test_checks.py::test_noaccelerators_only_in_mozilla_checker PASSED [ 32%] 367s tests/translate/filters/test_checks.py::test_ensure_accelerators_not_in_target_if_not_in_source PASSED [ 32%] 367s tests/translate/filters/test_checks.py::test_ensure_bengali_languages_script_is_correct PASSED [ 32%] 367s tests/translate/filters/test_checks.py::test_category PASSED [ 32%] 367s tests/translate/filters/test_decoration.py::test_spacestart PASSED [ 32%] 367s tests/translate/filters/test_decoration.py::test_isvalidaccelerator PASSED [ 32%] 367s tests/translate/filters/test_decoration.py::test_find_marked_variables PASSED [ 32%] 367s tests/translate/filters/test_decoration.py::test_getnumbers PASSED [ 32%] 367s tests/translate/filters/test_decoration.py::test_getfunctions PASSED [ 32%] 367s tests/translate/filters/test_pofilter.py::TestPOFilter::test_simplepass PASSED [ 32%] 367s tests/translate/filters/test_pofilter.py::TestPOFilter::test_simplefail PASSED [ 32%] 367s tests/translate/filters/test_pofilter.py::TestPOFilter::test_variables_across_lines PASSED [ 32%] 367s tests/translate/filters/test_pofilter.py::TestPOFilter::test_ignore_if_already_marked PASSED [ 32%] 367s tests/translate/filters/test_pofilter.py::TestPOFilter::test_non_existent_check PASSED [ 32%] 367s tests/translate/filters/test_pofilter.py::TestPOFilter::test_list_all_tests PASSED [ 32%] 367s tests/translate/filters/test_pofilter.py::TestPOFilter::test_test_against_fuzzy PASSED [ 32%] 367s tests/translate/filters/test_pofilter.py::TestPOFilter::test_test_against_review PASSED [ 32%] 367s tests/translate/filters/test_pofilter.py::TestPOFilter::test_isfuzzy PASSED [ 32%] 367s tests/translate/filters/test_pofilter.py::TestPOFilter::test_isreview PASSED [ 32%] 367s tests/translate/filters/test_pofilter.py::TestPOFilter::test_notes PASSED [ 32%] 367s tests/translate/filters/test_pofilter.py::TestPOFilter::test_unicode PASSED [ 32%] 367s tests/translate/filters/test_pofilter.py::TestPOFilter::test_preconditions PASSED [ 32%] 367s tests/translate/filters/test_pofilter.py::TestPOFilter::test_msgid_comments PASSED [ 32%] 367s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_simplepass PASSED [ 32%] 367s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_simplefail PASSED [ 32%] 367s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_variables_across_lines PASSED [ 32%] 367s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_ignore_if_already_marked PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_non_existent_check PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_list_all_tests PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_test_against_fuzzy PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_test_against_review PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_isfuzzy PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_isreview PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_notes PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_unicode PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_preconditions PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_simplepass PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_simplefail PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_variables_across_lines PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_ignore_if_already_marked PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_non_existent_check PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_list_all_tests PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_notes PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_unicode PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_preconditions PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_test_against_fuzzy PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_test_against_review PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_isfuzzy PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_isreview PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_simplepass PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_simplefail PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_variables_across_lines PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_ignore_if_already_marked PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_non_existent_check PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_list_all_tests PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_test_against_fuzzy PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_test_against_review PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_isfuzzy PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_isreview PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_notes PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_unicode PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_preconditions PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_msgid_comments PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_cedillas PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_niciun PASSED [ 33%] 367s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_nicio PASSED [ 34%] 367s tests/translate/filters/test_prefilters.py::test_removekdecomments PASSED [ 34%] 367s tests/translate/filters/test_prefilters.py::test_filterwordswithpunctuation PASSED [ 34%] 367s tests/translate/lang/test_af.py::test_sentences PASSED [ 34%] 367s tests/translate/lang/test_af.py::test_capsstart PASSED [ 34%] 367s tests/translate/lang/test_af.py::test_transliterate_cyrillic PASSED [ 34%] 367s tests/translate/lang/test_am.py::test_punctranslate PASSED [ 34%] 367s tests/translate/lang/test_am.py::test_sentences PASSED [ 34%] 367s tests/translate/lang/test_ar.py::test_punctranslate PASSED [ 34%] 367s tests/translate/lang/test_ar.py::test_sentences PASSED [ 34%] 367s tests/translate/lang/test_common.py::test_characters PASSED [ 34%] 367s tests/translate/lang/test_common.py::test_words PASSED [ 34%] 367s tests/translate/lang/test_common.py::test_word_khmer PASSED [ 34%] 367s tests/translate/lang/test_common.py::test_sentences PASSED [ 34%] 367s tests/translate/lang/test_common.py::test_capsstart PASSED [ 34%] 367s tests/translate/lang/test_common.py::test_numstart PASSED [ 34%] 367s tests/translate/lang/test_common.py::test_punctranslate PASSED [ 34%] 367s tests/translate/lang/test_common.py::test_length_difference PASSED [ 34%] 367s tests/translate/lang/test_common.py::test_alter_length PASSED [ 34%] 367s tests/translate/lang/test_data.py::test_normalise_code PASSED [ 34%] 367s tests/translate/lang/test_data.py::test_simplify_to_common PASSED [ 34%] 367s tests/translate/lang/test_data.py::test_is_rtl PASSED [ 34%] 367s tests/translate/lang/test_el.py::test_punctranslate PASSED [ 34%] 367s tests/translate/lang/test_el.py::test_sentences PASSED [ 34%] 367s tests/translate/lang/test_es.py::test_punctranslate PASSED [ 34%] 367s tests/translate/lang/test_es.py::test_sentences PASSED [ 34%] 367s tests/translate/lang/test_fa.py::test_punctranslate PASSED [ 34%] 367s tests/translate/lang/test_fa.py::test_sentences PASSED [ 34%] 367s tests/translate/lang/test_factory.py::test_getlanguage PASSED [ 34%] 367s tests/translate/lang/test_factory.py::test_get_all_languages PASSED [ 34%] 367s tests/translate/lang/test_fr.py::test_punctranslate PASSED [ 34%] 367s tests/translate/lang/test_fr.py::test_sentences PASSED [ 34%] 367s tests/translate/lang/test_hy.py::test_punctranslate PASSED [ 34%] 367s tests/translate/lang/test_hy.py::test_sentences PASSED [ 34%] 367s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_identify_lang PASSED [ 34%] 367s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_identify_store PASSED [ 34%] 367s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_bad_init_data PASSED [ 34%] 367s tests/translate/lang/test_ja.py::test_punctranslate PASSED [ 34%] 367s tests/translate/lang/test_ja.py::test_sentences PASSED [ 34%] 367s tests/translate/lang/test_km.py::test_punctranslate PASSED [ 35%] 367s tests/translate/lang/test_km.py::test_sentences PASSED [ 35%] 367s tests/translate/lang/test_ko.py::test_punctranslate PASSED [ 35%] 367s tests/translate/lang/test_ko.py::test_sentences PASSED [ 35%] 367s tests/translate/lang/test_ne.py::test_punctranslate PASSED [ 35%] 367s tests/translate/lang/test_ne.py::test_sentences PASSED [ 35%] 367s tests/translate/lang/test_nqo.py::test_punctranslate PASSED [ 35%] 367s tests/translate/lang/test_nqo.py::test_sentences PASSED [ 35%] 367s tests/translate/lang/test_or.py::test_punctranslate PASSED [ 35%] 367s tests/translate/lang/test_or.py::test_country_code PASSED [ 35%] 367s tests/translate/lang/test_or.py::test_sentences PASSED [ 35%] 367s tests/translate/lang/test_poedit.py::test_isocode PASSED [ 35%] 367s tests/translate/lang/test_ro.py::test_cedillas PASSED [ 35%] 367s tests/translate/lang/test_ro.py::test_niciun PASSED [ 35%] 367s tests/translate/lang/test_scn.py::test_italianisms PASSED [ 35%] 367s tests/translate/lang/test_scn.py::test_vocalism PASSED [ 35%] 367s tests/translate/lang/test_scn.py::test_suffixes PASSED [ 35%] 367s tests/translate/lang/test_team.py::test_simple PASSED [ 35%] 367s tests/translate/lang/test_th.py::test_punctranslate PASSED [ 35%] 367s tests/translate/lang/test_th.py::test_sentences PASSED [ 35%] 367s tests/translate/lang/test_tr.py::test_sentences PASSED [ 35%] 367s tests/translate/lang/test_uk.py::test_sentences PASSED [ 35%] 367s tests/translate/lang/test_vi.py::test_punctranslate PASSED [ 35%] 367s tests/translate/lang/test_vi.py::test_sentences PASSED [ 35%] 367s tests/translate/lang/test_zh.py::test_punctranslate PASSED [ 35%] 367s tests/translate/lang/test_zh.py::test_sentences PASSED [ 35%] 367s tests/translate/misc/test_deprecation.py::TestDeprecation::test_deprecated_decorator PASSED [ 35%] 367s tests/translate/misc/test_deprecation.py::TestDeprecation::test_no_deprecated_decorator PASSED [ 35%] 367s tests/translate/misc/test_dictutils.py::test_cidict_has_key PASSED [ 35%] 367s tests/translate/misc/test_dictutils.py::test_cidict_pop PASSED [ 35%] 367s tests/translate/misc/test_dictutils.py::test_cidict_getitem PASSED [ 35%] 367s tests/translate/misc/test_dictutils.py::test_cidict_setitem PASSED [ 35%] 367s tests/translate/misc/test_dictutils.py::test_cidict_delitem PASSED [ 35%] 367s tests/translate/misc/test_multistring.py::TestMultistring::test_constructor PASSED [ 35%] 367s tests/translate/misc/test_multistring.py::TestMultistring::test_constructor_validation PASSED [ 35%] 367s tests/translate/misc/test_multistring.py::TestMultistring::test_repr PASSED [ 35%] 367s tests/translate/misc/test_multistring.py::TestMultistring::test_replace PASSED [ 35%] 367s tests/translate/misc/test_multistring.py::TestMultistring::test_comparison PASSED [ 35%] 367s tests/translate/misc/test_multistring.py::TestMultistring::test_coercion PASSED [ 35%] 367s tests/translate/misc/test_multistring.py::TestMultistring::test_unicode_coercion PASSED [ 36%] 367s tests/translate/misc/test_multistring.py::TestMultistring::test_list_coercion PASSED [ 36%] 367s tests/translate/misc/test_multistring.py::TestMultistring::test_multistring_hash PASSED [ 36%] 367s tests/translate/misc/test_multistring.py::TestMultistring::test_bool PASSED [ 36%] 367s tests/translate/misc/test_optrecurse.py::TestRecursiveOptionParser::test_splitext PASSED [ 36%] 367s tests/translate/misc/test_optrecurse.py::TestRecursiveOptionParser::test_outputfile_receives_bytes PASSED [ 36%] 367s tests/translate/misc/test_progressbar.py::test_hashprogressbar PASSED [ 36%] 367s tests/translate/misc/test_quote.py::test_find_all PASSED [ 36%] 367s tests/translate/misc/test_quote.py::test_extract PASSED [ 36%] 367s tests/translate/misc/test_quote.py::test_extractwithoutquotes PASSED [ 36%] 367s tests/translate/misc/test_quote.py::test_extractwithoutquotes_passfunc PASSED [ 36%] 367s tests/translate/misc/test_quote.py::test_stripcomment PASSED [ 36%] 367s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode PASSED [ 36%] 367s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode_iso_8859_1 PASSED [ 36%] 367s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode_ascii PASSED [ 36%] 367s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode_unicode_range PASSED [ 36%] 367s tests/translate/misc/test_quote.py::TestEncoding::test_java_utf8_properties_encode PASSED [ 36%] 367s tests/translate/misc/test_quote.py::TestEncoding::test_escapespace PASSED [ 36%] 367s tests/translate/misc/test_quote.py::TestEncoding::test_mozillaescapemarginspaces PASSED [ 36%] 367s tests/translate/misc/test_quote.py::TestEncoding::test_mozilla_control_escapes PASSED [ 36%] 367s tests/translate/misc/test_quote.py::TestEncoding::test_propertiesdecode PASSED [ 36%] 367s tests/translate/misc/test_quote.py::TestEncoding::test_controlchars PASSED [ 36%] 367s tests/translate/misc/test_quote.py::TestEncoding::test_properties_decode_slashu PASSED [ 36%] 367s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding PASSED [ 36%] 367s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_existing_entities PASSED [ 36%] 367s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_passthrough PASSED [ 36%] 367s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_nonentities PASSED [ 36%] 367s tests/translate/misc/test_xml_helpers.py::TestReindent::test_indent_four_spaces PASSED [ 36%] 367s tests/translate/misc/test_xml_helpers.py::TestReindent::test_indent_tab PASSED [ 36%] 367s tests/translate/search/test_lshtein.py::TestLevenshtein::test_basic_distance PASSED [ 36%] 367s tests/translate/search/test_lshtein.py::TestLevenshtein::test_basic_similarity PASSED [ 36%] 367s tests/translate/search/test_lshtein.py::TestLevenshtein::test_long_similarity PASSED [ 36%] 367s tests/translate/search/test_match.py::TestMatch::test_matching PASSED [ 36%] 367s tests/translate/search/test_match.py::TestMatch::test_multiple_store PASSED [ 36%] 367s tests/translate/search/test_match.py::TestMatch::test_extendtm PASSED [ 36%] 367s tests/translate/search/test_match.py::TestMatch::test_terminology PASSED [ 36%] 367s tests/translate/search/test_match.py::TestMatch::test_brackets PASSED [ 36%] 367s tests/translate/search/test_match.py::TestMatch::test_past_tences PASSED [ 36%] 367s tests/translate/search/test_match.py::TestMatch::test_space_mismatch PASSED [ 36%] 367s tests/translate/search/test_match.py::TestMatch::test_hyphen_mismatch PASSED [ 37%] 367s tests/translate/search/test_terminology.py::TestTerminology::test_basic PASSED [ 37%] 367s tests/translate/services/test_tmserver.py::TestTMServer::test_import PASSED [ 37%] 368s tests/translate/services/test_tmserver.py::TestTMServer::test_server PASSED [ 37%] 368s tests/translate/storage/placeables/test_base.py::TestStringElem::test_parse PASSED [ 37%] 368s tests/translate/storage/placeables/test_base.py::TestStringElem::test_tree PASSED [ 37%] 368s tests/translate/storage/placeables/test_base.py::TestStringElem::test_add PASSED [ 37%] 368s tests/translate/storage/placeables/test_base.py::TestStringElem::test_contains PASSED [ 37%] 368s tests/translate/storage/placeables/test_base.py::TestStringElem::test_getitem PASSED [ 37%] 368s tests/translate/storage/placeables/test_base.py::TestStringElem::test_getslice PASSED [ 37%] 368s tests/translate/storage/placeables/test_base.py::TestStringElem::test_iter PASSED [ 37%] 368s tests/translate/storage/placeables/test_base.py::TestStringElem::test_len PASSED [ 37%] 368s tests/translate/storage/placeables/test_base.py::TestStringElem::test_mul PASSED [ 37%] 368s tests/translate/storage/placeables/test_base.py::TestStringElem::test_elem_offset PASSED [ 37%] 368s tests/translate/storage/placeables/test_base.py::TestStringElem::test_elem_at_offset PASSED [ 37%] 368s tests/translate/storage/placeables/test_base.py::TestStringElem::test_find PASSED [ 37%] 368s tests/translate/storage/placeables/test_base.py::TestStringElem::test_find_elems_with PASSED [ 37%] 368s tests/translate/storage/placeables/test_base.py::TestStringElem::test_flatten PASSED [ 37%] 368s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case1 PASSED [ 37%] 368s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case2 PASSED [ 37%] 368s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case3 PASSED [ 37%] 368s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case4 PASSED [ 37%] 368s tests/translate/storage/placeables/test_base.py::TestStringElem::test_insert PASSED [ 37%] 368s tests/translate/storage/placeables/test_base.py::TestStringElem::test_isleaf PASSED [ 37%] 368s tests/translate/storage/placeables/test_base.py::TestStringElem::test_prune PASSED [ 37%] 368s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_base_placeables PASSED [ 37%] 368s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_general_placeables XFAIL [ 37%] 368s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_xliff_placeables XFAIL [ 37%] 368s tests/translate/storage/placeables/test_general.py::test_placeable_numbers PASSED [ 37%] 368s tests/translate/storage/placeables/test_general.py::test_placeable_newline PASSED [ 37%] 368s tests/translate/storage/placeables/test_general.py::test_placeable_alt_attr PASSED [ 37%] 368s tests/translate/storage/placeables/test_general.py::test_placeable_qt_formatting PASSED [ 37%] 368s tests/translate/storage/placeables/test_general.py::test_placeable_camelcase PASSED [ 37%] 368s tests/translate/storage/placeables/test_general.py::test_placeable_space PASSED [ 37%] 368s tests/translate/storage/placeables/test_general.py::test_placeable_punctuation PASSED [ 37%] 368s tests/translate/storage/placeables/test_general.py::test_placeable_xml_entity PASSED [ 37%] 368s tests/translate/storage/placeables/test_general.py::test_placeable_xml_tag PASSED [ 37%] 368s tests/translate/storage/placeables/test_general.py::test_placeable_option PASSED [ 37%] 368s tests/translate/storage/placeables/test_general.py::test_placeable_file PASSED [ 37%] 368s tests/translate/storage/placeables/test_general.py::test_placeable_email PASSED [ 38%] 368s tests/translate/storage/placeables/test_general.py::test_placeable_caps PASSED [ 38%] 368s tests/translate/storage/placeables/test_general.py::test_placeable_formatting PASSED [ 38%] 368s tests/translate/storage/placeables/test_general.py::test_placeable_doubleat PASSED [ 38%] 368s tests/translate/storage/placeables/test_general.py::test_placeable_brace PASSED [ 38%] 368s tests/translate/storage/placeables/test_general.py::test_python_placeable PASSED [ 38%] 368s tests/translate/storage/placeables/test_lisa.py::test_xml_to_strelem PASSED [ 38%] 368s tests/translate/storage/placeables/test_lisa.py::test_xml_space PASSED [ 38%] 368s tests/translate/storage/placeables/test_lisa.py::test_chunk_list PASSED [ 38%] 368s tests/translate/storage/placeables/test_lisa.py::test_set_strelem_to_xml PASSED [ 38%] 368s tests/translate/storage/placeables/test_lisa.py::test_unknown_xml_placeable PASSED [ 38%] 368s tests/translate/storage/placeables/test_terminology.py::TestTerminologyPlaceable::test_simple_terminology PASSED [ 38%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_isfuzzy PASSED [ 38%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_create PASSED [ 38%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_eq PASSED [ 38%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escapes PASSED [ 38%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_difficult_escapes PASSED [ 38%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_note_sanity PASSED [ 38%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_line_number_default PASSED [ 38%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_target PASSED [ 38%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_rich_get PASSED [ 38%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_rich_set PASSED [ 38%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_message_with_newline PASSED [ 38%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quotes_with_newline PASSED [ 38%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_message_with_newline_in_xml PASSED [ 38%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_twitter PASSED [ 38%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quote PASSED [ 38%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_question PASSED [ 38%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_double_space PASSED [ 38%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_leading_space PASSED [ 38%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_tailing_space PASSED [ 38%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_xml_entities PASSED [ 38%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code PASSED [ 38%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code_quote PASSED [ 38%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code_quote_newline PASSED [ 38%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_arrows PASSED [ 38%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_link PASSED [ 38%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_link_and_text PASSED [ 38%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_blank_string PASSED [ 38%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_escape_message_with_newline PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_invalid_lang PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_quote PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_leading_space PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_trailing_space PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_with_ampersand PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_double_space PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_deep_double_space PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_complex_xml PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quoted_newlines PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_message_with_newline PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_message_with_newline_in_xml PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_twitter PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_question PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quote PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_double_space PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_space PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_newlines PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_xml_entities PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_code PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_arrows PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_link PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_link_and_text PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_blank_string PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_space PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_spaces PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_escaped_newline PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_escaped_newline PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_spaces PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_newline PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_many_quotes PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_blank_string_again PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_double_quotes_string PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_newline_in_string PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_not_translatable_string PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_parse_message_with_newline PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_parse_message_with_comments PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_quote PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_leading_space PASSED [ 39%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_leading_space_quoted PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_trailing_space PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_trailing_space_quoted PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_with_ampersand PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_double_space_quoted PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_deep_double_space_quoted PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_complex_xml PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_unicode PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_unescaped PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_escaped_alone PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_escaped_full PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_escaped_percent PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_percent PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_quote PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_unparied_quote PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escape_slash PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escape_ignored PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escaped_quote_end PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_xml PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_create_blank PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_add PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_remove PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_find PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_parse PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_files PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_save PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_extensions PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_mimetypes PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_translate PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_nonascii PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_default_handlings PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_filename PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_filename_default_language PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_invalid_filename PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_namespaces PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_serialize PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_add_formatting PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity PASSED [ 40%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_invalid_entity PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_indent PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_markup PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_parse_decimal_plurals PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_to_plurals PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity_add_edit PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity_add_noedit PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_remove PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_set PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_others PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_quotes_set PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_xliff_g PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_xliff_namespace PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_zh_hk PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_b_zh_hk PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_missing_plural PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_empty_missing_plural_tag PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_removeunit PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_cdata PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_cdata_text PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_prefix PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_rtl PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_tail PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_translatable_marking PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_escaping PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_isfuzzy PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_create PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_eq PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_escapes PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_difficult_escapes PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_note_sanity PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_line_number_default PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_target PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_rich_get PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_rich_set PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_escape_quote PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_create_blank PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_add PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_remove PASSED [ 41%] 368s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_find PASSED [ 42%] 368s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_parse PASSED [ 42%] 368s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_files PASSED [ 42%] 368s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_save PASSED [ 42%] 368s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_extensions PASSED [ 42%] 368s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_mimetypes PASSED [ 42%] 368s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_translate PASSED [ 42%] 368s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_markup PASSED [ 42%] 368s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_nonascii PASSED [ 42%] 368s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_plural PASSED [ 42%] 368s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_isfuzzy PASSED [ 42%] 368s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_create PASSED [ 42%] 368s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_eq PASSED [ 42%] 368s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_escapes PASSED [ 42%] 368s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_difficult_escapes PASSED [ 42%] 368s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_note_sanity PASSED [ 42%] 368s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_line_number_default PASSED [ 42%] 368s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_target PASSED [ 42%] 368s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_rich_get PASSED [ 42%] 368s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_rich_set PASSED [ 42%] 368s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_escape_quote PASSED [ 42%] 368s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_create_blank PASSED [ 42%] 368s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_add PASSED [ 42%] 368s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_remove PASSED [ 42%] 368s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_find PASSED [ 42%] 368s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_parse PASSED [ 42%] 368s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_files PASSED [ 42%] 368s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_save PASSED [ 42%] 368s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_extensions PASSED [ 42%] 368s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_mimetypes PASSED [ 42%] 368s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_translate PASSED [ 42%] 368s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_markup PASSED [ 42%] 368s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_nonascii PASSED [ 42%] 368s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_quote_escape PASSED [ 42%] 368s tests/translate/storage/test_base.py::TestTranslationUnit::test_isfuzzy PASSED [ 42%] 368s tests/translate/storage/test_base.py::TestTranslationUnit::test_create PASSED [ 42%] 368s tests/translate/storage/test_base.py::TestTranslationUnit::test_eq PASSED [ 42%] 368s tests/translate/storage/test_base.py::TestTranslationUnit::test_target PASSED [ 42%] 368s tests/translate/storage/test_base.py::TestTranslationUnit::test_escapes PASSED [ 42%] 368s tests/translate/storage/test_base.py::TestTranslationUnit::test_difficult_escapes PASSED [ 43%] 368s tests/translate/storage/test_base.py::TestTranslationUnit::test_note_sanity PASSED [ 43%] 368s tests/translate/storage/test_base.py::TestTranslationUnit::test_line_number_default PASSED [ 43%] 368s tests/translate/storage/test_base.py::TestTranslationUnit::test_rich_get PASSED [ 43%] 368s tests/translate/storage/test_base.py::TestTranslationUnit::test_rich_set PASSED [ 43%] 368s tests/translate/storage/test_base.py::TestTranslationStore::test_create_blank PASSED [ 43%] 368s tests/translate/storage/test_base.py::TestTranslationStore::test_add PASSED [ 43%] 368s tests/translate/storage/test_base.py::TestTranslationStore::test_remove PASSED [ 43%] 368s tests/translate/storage/test_base.py::TestTranslationStore::test_find PASSED [ 43%] 368s tests/translate/storage/test_base.py::TestTranslationStore::test_translate PASSED [ 43%] 368s tests/translate/storage/test_base.py::TestTranslationStore::test_parse PASSED [ 43%] 368s tests/translate/storage/test_base.py::TestTranslationStore::test_files PASSED [ 43%] 368s tests/translate/storage/test_base.py::TestTranslationStore::test_save PASSED [ 43%] 368s tests/translate/storage/test_base.py::TestTranslationStore::test_markup PASSED [ 43%] 368s tests/translate/storage/test_base.py::TestTranslationStore::test_nonascii PASSED [ 43%] 368s tests/translate/storage/test_base.py::TestTranslationStore::test_extensions PASSED [ 43%] 368s tests/translate/storage/test_base.py::TestTranslationStore::test_mimetypes PASSED [ 43%] 368s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_create_empty_bundle PASSED [ 43%] 368s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_create_bundle_from_nonexistent_file PASSED [ 43%] 368s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_save_bundle PASSED [ 43%] 368s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_cross_device_save PASSED [ 43%] 368s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_replace_project_zip PASSED [ 43%] 368s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle PASSED [ 43%] 368s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_update_file_in_bundle PASSED [ 43%] 368s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle PASSED [ 43%] 368s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_invalid_bundle_error PASSED [ 43%] 368s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_isfuzzy PASSED [ 43%] 368s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_create PASSED [ 43%] 368s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_eq PASSED [ 43%] 368s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_target PASSED [ 43%] 368s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_escapes PASSED [ 43%] 368s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_line_number_default PASSED [ 43%] 368s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_rich_get PASSED [ 43%] 368s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_rich_set PASSED [ 43%] 368s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_difficult_escapes PASSED [ 43%] 368s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_newlines PASSED [ 43%] 368s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_istranslated PASSED [ 43%] 368s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_note_sanity PASSED [ 43%] 368s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_create_blank PASSED [ 43%] 368s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_add PASSED [ 44%] 368s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_remove PASSED [ 44%] 368s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_find PASSED [ 44%] 368s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_translate PASSED [ 44%] 368s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_parse PASSED [ 44%] 368s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_files PASSED [ 44%] 368s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_save PASSED [ 44%] 368s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_markup PASSED [ 44%] 368s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_nonascii PASSED [ 44%] 368s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_extensions PASSED [ 44%] 368s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_mimetypes PASSED [ 44%] 368s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_checksum PASSED [ 44%] 368s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_isfuzzy PASSED [ 44%] 368s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_create PASSED [ 44%] 368s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_eq PASSED [ 44%] 368s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_target PASSED [ 44%] 368s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_escapes PASSED [ 44%] 368s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_difficult_escapes PASSED [ 44%] 368s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_note_sanity PASSED [ 44%] 368s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_line_number_default PASSED [ 44%] 368s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_rich_get PASSED [ 44%] 368s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_rich_set PASSED [ 44%] 368s tests/translate/storage/test_csvl10n.py::TestCSV::test_create_blank PASSED [ 44%] 368s tests/translate/storage/test_csvl10n.py::TestCSV::test_add PASSED [ 44%] 368s tests/translate/storage/test_csvl10n.py::TestCSV::test_remove PASSED [ 44%] 368s tests/translate/storage/test_csvl10n.py::TestCSV::test_find PASSED [ 44%] 368s tests/translate/storage/test_csvl10n.py::TestCSV::test_translate PASSED [ 44%] 368s tests/translate/storage/test_csvl10n.py::TestCSV::test_parse PASSED [ 44%] 368s tests/translate/storage/test_csvl10n.py::TestCSV::test_files PASSED [ 44%] 368s tests/translate/storage/test_csvl10n.py::TestCSV::test_save PASSED [ 44%] 368s tests/translate/storage/test_csvl10n.py::TestCSV::test_markup PASSED [ 44%] 368s tests/translate/storage/test_csvl10n.py::TestCSV::test_nonascii PASSED [ 44%] 368s tests/translate/storage/test_csvl10n.py::TestCSV::test_extensions PASSED [ 44%] 368s tests/translate/storage/test_csvl10n.py::TestCSV::test_mimetypes PASSED [ 44%] 368s tests/translate/storage/test_csvl10n.py::TestCSV::test_singlequoting PASSED [ 44%] 368s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8 PASSED [ 44%] 368s tests/translate/storage/test_csvl10n.py::TestCSV::test_dialect PASSED [ 44%] 368s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8_sig PASSED [ 44%] 368s tests/translate/storage/test_csvl10n.py::TestCSV::test_default PASSED [ 44%] 368s tests/translate/storage/test_csvl10n.py::TestCSV::test_location_is_parsed PASSED [ 45%] 368s tests/translate/storage/test_csvl10n.py::TestCSV::test_context_is_parsed PASSED [ 45%] 368s tests/translate/storage/test_csvl10n.py::TestCSV::test_newline PASSED [ 45%] 368s tests/translate/storage/test_csvl10n.py::TestCSV::test_parse_sample PASSED [ 45%] 368s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8_detection PASSED [ 45%] 368s tests/translate/storage/test_csvl10n.py::TestCSV::test_encoding PASSED [ 45%] 368s tests/translate/storage/test_csvl10n.py::TestCSV::test_corrupt PASSED [ 45%] 368s tests/translate/storage/test_csvl10n.py::TestCSV::test_encoding_save PASSED [ 45%] 368s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_id_target PASSED [ 45%] 368s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_context_target PASSED [ 45%] 368s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_key_translation PASSED [ 45%] 368s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_roundtrip PASSED [ 45%] 368s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_context_roundtrip PASSED [ 45%] 368s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_id_context_roundtrip PASSED [ 45%] 368s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_target_only_roundtrip PASSED [ 45%] 368s tests/translate/storage/test_csvl10n.py::TestCSV::test_quote_nonnumeric_handling PASSED [ 45%] 368s tests/translate/storage/test_csvl10n.py::TestCSV::test_quote_nonnumeric_with_single_quotes PASSED [ 45%] 368s tests/translate/storage/test_csvl10n.py::TestCSV::test_line_number PASSED [ 45%] 368s tests/translate/storage/test_dtd.py::test_roundtrip_quoting PASSED [ 45%] 368s tests/translate/storage/test_dtd.py::test_quotefordtd_unimplemented_cases XFAIL [ 45%] 368s tests/translate/storage/test_dtd.py::test_quotefordtd PASSED [ 45%] 368s tests/translate/storage/test_dtd.py::test_unquotefromdtd_unimplemented_cases XFAIL [ 45%] 368s tests/translate/storage/test_dtd.py::test_unquotefromdtd PASSED [ 45%] 368s tests/translate/storage/test_dtd.py::test_android_roundtrip_quoting PASSED [ 45%] 368s tests/translate/storage/test_dtd.py::test_quoteforandroid PASSED [ 45%] 368s tests/translate/storage/test_dtd.py::test_unquotefromandroid PASSED [ 45%] 368s tests/translate/storage/test_dtd.py::test_removeinvalidamp PASSED [ 45%] 368s tests/translate/storage/test_dtd.py::TestDTDUnit::test_isfuzzy PASSED [ 45%] 368s tests/translate/storage/test_dtd.py::TestDTDUnit::test_create PASSED [ 45%] 368s tests/translate/storage/test_dtd.py::TestDTDUnit::test_eq PASSED [ 45%] 368s tests/translate/storage/test_dtd.py::TestDTDUnit::test_escapes PASSED [ 45%] 368s tests/translate/storage/test_dtd.py::TestDTDUnit::test_difficult_escapes PASSED [ 45%] 368s tests/translate/storage/test_dtd.py::TestDTDUnit::test_note_sanity PASSED [ 45%] 368s tests/translate/storage/test_dtd.py::TestDTDUnit::test_line_number_default PASSED [ 45%] 368s tests/translate/storage/test_dtd.py::TestDTDUnit::test_target PASSED [ 45%] 368s tests/translate/storage/test_dtd.py::TestDTDUnit::test_rich_get PASSED [ 45%] 368s tests/translate/storage/test_dtd.py::TestDTDUnit::test_rich_set PASSED [ 45%] 368s tests/translate/storage/test_dtd.py::TestDTD::test_create_blank PASSED [ 45%] 368s tests/translate/storage/test_dtd.py::TestDTD::test_add PASSED [ 45%] 368s tests/translate/storage/test_dtd.py::TestDTD::test_remove PASSED [ 46%] 368s tests/translate/storage/test_dtd.py::TestDTD::test_find PASSED [ 46%] 368s tests/translate/storage/test_dtd.py::TestDTD::test_parse PASSED [ 46%] 368s tests/translate/storage/test_dtd.py::TestDTD::test_files PASSED [ 46%] 368s tests/translate/storage/test_dtd.py::TestDTD::test_save PASSED [ 46%] 368s tests/translate/storage/test_dtd.py::TestDTD::test_extensions PASSED [ 46%] 368s tests/translate/storage/test_dtd.py::TestDTD::test_mimetypes PASSED [ 46%] 368s tests/translate/storage/test_dtd.py::TestDTD::test_translate PASSED [ 46%] 368s tests/translate/storage/test_dtd.py::TestDTD::test_markup PASSED [ 46%] 368s tests/translate/storage/test_dtd.py::TestDTD::test_nonascii PASSED [ 46%] 368s tests/translate/storage/test_dtd.py::TestDTD::test_simpleentity PASSED [ 46%] 368s tests/translate/storage/test_dtd.py::TestDTD::test_blanklines PASSED [ 46%] 368s tests/translate/storage/test_dtd.py::TestDTD::test_simpleentity_source PASSED [ 46%] 368s tests/translate/storage/test_dtd.py::TestDTD::test_hashcomment_source PASSED [ 46%] 368s tests/translate/storage/test_dtd.py::TestDTD::test_commentclosing PASSED [ 46%] 368s tests/translate/storage/test_dtd.py::TestDTD::test_commententity PASSED [ 46%] 368s tests/translate/storage/test_dtd.py::TestDTD::test_newlines_in_entity PASSED [ 46%] 368s tests/translate/storage/test_dtd.py::TestDTD::test_conflate_comments PASSED [ 46%] 368s tests/translate/storage/test_dtd.py::TestDTD::test_localisation_notes PASSED [ 46%] 368s tests/translate/storage/test_dtd.py::TestDTD::test_entitityreference_in_source PASSED [ 46%] 368s tests/translate/storage/test_dtd.py::TestDTD::test_entitityreference_order_in_source PASSED [ 46%] 368s tests/translate/storage/test_dtd.py::TestDTD::test_comment_following XFAIL [ 46%] 368s tests/translate/storage/test_dtd.py::TestDTD::test_comment_newline_space_closing PASSED [ 46%] 368s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting XFAIL [ 46%] 368s tests/translate/storage/test_dtd.py::TestDTD::test_missing_quotes PASSED [ 46%] 368s tests/translate/storage/test_dtd.py::TestDTD::test_entity_escaping PASSED [ 46%] 368s tests/translate/storage/test_dtd.py::TestDTD::test_entity_escaping_roundtrip PASSED [ 46%] 368s tests/translate/storage/test_dtd.py::TestDTD::test_multiple_blank_lines PASSED [ 46%] 368s tests/translate/storage/test_dtd.py::TestDTD::test_entity_with_extra_spaces PASSED [ 46%] 368s tests/translate/storage/test_dtd.py::TestDTD::test_mixed_content_preservation PASSED [ 46%] 368s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_create_blank PASSED [ 46%] 368s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_add PASSED [ 46%] 368s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_remove PASSED [ 46%] 368s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_find PASSED [ 46%] 368s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_parse PASSED [ 46%] 368s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_files PASSED [ 46%] 368s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_save PASSED [ 46%] 368s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_extensions PASSED [ 46%] 368s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_mimetypes PASSED [ 46%] 368s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_translate PASSED [ 47%] 368s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_markup PASSED [ 47%] 368s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_nonascii PASSED [ 47%] 368s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_single_quote_escape PASSED [ 47%] 368s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_single_quote_escape_parse_and_convert_back PASSED [ 47%] 368s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_double_quote_escape PASSED [ 47%] 368s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_double_quote_escape_parse_and_convert_back PASSED [ 47%] 368s tests/translate/storage/test_factory.py::TestPOFactory::test_getclass PASSED [ 47%] 368s tests/translate/storage/test_factory.py::TestPOFactory::test_getobject_store PASSED [ 47%] 368s tests/translate/storage/test_factory.py::TestPOFactory::test_getobject PASSED [ 47%] 368s tests/translate/storage/test_factory.py::TestPOFactory::test_get_noname_object PASSED [ 47%] 368s tests/translate/storage/test_factory.py::TestPOFactory::test_gzfile PASSED [ 47%] 368s tests/translate/storage/test_factory.py::TestPOFactory::test_bz2file PASSED [ 47%] 368s tests/translate/storage/test_factory.py::TestPOFactory::test_directory PASSED [ 47%] 368s tests/translate/storage/test_factory.py::TestXliffFactory::test_getclass PASSED [ 47%] 368s tests/translate/storage/test_factory.py::TestXliffFactory::test_getobject_store PASSED [ 47%] 368s tests/translate/storage/test_factory.py::TestXliffFactory::test_getobject PASSED [ 47%] 368s tests/translate/storage/test_factory.py::TestXliffFactory::test_get_noname_object PASSED [ 47%] 368s tests/translate/storage/test_factory.py::TestXliffFactory::test_gzfile PASSED [ 47%] 368s tests/translate/storage/test_factory.py::TestXliffFactory::test_bz2file PASSED [ 47%] 368s tests/translate/storage/test_factory.py::TestXliffFactory::test_directory PASSED [ 47%] 368s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getclass PASSED [ 47%] 368s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getobject_store PASSED [ 47%] 368s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getobject PASSED [ 47%] 368s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_get_noname_object PASSED [ 47%] 368s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_gzfile PASSED [ 47%] 368s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_bz2file PASSED [ 47%] 368s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_directory PASSED [ 47%] 368s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getclass PASSED [ 47%] 368s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getobject_store PASSED [ 47%] 368s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getobject PASSED [ 47%] 368s tests/translate/storage/test_factory.py::TestWordfastFactory::test_get_noname_object PASSED [ 47%] 368s tests/translate/storage/test_factory.py::TestWordfastFactory::test_gzfile PASSED [ 47%] 368s tests/translate/storage/test_factory.py::TestWordfastFactory::test_bz2file PASSED [ 47%] 368s tests/translate/storage/test_factory.py::TestWordfastFactory::test_directory PASSED [ 47%] 368s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_isfuzzy PASSED [ 47%] 368s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_create PASSED [ 47%] 368s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_eq PASSED [ 47%] 368s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_escapes PASSED [ 47%] 368s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_difficult_escapes PASSED [ 48%] 368s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_note_sanity PASSED [ 48%] 368s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_line_number_default PASSED [ 48%] 368s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_target PASSED [ 48%] 368s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_rich_get PASSED [ 48%] 368s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_rich_set PASSED [ 48%] 368s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_create_blank PASSED [ 48%] 368s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_add PASSED [ 48%] 368s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_remove PASSED [ 48%] 368s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_find PASSED [ 48%] 368s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_parse PASSED [ 48%] 368s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_files PASSED [ 48%] 368s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_save PASSED [ 48%] 368s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_extensions PASSED [ 48%] 368s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_mimetypes PASSED [ 48%] 368s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_translate PASSED [ 48%] 368s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_markup PASSED [ 48%] 368s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_nonascii PASSED [ 48%] 368s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_root_config_detect PASSED [ 48%] 368s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_value_config_detect PASSED [ 48%] 369s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_key_config_detect PASSED [ 48%] 369s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_value_config_mixed_ok PASSED [ 48%] 369s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_namespace_config_detect PASSED [ 48%] 369s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_four_spaces PASSED [ 48%] 369s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_tab PASSED [ 48%] 369s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_none_linearizes PASSED [ 48%] 369s tests/translate/storage/test_html.py::test_guess_encoding PASSED [ 48%] 369s tests/translate/storage/test_html.py::TestHTMLParsing::test_mismatched_tags PASSED [ 48%] 369s tests/translate/storage/test_html.py::TestHTMLParsing::test_self_closing_tags PASSED [ 48%] 369s tests/translate/storage/test_html.py::TestHTMLParsing::test_escaping_script_and_pre PASSED [ 48%] 369s tests/translate/storage/test_html.py::TestHTMLExtraction::test_strip_html PASSED [ 48%] 369s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_tag_figcaption PASSED [ 48%] 369s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_tag_caption_td_th PASSED [ 48%] 369s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_attr_alt PASSED [ 48%] 369s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_attr_title PASSED [ 48%] 369s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_pre PASSED [ 48%] 369s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_pre_code PASSED [ 48%] 369s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_button PASSED [ 48%] 369s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_lang_attribute PASSED [ 48%] 369s tests/translate/storage/test_html.py::TestHTMLExtraction::test_dir_attribute_not_extracted PASSED [ 49%] 369s tests/translate/storage/test_html.py::TestHTMLExtraction::test_data_translate_ignore_attribute PASSED [ 49%] 369s tests/translate/storage/test_html.py::TestHTMLExtraction::test_translate_comment_directives PASSED [ 49%] 369s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_meta_social_media_tags PASSED [ 49%] 369s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_meta_non_translatable_tags PASSED [ 49%] 369s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_meta_mixed_translatable_and_non_translatable PASSED [ 49%] 369s tests/translate/storage/test_html.py::TestHTMLExtraction::test_data_translate_comment_attribute PASSED [ 49%] 369s tests/translate/storage/test_html_context.py::test_html_context_basic PASSED [ 49%] 369s tests/translate/storage/test_html_context.py::test_html_context_attribute PASSED [ 49%] 369s tests/translate/storage/test_html_context.py::test_html_context_attribute_with_id PASSED [ 49%] 369s tests/translate/storage/test_html_context.py::test_html_context_same_source_different_contexts PASSED [ 49%] 369s tests/translate/storage/test_html_context.py::test_html_context_nested_outer_wins PASSED [ 49%] 369s tests/translate/storage/test_html_context.py::test_html_context_absent PASSED [ 49%] 369s tests/translate/storage/test_html_context.py::test_html_context_id_overridden_by_explicit PASSED [ 49%] 369s tests/translate/storage/test_html_context.py::test_html_context_id_not_used_when_no_duplicates PASSED [ 49%] 369s tests/translate/storage/test_html_context.py::test_html_context_id_not_used_when_data_translate_context_identical PASSED [ 49%] 369s tests/translate/storage/test_html_context.py::test_html_context_disambiguates_duplicates_with_id PASSED [ 49%] 369s tests/translate/storage/test_html_context.py::test_html_context_disambiguates_duplicates_with_ancestor_id PASSED [ 49%] 369s tests/translate/storage/test_ini.py::TestINIUnit::test_isfuzzy PASSED [ 49%] 369s tests/translate/storage/test_ini.py::TestINIUnit::test_create PASSED [ 49%] 369s tests/translate/storage/test_ini.py::TestINIUnit::test_eq PASSED [ 49%] 369s tests/translate/storage/test_ini.py::TestINIUnit::test_escapes PASSED [ 49%] 369s tests/translate/storage/test_ini.py::TestINIUnit::test_difficult_escapes PASSED [ 49%] 369s tests/translate/storage/test_ini.py::TestINIUnit::test_note_sanity PASSED [ 49%] 369s tests/translate/storage/test_ini.py::TestINIUnit::test_line_number_default PASSED [ 49%] 369s tests/translate/storage/test_ini.py::TestINIUnit::test_target PASSED [ 49%] 369s tests/translate/storage/test_ini.py::TestINIUnit::test_rich_get PASSED [ 49%] 369s tests/translate/storage/test_ini.py::TestINIUnit::test_rich_set PASSED [ 49%] 369s tests/translate/storage/test_ini.py::TestINIStore::test_create_blank PASSED [ 49%] 369s tests/translate/storage/test_ini.py::TestINIStore::test_add PASSED [ 49%] 369s tests/translate/storage/test_ini.py::TestINIStore::test_remove PASSED [ 49%] 369s tests/translate/storage/test_ini.py::TestINIStore::test_find PASSED [ 49%] 369s tests/translate/storage/test_ini.py::TestINIStore::test_parse PASSED [ 49%] 369s tests/translate/storage/test_ini.py::TestINIStore::test_files PASSED [ 49%] 369s tests/translate/storage/test_ini.py::TestINIStore::test_save PASSED [ 49%] 369s tests/translate/storage/test_ini.py::TestINIStore::test_extensions PASSED [ 49%] 369s tests/translate/storage/test_ini.py::TestINIStore::test_mimetypes PASSED [ 49%] 369s tests/translate/storage/test_ini.py::TestINIStore::test_translate PASSED [ 49%] 369s tests/translate/storage/test_ini.py::TestINIStore::test_markup PASSED [ 49%] 369s tests/translate/storage/test_ini.py::TestINIStore::test_nonascii PASSED [ 50%] 369s tests/translate/storage/test_ini.py::TestINIStore::test_serialize PASSED [ 50%] 369s tests/translate/storage/test_ini.py::TestINIStore::test_rem PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_isfuzzy PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_create PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_eq PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_escapes PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_difficult_escapes PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_note_sanity PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_line_number_default PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_target PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_rich_get PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_rich_set PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_create_blank PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_remove PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_find PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_parse PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_files PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_save PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_extensions PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_mimetypes PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_translate PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_markup PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_nonascii PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_serialize PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_can_not_detect PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_error PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_filter PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_ordering PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_args PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_bom PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_complex PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_complex_array PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add_list_like PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add_blank PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_types PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_null PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_isfuzzy PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_create PASSED [ 50%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_eq PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_escapes PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_difficult_escapes PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_note_sanity PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_line_number_default PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_target PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_rich_get PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_rich_set PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_serialize PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_ordering PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_array PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_index PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_index_nested PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_nested_list_mixed PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_list_to_dict PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_complex_keys PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_other PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[0]-expected0] PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[test[0]-expected1] PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[test[0][1][2][3]-expected2] PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[test]selection-expected3] PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[test][0]selection-expected4] PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[0][test]selection-expected5] PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[-expected6] PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_dot_keys PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_isfuzzy PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_create PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_eq PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_escapes PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_difficult_escapes PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_note_sanity PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_line_number_default PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_target PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_rich_get PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_rich_set PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_create_blank PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_add PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_remove PASSED [ 51%] 369s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_find PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_parse PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_files PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_save PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_extensions PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_mimetypes PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_translate PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_markup PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_nonascii PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_serialize PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_dot_keys PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_leading_dot_keys PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_serialize_no_description PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_set_target PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_placeholders PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_comments PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_create_blank PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_add PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_remove PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_find PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_parse PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_files PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_save PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_extensions PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_mimetypes PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_translate PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_markup PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_nonascii PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_serialize PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_units PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_plurals PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_nested_array PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_new_plural PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_new_plural_id PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_create_blank PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_add PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_remove PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_find PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_parse PASSED [ 52%] 369s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_files PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_save PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_extensions PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_mimetypes PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_translate PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_markup PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_nonascii PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_plurals PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_plurals_missing PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_case_no_msg PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_complex_id PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_create_blank PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_add PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_remove PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_find PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_parse PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_files PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_save PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_extensions PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_mimetypes PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_translate PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_markup PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_nonascii PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_serialize PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_units PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_plurals PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_nested_array PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_new_plural PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_ru PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_create_blank PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_add PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_remove PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_find PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_parse PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_files PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_save PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_extensions PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_mimetypes PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_translate PASSED [ 53%] 369s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_markup PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_nonascii PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_serialize PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_units PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_plurals PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_nested_array PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_new_plural PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_ru PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_create_blank PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_add PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_remove PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_find PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_parse PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_files PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_save PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_extensions PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_mimetypes PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_translate PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_markup PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_nonascii PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_plurals PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_plurals_missing PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_invalid PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_dot_keys PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_create_blank PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_add PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_remove PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_find PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_parse PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_files PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_save PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_extensions PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_mimetypes PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_translate PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_markup PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_nonascii PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_1 PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_2 PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_blank PASSED [ 54%] 369s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_missing PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_simplification PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_invalid PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_dot_keys PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_create_blank PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_add PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_remove PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_find PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_parse PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_files PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_save PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_extensions PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_mimetypes PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_translate PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_markup PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_nonascii PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_roundtrip PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_leading_dot_keys PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_invalid_nesting PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_empty_metadata_not_stored PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_create_blank PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_add PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_remove PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_find PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_parse PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_files PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_save PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_extensions PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_mimetypes PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_translate PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_markup PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_nonascii PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_roundtrip PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_leading_dot_keys PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_invalid PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_isfuzzy PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_create PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_eq PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_escapes PASSED [ 55%] 369s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_difficult_escapes PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_note_sanity PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_line_number_default PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_target PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_rich_get PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_rich_set PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_source_property_maps_to_id PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_source_roundtrip PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_create_blank PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_add PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_remove PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_find PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_parse PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_files PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_save PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_extensions PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_mimetypes PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_translate PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_markup PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_nonascii PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_parse_simple PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_serialize_simple PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_parse_with_plurals PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_preserve_plural_form PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_roundtrip_with_plurals PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_ignore_non_translations_keys PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_preserve_other_metadata PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_add_unit PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_add_plural_unit PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_empty_translations PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_create_blank PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_add PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_remove PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_find PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_parse PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_files PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_save PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_extensions PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_mimetypes PASSED [ 56%] 369s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_translate PASSED [ 57%] 369s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_markup PASSED [ 57%] 369s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_nonascii PASSED [ 57%] 369s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_roundtrip PASSED [ 57%] 369s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_basic_parsing PASSED [ 57%] 369s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_multiple_metadata PASSED [ 57%] 369s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_no_metadata PASSED [ 57%] 369s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_edit_target PASSED [ 57%] 369s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_edit_notes PASSED [ 57%] 369s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_keys_with_dots PASSED [ 57%] 369s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_leading_dot_keys PASSED [ 57%] 369s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_invalid_nesting PASSED [ 57%] 369s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_source_property_get_set PASSED [ 57%] 369s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_source_property_persists PASSED [ 57%] 369s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_getcontext_returns_id PASSED [ 57%] 369s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_parsing_preserves_order PASSED [ 57%] 369s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_metadata_without_translation PASSED [ 57%] 369s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_complex_keys_with_multiple_dots PASSED [ 57%] 369s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_source_empty_string PASSED [ 57%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_atx_heading PASSED [ 57%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_autolink PASSED [ 57%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_block_quote PASSED [ 57%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_code_block PASSED [ 57%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_code_span PASSED [ 57%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_atx_heading PASSED [ 57%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_document PASSED [ 57%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_list_item PASSED [ 57%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_escaped_character PASSED [ 57%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_hard_line_break PASSED [ 57%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_block PASSED [ 57%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_character_entities PASSED [ 57%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_span PASSED [ 57%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_image_embedded_in_link PASSED [ 57%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_collapsed_reference_link PASSED [ 57%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_full_reference_link PASSED [ 57%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_shortcut_reference_link PASSED [ 57%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_merging_of_adjacent_placeholders PASSED [ 57%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_nested_block_tokens PASSED [ 57%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_nested_list PASSED [ 57%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_paragraph_with_basic_markup PASSED [ 58%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_paragraph_with_only_whitespace_and_placeholders PASSED [ 58%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_placeholder_trimming PASSED [ 58%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_image PASSED [ 58%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_image_no_title PASSED [ 58%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_link PASSED [ 58%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_text_paragraph PASSED [ 58%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_remove_placeholders_from_both_ends_of_translation_units PASSED [ 58%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_setext_heading PASSED [ 58%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_table_with_header PASSED [ 58%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_thematic_break PASSED [ 58%] 369s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_hard_line_break_in_translation_unit PASSED [ 58%] 369s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_missing_placeholder PASSED [ 58%] 369s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_duplicate_placeholder PASSED [ 58%] 369s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_extraneous_placeholder PASSED [ 58%] 369s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_reordered_placeholders PASSED [ 58%] 369s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_invalid_markdown_in_translation PASSED [ 58%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_section_basic PASSED [ 58%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_section_with_markup PASSED [ 58%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_section_with_code_block PASSED [ 58%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_multiple_ignore_sections PASSED [ 58%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_at_start PASSED [ 58%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_at_end PASSED [ 58%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_nested_structures_in_ignore PASSED [ 58%] 369s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_link_references_in_ignore PASSED [ 58%] 369s tests/translate/storage/test_mo.py::TestMOUnit::test_isfuzzy PASSED [ 58%] 369s tests/translate/storage/test_mo.py::TestMOUnit::test_create PASSED [ 58%] 369s tests/translate/storage/test_mo.py::TestMOUnit::test_eq PASSED [ 58%] 369s tests/translate/storage/test_mo.py::TestMOUnit::test_target PASSED [ 58%] 369s tests/translate/storage/test_mo.py::TestMOUnit::test_escapes PASSED [ 58%] 369s tests/translate/storage/test_mo.py::TestMOUnit::test_difficult_escapes PASSED [ 58%] 369s tests/translate/storage/test_mo.py::TestMOUnit::test_note_sanity PASSED [ 58%] 369s tests/translate/storage/test_mo.py::TestMOUnit::test_line_number_default PASSED [ 58%] 369s tests/translate/storage/test_mo.py::TestMOUnit::test_rich_get PASSED [ 58%] 369s tests/translate/storage/test_mo.py::TestMOUnit::test_rich_set PASSED [ 58%] 369s tests/translate/storage/test_mo.py::TestMOUnit::test_context PASSED [ 58%] 369s tests/translate/storage/test_mo.py::TestMOFile::test_create_blank PASSED [ 58%] 369s tests/translate/storage/test_mo.py::TestMOFile::test_add PASSED [ 58%] 369s tests/translate/storage/test_mo.py::TestMOFile::test_remove PASSED [ 58%] 369s tests/translate/storage/test_mo.py::TestMOFile::test_find PASSED [ 59%] 369s tests/translate/storage/test_mo.py::TestMOFile::test_translate PASSED [ 59%] 369s tests/translate/storage/test_mo.py::TestMOFile::test_parse PASSED [ 59%] 369s tests/translate/storage/test_mo.py::TestMOFile::test_files PASSED [ 59%] 369s tests/translate/storage/test_mo.py::TestMOFile::test_save PASSED [ 59%] 369s tests/translate/storage/test_mo.py::TestMOFile::test_markup PASSED [ 59%] 369s tests/translate/storage/test_mo.py::TestMOFile::test_nonascii PASSED [ 59%] 369s tests/translate/storage/test_mo.py::TestMOFile::test_extensions PASSED [ 59%] 369s tests/translate/storage/test_mo.py::TestMOFile::test_mimetypes PASSED [ 59%] 369s tests/translate/storage/test_mo.py::TestMOFile::test_language PASSED [ 59%] 369s tests/translate/storage/test_mo.py::TestMOFile::test_context PASSED [ 59%] 369s tests/translate/storage/test_mo.py::TestMOFile::test_output PASSED [ 59%] 369s tests/translate/storage/test_mo.py::TestMOFile::test_endian_version_parsing PASSED [ 59%] 369s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_isfuzzy PASSED [ 59%] 369s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_create PASSED [ 59%] 369s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_eq PASSED [ 59%] 369s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_escapes PASSED [ 59%] 369s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_difficult_escapes PASSED [ 59%] 369s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_note_sanity PASSED [ 59%] 369s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_line_number_default PASSED [ 59%] 369s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_target PASSED [ 59%] 369s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_rich_get PASSED [ 59%] 369s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_rich_set PASSED [ 59%] 369s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_create_blank PASSED [ 59%] 369s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_add PASSED [ 59%] 369s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_remove PASSED [ 59%] 369s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_find PASSED [ 59%] 369s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_parse PASSED [ 59%] 369s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_files PASSED [ 59%] 369s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_save PASSED [ 59%] 369s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_extensions PASSED [ 59%] 369s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_mimetypes PASSED [ 59%] 369s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_translate PASSED [ 59%] 369s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_markup PASSED [ 59%] 369s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_nonascii PASSED [ 59%] 369s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[-] PASSED [ 59%] 369s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String-String] PASSED [ 59%] 369s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok}-String] PASSED [ 59%] 369s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {OK}-String] PASSED [ 59%] 369s 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%] 369s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String{ok}-String] PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String{OK}-String] PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok}-String] PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok} -String] PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_isfuzzy PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_create PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_eq PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_target PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_escapes PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_difficult_escapes PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_note_sanity PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_line_number_default PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_rich_get PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_rich_set PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_translate_but_same PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_untranslated PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_comments PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_copy_target PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_create_blank PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_add PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_remove PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_find PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_translate PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_parse PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_files PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_save PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_markup PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_extensions PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_mimetypes PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_nonascii PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_format_layout PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_crlf PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_active_flag PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_multiline_comments PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_template PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[--False] PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ -Source -True] PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ {ok}-Source-True] PASSED [ 60%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ {ok} -Source-True] PASSED [ 61%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[{ok}-Source-True] PASSED [ 61%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_headers PASSED [ 61%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_not_headers PASSED [ 61%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[0] PASSED [ 61%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[1] PASSED [ 61%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[2] PASSED [ 61%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[3] PASSED [ 61%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_tag_comments PASSED [ 61%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_maxlength PASSED [ 61%] 369s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_line_number PASSED [ 61%] 369s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_isfuzzy PASSED [ 61%] 369s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_create PASSED [ 61%] 369s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_eq PASSED [ 61%] 369s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_target PASSED [ 61%] 369s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_escapes PASSED [ 61%] 369s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_difficult_escapes PASSED [ 61%] 369s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_note_sanity PASSED [ 61%] 369s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_line_number_default PASSED [ 61%] 369s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_rich_get PASSED [ 61%] 369s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_rich_set PASSED [ 61%] 369s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_create_blank PASSED [ 61%] 369s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_add PASSED [ 61%] 369s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_remove PASSED [ 61%] 369s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_find PASSED [ 61%] 369s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_translate PASSED [ 61%] 369s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_parse PASSED [ 61%] 369s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_files PASSED [ 61%] 369s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_save PASSED [ 61%] 369s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_markup PASSED [ 61%] 369s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_nonascii PASSED [ 61%] 369s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_mimetypes PASSED [ 61%] 369s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_extensions XFAIL [ 61%] 369s tests/translate/storage/test_oo.py::test_makekey PASSED [ 61%] 369s tests/translate/storage/test_oo.py::test_escape_help_text PASSED [ 61%] 369s tests/translate/storage/test_oo.py::TestOO::test_simpleentry PASSED [ 61%] 369s tests/translate/storage/test_oo.py::TestOO::test_simpleentry_quickhelptest PASSED [ 61%] 369s tests/translate/storage/test_oo.py::TestOO::test_simpleentry_title PASSED [ 61%] 369s tests/translate/storage/test_oo.py::TestOO::test_blankline PASSED [ 61%] 369s tests/translate/storage/test_oo.py::TestOO::test_fieldlength PASSED [ 62%] 369s tests/translate/storage/test_oo.py::TestOO::test_escapes PASSED [ 62%] 369s tests/translate/storage/test_php.py::test_php_escaping_single_quote PASSED [ 62%] 369s tests/translate/storage/test_php.py::test_php_escaping_double_quote PASSED [ 62%] 369s tests/translate/storage/test_php.py::TestPhpUnit::test_isfuzzy PASSED [ 62%] 369s tests/translate/storage/test_php.py::TestPhpUnit::test_create PASSED [ 62%] 369s tests/translate/storage/test_php.py::TestPhpUnit::test_eq PASSED [ 62%] 369s tests/translate/storage/test_php.py::TestPhpUnit::test_escapes PASSED [ 62%] 369s tests/translate/storage/test_php.py::TestPhpUnit::test_note_sanity PASSED [ 62%] 369s tests/translate/storage/test_php.py::TestPhpUnit::test_line_number_default PASSED [ 62%] 369s tests/translate/storage/test_php.py::TestPhpUnit::test_target PASSED [ 62%] 369s tests/translate/storage/test_php.py::TestPhpUnit::test_rich_get PASSED [ 62%] 369s tests/translate/storage/test_php.py::TestPhpUnit::test_rich_set PASSED [ 62%] 369s tests/translate/storage/test_php.py::TestPhpUnit::test_difficult_escapes PASSED [ 62%] 369s tests/translate/storage/test_php.py::TestPhpFile::test_create_blank PASSED [ 62%] 369s tests/translate/storage/test_php.py::TestPhpFile::test_add PASSED [ 62%] 369s tests/translate/storage/test_php.py::TestPhpFile::test_remove PASSED [ 62%] 369s tests/translate/storage/test_php.py::TestPhpFile::test_find PASSED [ 62%] 369s tests/translate/storage/test_php.py::TestPhpFile::test_parse PASSED [ 62%] 369s tests/translate/storage/test_php.py::TestPhpFile::test_files PASSED [ 62%] 369s tests/translate/storage/test_php.py::TestPhpFile::test_save PASSED [ 62%] 369s tests/translate/storage/test_php.py::TestPhpFile::test_extensions PASSED [ 62%] 369s tests/translate/storage/test_php.py::TestPhpFile::test_mimetypes PASSED [ 62%] 369s tests/translate/storage/test_php.py::TestPhpFile::test_translate PASSED [ 62%] 369s tests/translate/storage/test_php.py::TestPhpFile::test_markup PASSED [ 62%] 369s tests/translate/storage/test_php.py::TestPhpFile::test_nonascii PASSED [ 62%] 369s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition PASSED [ 62%] 369s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition_source PASSED [ 62%] 369s tests/translate/storage/test_php.py::TestPhpFile::test_spaces_in_name PASSED [ 62%] 369s tests/translate/storage/test_php.py::TestPhpFile::test_comment_definition PASSED [ 62%] 369s tests/translate/storage/test_php.py::TestPhpFile::test_comment_blocks PASSED [ 62%] 369s tests/translate/storage/test_php.py::TestPhpFile::test_comment_output PASSED [ 62%] 369s tests/translate/storage/test_php.py::TestPhpFile::test_comment_add PASSED [ 62%] 369s tests/translate/storage/test_php.py::TestPhpFile::test_multiline PASSED [ 62%] 369s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays PASSED [ 62%] 369s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_array_no_array_syntax PASSED [ 62%] 369s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_spaces PASSED [ 62%] 369s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_quotes PASSED [ 62%] 369s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_number_as_value PASSED [ 62%] 369s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_non_textual PASSED [ 63%] 369s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_define PASSED [ 63%] 369s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_define_with_spaces_before_key PASSED [ 63%] 369s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_after_equal_delimiter PASSED [ 63%] 369s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_after_equal_delimiter_and_before_key PASSED [ 63%] 369s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_no_spaces_after_equal_delimiter PASSED [ 63%] 369s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_no_spaces_after_equaldel_but_before_key PASSED [ 63%] 369s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_entries_with_quotes PASSED [ 63%] 369s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_comments_at_entry_line_end PASSED [ 63%] 369s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_double_slash_comments_before_entries PASSED [ 63%] 369s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_before_end_delimiter PASSED [ 63%] 369s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simpledefinition_spaces_before_end_delimiter PASSED [ 63%] 370s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_no_trailing_comma PASSED [ 63%] 370s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_space_before_comma PASSED [ 63%] 370s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_space_before_array_declaration PASSED [ 63%] 370s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_declared_in_a_single_line PASSED [ 63%] 370s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_no_keys PASSED [ 63%] 370s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_no_keys_assigned_to_array PASSED [ 63%] 370s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_no_keys PASSED [ 63%] 370s tests/translate/storage/test_php.py::TestPhpFile::test_assignment_in_line_where_multiline_comment_ends PASSED [ 63%] 370s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_using_short_array_syntax PASSED [ 63%] 370s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays PASSED [ 63%] 370s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_space_before_array_declaration PASSED [ 63%] 370s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_unnamed_nested_arrays PASSED [ 63%] 370s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_array_declaration_in_next_line PASSED [ 63%] 370s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_array_with_newline_after_delimiter PASSED [ 63%] 370s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_blank_entries PASSED [ 63%] 370s tests/translate/storage/test_php.py::TestPhpFile::test_slashstar_in_string PASSED [ 63%] 370s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_heredoc_syntax PASSED [ 63%] 370s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition_after_define PASSED [ 63%] 370s tests/translate/storage/test_php.py::TestPhpFile::test_quotes PASSED [ 63%] 370s tests/translate/storage/test_php.py::TestPhpFile::test_concatenation PASSED [ 63%] 370s tests/translate/storage/test_php.py::TestPhpFile::test_serialize PASSED [ 63%] 370s tests/translate/storage/test_php.py::TestPhpFile::test_space_before_comma PASSED [ 63%] 370s tests/translate/storage/test_php.py::TestPhpFile::test_equals_in_id PASSED [ 63%] 370s tests/translate/storage/test_php.py::TestPhpFile::test_comma_in_string PASSED [ 63%] 370s tests/translate/storage/test_php.py::TestPhpFile::test_nowdoc PASSED [ 63%] 370s tests/translate/storage/test_php.py::TestPhpFile::test_plain_concatenation PASSED [ 63%] 370s tests/translate/storage/test_php.py::TestPhpFile::test_array_keys PASSED [ 63%] 370s tests/translate/storage/test_php.py::TestPhpFile::test_double_var PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestPhpFile::test_return_array PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_with_spaces PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_with_comments PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_short PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_short_quotes PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestPhpFile::test_addunit PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_isfuzzy PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_create PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_eq PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_escapes PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_difficult_escapes PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_note_sanity PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_line_number_default PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_target PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_rich_get PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_rich_set PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_create_blank PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_remove PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_find PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_parse PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_files PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_save PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_extensions PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_mimetypes PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_translate PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_markup PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_nonascii PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_plurals PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_key_stripping PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_key_stripping_array_syntax PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_key_stripping_numeric_keys PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_roundtrip_short_array PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_roundtrip_array_syntax PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_setid_preserves_structure PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_setid_with_array_syntax PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_addunit_with_setid PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_unit_to_short_array_file PASSED [ 64%] 370s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_unit_to_array_function_file PASSED [ 65%] 370s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_multiple_units_to_short_array PASSED [ 65%] 370s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_multiple_units_to_array_function PASSED [ 65%] 370s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_numeric_keys_no_quotes PASSED [ 65%] 370s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_empty_string_key PASSED [ 65%] 370s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_setid_with_non_string_value PASSED [ 65%] 370s tests/translate/storage/test_po.py::test_roundtrip_quoting PASSED [ 65%] 370s tests/translate/storage/test_po.py::TestPOUnit::test_isfuzzy PASSED [ 65%] 370s tests/translate/storage/test_po.py::TestPOUnit::test_create PASSED [ 65%] 370s tests/translate/storage/test_po.py::TestPOUnit::test_eq PASSED [ 65%] 370s tests/translate/storage/test_po.py::TestPOUnit::test_target PASSED [ 65%] 370s tests/translate/storage/test_po.py::TestPOUnit::test_escapes PASSED [ 65%] 370s tests/translate/storage/test_po.py::TestPOUnit::test_difficult_escapes PASSED [ 65%] 370s tests/translate/storage/test_po.py::TestPOUnit::test_note_sanity PASSED [ 65%] 370s tests/translate/storage/test_po.py::TestPOUnit::test_line_number_default PASSED [ 65%] 370s tests/translate/storage/test_po.py::TestPOUnit::test_rich_get PASSED [ 65%] 370s tests/translate/storage/test_po.py::TestPOUnit::test_rich_set PASSED [ 65%] 370s tests/translate/storage/test_po.py::TestPOUnit::test_istranslatable PASSED [ 65%] 370s tests/translate/storage/test_po.py::TestPOUnit::test_locations PASSED [ 65%] 370s tests/translate/storage/test_po.py::TestPOUnit::test_nongettext_location PASSED [ 65%] 370s tests/translate/storage/test_po.py::TestPOUnit::test_adding_empty_note PASSED [ 65%] 370s tests/translate/storage/test_po.py::TestPOUnit::test_markreview PASSED [ 65%] 370s tests/translate/storage/test_po.py::TestPOUnit::test_errors PASSED [ 65%] 370s tests/translate/storage/test_po.py::TestPOUnit::test_no_plural_settarget PASSED [ 65%] 370s tests/translate/storage/test_po.py::TestPOUnit::test_wrapping_bug PASSED [ 65%] 370s tests/translate/storage/test_po.py::TestPOUnit::test_extract_msgidcomments_from_text PASSED [ 65%] 370s tests/translate/storage/test_po.py::TestPOUnit::test_isheader PASSED [ 65%] 370s tests/translate/storage/test_po.py::TestPOUnit::test_buildfromunit PASSED [ 65%] 370s tests/translate/storage/test_po.py::TestPOFile::test_create_blank PASSED [ 65%] 370s tests/translate/storage/test_po.py::TestPOFile::test_add PASSED [ 65%] 370s tests/translate/storage/test_po.py::TestPOFile::test_remove PASSED [ 65%] 370s tests/translate/storage/test_po.py::TestPOFile::test_find PASSED [ 65%] 370s tests/translate/storage/test_po.py::TestPOFile::test_translate PASSED [ 65%] 370s tests/translate/storage/test_po.py::TestPOFile::test_parse PASSED [ 65%] 370s tests/translate/storage/test_po.py::TestPOFile::test_files PASSED [ 65%] 370s tests/translate/storage/test_po.py::TestPOFile::test_save PASSED [ 65%] 370s tests/translate/storage/test_po.py::TestPOFile::test_markup PASSED [ 65%] 370s tests/translate/storage/test_po.py::TestPOFile::test_nonascii PASSED [ 65%] 370s tests/translate/storage/test_po.py::TestPOFile::test_extensions PASSED [ 65%] 370s tests/translate/storage/test_po.py::TestPOFile::test_mimetypes PASSED [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_context_only PASSED [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_simpleentry PASSED [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_copy PASSED [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_parse_source_string PASSED [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_parse_file PASSED [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_unicode PASSED [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_plurals PASSED [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_plural_unicode PASSED [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_nongettext_location PASSED [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_percent_location PASSED [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_kde_plurals XFAIL [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_empty_lines_notes PASSED [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_fuzzy PASSED [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_untranslated XFAIL [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_merging_automaticcomments PASSED [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_malformed_units PASSED [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_invalid_keyword PASSED [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_malformed_obsolete_units PASSED [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_uniforum_po PASSED [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_obsolete PASSED [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_obsolete_with_prev_msgid PASSED [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_header_escapes PASSED [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete PASSED [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_plural PASSED [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_msgctxt PASSED [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_msgidcomments PASSED [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_multiline_obsolete PASSED [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_merge_duplicates PASSED [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_merge_mixed_sources PASSED [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_parse_context PASSED [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_parse_advanced_context PASSED [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_kde_context PASSED [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_broken_kde_context PASSED [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_id PASSED [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_non_ascii_header_comments PASSED [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_non_ascii_header_comments_2 PASSED [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_final_slash PASSED [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_unfinished_lines PASSED [ 66%] 370s tests/translate/storage/test_po.py::TestPOFile::test_encoding_change PASSED [ 67%] 370s tests/translate/storage/test_po.py::TestPOFile::test_istranslated PASSED [ 67%] 370s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_spaces PASSED [ 67%] 370s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long PASSED [ 67%] 370s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_fit PASSED [ 67%] 370s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_overflow PASSED [ 67%] 370s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_multiline PASSED [ 67%] 370s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_escapes PASSED [ 67%] 370s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_cjk PASSED [ 67%] 370s tests/translate/storage/test_po.py::TestPOFile::test_wrap_emoji PASSED [ 67%] 370s tests/translate/storage/test_po.py::TestPOFile::test_wrap_parenthesis PASSED [ 67%] 370s tests/translate/storage/test_po.py::TestPOFile::test_wrap_escape_line PASSED [ 67%] 370s tests/translate/storage/test_po.py::TestPOFile::test_wrap_parenthesis_long PASSED [ 67%] 370s tests/translate/storage/test_po.py::TestPOFile::test_wrap_gettext PASSED [ 67%] 370s tests/translate/storage/test_po.py::TestPOFile::test_wrap_wide_stop PASSED [ 67%] 370s tests/translate/storage/test_po.py::TestPOFile::test_wrap_escape PASSED [ 67%] 370s tests/translate/storage/test_po.py::TestPOFile::test_msgidcomments PASSED [ 67%] 370s tests/translate/storage/test_po.py::TestPOFile::test_unicode_ids PASSED [ 67%] 370s tests/translate/storage/test_po.py::TestPOFile::test_syntax_error PASSED [ 67%] 370s tests/translate/storage/test_po.py::TestPOFile::test_invalid PASSED [ 67%] 370s tests/translate/storage/test_po.py::TestPOFile::test_c_style_comment_error_reporting PASSED [ 67%] 370s tests/translate/storage/test_po.py::TestPOFile::test_wrapped_msgid PASSED [ 67%] 370s tests/translate/storage/test_po.py::TestPOFile::test_missing_plural PASSED [ 67%] 370s tests/translate/storage/test_po.py::TestPOFile::test_unusual_line_endings PASSED [ 67%] 370s tests/translate/storage/test_po.py::TestPOFile::test_charset_with_space PASSED [ 67%] 370s tests/translate/storage/test_po.py::TestPOFile::test_duplicate_msgid_error PASSED [ 67%] 370s tests/translate/storage/test_pocommon.py::test_roundtrip_quote_plus PASSED [ 67%] 370s tests/translate/storage/test_poheader.py::test_parseheaderstring PASSED [ 67%] 370s tests/translate/storage/test_poheader.py::test_update PASSED [ 67%] 370s tests/translate/storage/test_poheader.py::test_po_dates PASSED [ 67%] 370s tests/translate/storage/test_poheader.py::test_timezones PASSED [ 67%] 370s tests/translate/storage/test_poheader.py::test_header_blank PASSED [ 67%] 370s tests/translate/storage/test_poheader.py::test_plural_equation PASSED [ 67%] 370s tests/translate/storage/test_poheader.py::test_plural_equation_across_lines PASSED [ 67%] 370s tests/translate/storage/test_poheader.py::test_updatecontributor PASSED [ 67%] 370s tests/translate/storage/test_poheader.py::test_updatecontributor_header PASSED [ 67%] 370s tests/translate/storage/test_poheader.py::test_language PASSED [ 67%] 370s tests/translate/storage/test_poheader.py::test_project PASSED [ 67%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_isfuzzy PASSED [ 67%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_create PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_eq PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_target PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_escapes PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_difficult_escapes PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_note_sanity PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_line_number_default PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_rich_get PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_rich_set PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_markreview PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_errors PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_accepted_control_chars PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_unaccepted_control_chars PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_plurals PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_ids PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_create_blank PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_remove PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_find PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_translate PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_files PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_save PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_markup PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_nonascii PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_extensions PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_mimetypes PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_basic PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_namespace PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_rich_source PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_rich_target PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_source PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_target PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_sourcelanguage PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_targetlanguage PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_targetlanguage_multi PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_alttrans PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_fuzzy PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_xml_space PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parsing PASSED [ 68%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_marktranslatable PASSED [ 69%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_entities PASSED [ 69%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_multiple_filenodes PASSED [ 69%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_groups_when_adding_units PASSED [ 69%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_multiple_files_and_groups PASSED [ 69%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_unit_to_existing_group PASSED [ 69%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_unit_to_different_file PASSED [ 69%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_mixed_groups_and_body PASSED [ 69%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_addunit_with_new_false PASSED [ 69%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_namespace_preservation_across_versions PASSED [ 69%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_units_between_different_files PASSED [ 69%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_group_preservation_across_different_namespaces PASSED [ 69%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_cross_namespace_group_and_file_preservation PASSED [ 69%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_indent PASSED [ 69%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_target PASSED [ 69%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve PASSED [ 69%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_closing_tags PASSED [ 69%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_context_groups PASSED [ 69%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_getlocations PASSED [ 69%] 370s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_addlocation PASSED [ 69%] 371s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_huge PASSED [ 69%] 371s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_add PASSED [ 69%] 371s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parse PASSED [ 69%] 371s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parse_plural_alpha_id PASSED [ 69%] 371s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_notes PASSED [ 69%] 371s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_plural PASSED [ 69%] 371s tests/translate/storage/test_properties.py::test_find_delimiter_pos_simple PASSED [ 69%] 371s tests/translate/storage/test_properties.py::test_find_delimiter_pos_multiple PASSED [ 69%] 371s tests/translate/storage/test_properties.py::test_find_delimiter_pos_none PASSED [ 69%] 371s tests/translate/storage/test_properties.py::test_find_delimiter_pos_whitespace PASSED [ 69%] 371s tests/translate/storage/test_properties.py::test_find_delimiter_pos_escapes PASSED [ 69%] 371s tests/translate/storage/test_properties.py::test_find_delimiter_pos_empty_and_whitespace PASSED [ 69%] 371s tests/translate/storage/test_properties.py::test_find_delimiter_pos_tabs PASSED [ 69%] 371s tests/translate/storage/test_properties.py::test_is_line_continuation PASSED [ 69%] 371s tests/translate/storage/test_properties.py::test_key_strip PASSED [ 69%] 371s tests/translate/storage/test_properties.py::test_get_comment_one_line PASSED [ 69%] 371s tests/translate/storage/test_properties.py::test_get_comment_start PASSED [ 69%] 371s tests/translate/storage/test_properties.py::test_get_comment_end PASSED [ 69%] 371s tests/translate/storage/test_properties.py::TestPropUnit::test_isfuzzy PASSED [ 69%] 371s tests/translate/storage/test_properties.py::TestPropUnit::test_create PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestPropUnit::test_eq PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestPropUnit::test_escapes PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestPropUnit::test_difficult_escapes PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestPropUnit::test_note_sanity PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestPropUnit::test_line_number_default PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestPropUnit::test_target PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestPropUnit::test_rich_get PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestPropUnit::test_rich_set PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestGwtProp::test_create_blank PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestGwtProp::test_add PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestGwtProp::test_remove PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestGwtProp::test_find PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestGwtProp::test_parse PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestGwtProp::test_files PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestGwtProp::test_save PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestGwtProp::test_extensions PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestGwtProp::test_mimetypes PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestGwtProp::test_translate PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestGwtProp::test_markup PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestGwtProp::test_nonascii PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestGwtProp::test_quotes PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestGwtProp::test_simpledefinition PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestGwtProp::test_doubledefinition PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestGwtProp::test_doubledefinition_source PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestGwtProp::test_reduce PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestGwtProp::test_increase PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestGwtProp::test_extra_plurals PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestGwtProp::test_non_plurals PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestGwtProp::test_encoding PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestGwtProp::test_other_plurals PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestProp::test_create_blank PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestProp::test_add PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestProp::test_remove PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestProp::test_find PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestProp::test_parse PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestProp::test_files PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestProp::test_save PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestProp::test_extensions PASSED [ 70%] 371s tests/translate/storage/test_properties.py::TestProp::test_mimetypes PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_translate PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_markup PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_nonascii PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_simpledefinition PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_simpledefinition_source PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_controlutf8_source PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_control_source PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_unicode_escaping PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_newlines_startend PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_space PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_whitespace_handling PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_key_value_delimiters_simple PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_tab_delimiter_parsing PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_comments PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_latin1 PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_fullspec_delimiters PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_fullspec_escaped_key PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_fullspec_line_continuation PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_fullspec_key_without_value PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_mac_strings PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_utf_16_save PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_mac_multiline_strings PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_unicode PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_utf8 PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_newlines PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comments PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_multilines_comments PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comments_dropping PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_inline_comments PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_inline_comments_nested PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_inline_comment_with_spaces PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_before_entry PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_between_key_and_equals PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_between_equals_and_value PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_after_value_before_semicolon PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_multiple_inline_comments PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_nested_comment PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_inside_value PASSED [ 71%] 371s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_trailing_whitespace_after_semicolon PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_quotes PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_equals PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_serialization PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_double_backslashes PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestProp::test_override_encoding PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestProp::test_trailing_comments PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestProp::test_utf16_byte_order_mark PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestProp::test_raise_ioerror_if_cannot_detect_encoding PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestProp::test_utf8_byte_order_mark PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestProp::test_utf16_bom_no_warning PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestProp::test_joomla_set_target PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestProp::test_joomla PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestProp::test_joomla_escape PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestProp::test_serialize_missing_delimiter PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestProp::test_serialize_missing_value PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestProp::test_multi_comments PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestProp::test_serialize_note PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestProp::test_serialize_long_note PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestProp::test_trailing_newlines PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestXWiki::test_create_blank PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestXWiki::test_add PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestXWiki::test_remove PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestXWiki::test_find PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestXWiki::test_parse PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestXWiki::test_files PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestXWiki::test_save PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestXWiki::test_extensions PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestXWiki::test_mimetypes PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestXWiki::test_translate PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestXWiki::test_markup PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestXWiki::test_nonascii PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestXWiki::test_simpledefinition PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestXWiki::test_missing_definition PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestXWiki::test_missing_definition_source PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestXWiki::test_definition_with_simple_quote PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestXWiki::test_definition_with_simple_quote_and_argument PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestXWiki::test_header_preserved PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestXWiki::test_blank_line_before_comment_preserved PASSED [ 72%] 371s tests/translate/storage/test_properties.py::TestXWiki::test_deprecated_comments_preserved PASSED [ 73%] 371s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_create_blank PASSED [ 73%] 371s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_add PASSED [ 73%] 371s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_remove PASSED [ 73%] 371s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_find PASSED [ 73%] 371s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_parse PASSED [ 73%] 371s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_files PASSED [ 73%] 371s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_save PASSED [ 73%] 371s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_extensions PASSED [ 73%] 371s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_mimetypes PASSED [ 73%] 371s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_translate PASSED [ 73%] 371s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_markup PASSED [ 73%] 371s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_nonascii PASSED [ 73%] 371s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_simpledefinition PASSED [ 73%] 371s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_missing_definition PASSED [ 73%] 371s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_missing_definition_source PASSED [ 73%] 371s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_simple_quote PASSED [ 73%] 371s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_simple_quote_and_argument PASSED [ 73%] 371s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_encoded_html PASSED [ 73%] 371s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_cleaning_attributes PASSED [ 73%] 371s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_translate_source PASSED [ 73%] 371s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_create_blank PASSED [ 73%] 371s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_add PASSED [ 73%] 371s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_find PASSED [ 73%] 371s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_extensions PASSED [ 73%] 371s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_mimetypes PASSED [ 73%] 371s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_translate PASSED [ 73%] 371s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_markup PASSED [ 73%] 371s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_nonascii PASSED [ 73%] 371s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_simpledefinition PASSED [ 73%] 371s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_parse PASSED [ 73%] 371s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_files PASSED [ 73%] 371s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_save PASSED [ 73%] 371s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_cleaning_attributes PASSED [ 73%] 371s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_remove XFAIL [ 73%] 371s tests/translate/storage/test_pypo.py::TestHelpers::test_unescape PASSED [ 73%] 371s tests/translate/storage/test_pypo.py::TestHelpers::test_quoteforpo PASSED [ 73%] 371s tests/translate/storage/test_pypo.py::TestHelpers::test_quoteforpo_escaped_quotes PASSED [ 73%] 371s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_isfuzzy PASSED [ 73%] 371s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_create PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_eq PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_target PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_escapes PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_difficult_escapes PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_note_sanity PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_line_number_default PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_rich_get PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_rich_set PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_istranslatable PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_locations PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_nongettext_location PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_adding_empty_note PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_markreview PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_errors PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_no_plural_settarget PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrapping_bug PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_extract_msgidcomments_from_text PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_isheader PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_buildfromunit PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_plurals PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_plural_reduction PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes_withcomments PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes_with_blank_lines PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_firstlines PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_newlines PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_max_line_length PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_slash PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_spacing_max_line PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_create_blank PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_add PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_remove PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_find PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_translate PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_files PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_save PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_markup PASSED [ 74%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_nonascii PASSED [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_extensions PASSED [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mimetypes PASSED [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_context_only PASSED [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_simpleentry PASSED [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_copy PASSED [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_source_string PASSED [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_file PASSED [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode PASSED [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_plurals PASSED [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_plural_unicode PASSED [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_nongettext_location PASSED [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_percent_location PASSED [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_plurals XFAIL [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_empty_lines_notes PASSED [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_fuzzy PASSED [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_untranslated XFAIL [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merging_automaticcomments PASSED [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_malformed_units PASSED [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_invalid_keyword PASSED [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_malformed_obsolete_units PASSED [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_uniforum_po PASSED [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_obsolete PASSED [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_obsolete_with_prev_msgid PASSED [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_header_escapes PASSED [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete PASSED [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_plural PASSED [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_msgctxt PASSED [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_msgidcomments PASSED [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_multiline_obsolete PASSED [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_duplicates PASSED [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_mixed_sources PASSED [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_context PASSED [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_advanced_context PASSED [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_context PASSED [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_broken_kde_context PASSED [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_id PASSED [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_non_ascii_header_comments PASSED [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_non_ascii_header_comments_2 PASSED [ 75%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_final_slash PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unfinished_lines PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_encoding_change PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_istranslated PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_spaces PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_fit PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_overflow PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_multiline PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_escapes PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_cjk PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_emoji PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_parenthesis PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_escape_line PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_parenthesis_long PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_gettext PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_wide_stop PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_escape PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_msgidcomments PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode_ids PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_syntax_error PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_c_style_comment_error_reporting PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapped_msgid PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_missing_plural PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unusual_line_endings PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_charset_with_space PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_duplicate_msgid_error PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_combine_msgidcomments PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_duplicates_msgctxt PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_blanks PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_output_str_unicode PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_posections PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_typecomments PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_future_flags PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unassociated_comments PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode_header PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_prevmsgid_parse PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_newlines PASSED [ 76%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unix_newlines PASSED [ 77%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines PASSED [ 77%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mac_newlines PASSED [ 77%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines PASSED [ 77%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_header PASSED [ 77%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_comment PASSED [ 77%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_bom PASSED [ 77%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_long_msgidcomments PASSED [ 77%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_incomplete PASSED [ 77%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_invalid PASSED [ 77%] 371s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines_write PASSED [ 77%] 372s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_typecomment XFAIL [ 77%] 372s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines_typecomment PASSED [ 77%] 372s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_custom PASSED [ 77%] 372s tests/translate/storage/test_pypo.py::TestPYPOFile::test_line_number PASSED [ 77%] 372s tests/translate/storage/test_qm.py::TestQtUnit::test_isfuzzy PASSED [ 77%] 372s tests/translate/storage/test_qm.py::TestQtUnit::test_create PASSED [ 77%] 372s tests/translate/storage/test_qm.py::TestQtUnit::test_eq PASSED [ 77%] 372s tests/translate/storage/test_qm.py::TestQtUnit::test_target PASSED [ 77%] 372s tests/translate/storage/test_qm.py::TestQtUnit::test_escapes PASSED [ 77%] 372s tests/translate/storage/test_qm.py::TestQtUnit::test_difficult_escapes PASSED [ 77%] 372s tests/translate/storage/test_qm.py::TestQtUnit::test_note_sanity PASSED [ 77%] 372s tests/translate/storage/test_qm.py::TestQtUnit::test_line_number_default PASSED [ 77%] 372s tests/translate/storage/test_qm.py::TestQtUnit::test_rich_get PASSED [ 77%] 372s tests/translate/storage/test_qm.py::TestQtUnit::test_rich_set PASSED [ 77%] 372s tests/translate/storage/test_qm.py::TestQtFile::test_create_blank PASSED [ 77%] 372s tests/translate/storage/test_qm.py::TestQtFile::test_find PASSED [ 77%] 372s tests/translate/storage/test_qm.py::TestQtFile::test_translate PASSED [ 77%] 372s tests/translate/storage/test_qm.py::TestQtFile::test_markup PASSED [ 77%] 372s tests/translate/storage/test_qm.py::TestQtFile::test_extensions PASSED [ 77%] 372s tests/translate/storage/test_qm.py::TestQtFile::test_mimetypes PASSED [ 77%] 372s tests/translate/storage/test_qm.py::TestQtFile::test_parse PASSED [ 77%] 372s tests/translate/storage/test_qm.py::TestQtFile::test_save PASSED [ 77%] 372s tests/translate/storage/test_qm.py::TestQtFile::test_files PASSED [ 77%] 372s tests/translate/storage/test_qm.py::TestQtFile::test_nonascii PASSED [ 77%] 372s tests/translate/storage/test_qm.py::TestQtFile::test_add PASSED [ 77%] 372s tests/translate/storage/test_qm.py::TestQtFile::test_remove PASSED [ 77%] 372s tests/translate/storage/test_qph.py::TestQphUnit::test_isfuzzy PASSED [ 77%] 372s tests/translate/storage/test_qph.py::TestQphUnit::test_create PASSED [ 77%] 372s tests/translate/storage/test_qph.py::TestQphUnit::test_eq PASSED [ 78%] 372s tests/translate/storage/test_qph.py::TestQphUnit::test_target PASSED [ 78%] 372s tests/translate/storage/test_qph.py::TestQphUnit::test_escapes PASSED [ 78%] 372s tests/translate/storage/test_qph.py::TestQphUnit::test_difficult_escapes PASSED [ 78%] 372s tests/translate/storage/test_qph.py::TestQphUnit::test_note_sanity PASSED [ 78%] 372s tests/translate/storage/test_qph.py::TestQphUnit::test_line_number_default PASSED [ 78%] 372s tests/translate/storage/test_qph.py::TestQphUnit::test_rich_get PASSED [ 78%] 372s tests/translate/storage/test_qph.py::TestQphUnit::test_rich_set PASSED [ 78%] 372s tests/translate/storage/test_qph.py::TestQphFile::test_create_blank PASSED [ 78%] 372s tests/translate/storage/test_qph.py::TestQphFile::test_add PASSED [ 78%] 372s tests/translate/storage/test_qph.py::TestQphFile::test_remove PASSED [ 78%] 372s tests/translate/storage/test_qph.py::TestQphFile::test_find PASSED [ 78%] 372s tests/translate/storage/test_qph.py::TestQphFile::test_translate PASSED [ 78%] 372s tests/translate/storage/test_qph.py::TestQphFile::test_parse PASSED [ 78%] 372s tests/translate/storage/test_qph.py::TestQphFile::test_files PASSED [ 78%] 372s tests/translate/storage/test_qph.py::TestQphFile::test_save PASSED [ 78%] 372s tests/translate/storage/test_qph.py::TestQphFile::test_markup PASSED [ 78%] 372s tests/translate/storage/test_qph.py::TestQphFile::test_nonascii PASSED [ 78%] 372s tests/translate/storage/test_qph.py::TestQphFile::test_extensions PASSED [ 78%] 372s tests/translate/storage/test_qph.py::TestQphFile::test_mimetypes PASSED [ 78%] 372s tests/translate/storage/test_qph.py::TestQphFile::test_basic PASSED [ 78%] 372s tests/translate/storage/test_qph.py::TestQphFile::test_source PASSED [ 78%] 372s tests/translate/storage/test_qph.py::TestQphFile::test_target PASSED [ 78%] 372s tests/translate/storage/test_qph.py::TestQphFile::test_language PASSED [ 78%] 372s tests/translate/storage/test_rc.py::test_escaping PASSED [ 78%] 372s tests/translate/storage/test_rc.py::TestRcFile::test_parse_only_comments PASSED [ 78%] 372s tests/translate/storage/test_rc.py::TestRcFile::test_parse_only_textinclude PASSED [ 78%] 372s tests/translate/storage/test_rc.py::TestRcFile::test_parse_dialog PASSED [ 78%] 372s tests/translate/storage/test_rc.py::TestRcFile::test_parse_stringtable PASSED [ 78%] 372s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_lf PASSED [ 78%] 372s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_crlf PASSED [ 78%] 372s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_cr PASSED [ 78%] 372s tests/translate/storage/test_rc.py::TestRcFile::test_parse_no_language PASSED [ 78%] 372s tests/translate/storage/test_rc.py::TestRcFile::test_textinclude PASSED [ 78%] 372s tests/translate/storage/test_rc.py::TestRcFile::test_multiline PASSED [ 78%] 372s tests/translate/storage/test_rc.py::TestRcFile::test_str PASSED [ 78%] 372s tests/translate/storage/test_rc.py::TestRcFile::test_empty PASSED [ 78%] 372s tests/translate/storage/test_rc.py::TestRcFile::test_utf_8 PASSED [ 78%] 372s tests/translate/storage/test_rc.py::TestRcFile::test_utf_16 PASSED [ 78%] 372s tests/translate/storage/test_rc.py::TestRcFile::test_comment PASSED [ 79%] 372s tests/translate/storage/test_rc.py::TestRcFile::test_stringtables PASSED [ 79%] 372s tests/translate/storage/test_rc.py::TestRcFile::test_textinclude_appstudio PASSED [ 79%] 372s tests/translate/storage/test_rc.py::TestRcFile::test_id_whitespace PASSED [ 79%] 372s tests/translate/storage/test_rc.py::TestRcFile::test_menu_comment PASSED [ 79%] 372s tests/translate/storage/test_rc.py::TestRcFile::test_decompiled PASSED [ 79%] 372s tests/translate/storage/test_rc.py::TestRcFile::test_quotes PASSED [ 79%] 372s tests/translate/storage/test_rc.py::TestRcFile::test_utf16_pragma_code_page PASSED [ 79%] 372s tests/translate/storage/test_rc.py::TestRcFile::test_utf8_pragma_code_page PASSED [ 79%] 372s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_isfuzzy PASSED [ 79%] 372s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_create PASSED [ 79%] 372s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_eq PASSED [ 79%] 372s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_escapes PASSED [ 79%] 372s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_difficult_escapes PASSED [ 79%] 372s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_note_sanity PASSED [ 79%] 372s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_line_number_default PASSED [ 79%] 372s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_target PASSED [ 79%] 372s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_rich_get PASSED [ 79%] 372s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_rich_set PASSED [ 79%] 372s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_create_blank PASSED [ 79%] 372s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_add PASSED [ 79%] 372s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_remove PASSED [ 79%] 372s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_find PASSED [ 79%] 372s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_parse PASSED [ 79%] 372s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_files PASSED [ 79%] 372s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_save PASSED [ 79%] 372s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_extensions PASSED [ 79%] 372s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_mimetypes PASSED [ 79%] 372s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_translate PASSED [ 79%] 372s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_markup PASSED [ 79%] 372s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_nonascii PASSED [ 79%] 372s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_roundtrip PASSED [ 79%] 372s tests/translate/storage/test_resx.py::TestRESXUnit::test_isfuzzy PASSED [ 79%] 372s tests/translate/storage/test_resx.py::TestRESXUnit::test_create PASSED [ 79%] 372s tests/translate/storage/test_resx.py::TestRESXUnit::test_eq PASSED [ 79%] 372s tests/translate/storage/test_resx.py::TestRESXUnit::test_escapes PASSED [ 79%] 372s tests/translate/storage/test_resx.py::TestRESXUnit::test_difficult_escapes PASSED [ 79%] 372s tests/translate/storage/test_resx.py::TestRESXUnit::test_note_sanity PASSED [ 79%] 372s tests/translate/storage/test_resx.py::TestRESXUnit::test_line_number_default PASSED [ 79%] 372s tests/translate/storage/test_resx.py::TestRESXUnit::test_target PASSED [ 80%] 372s tests/translate/storage/test_resx.py::TestRESXUnit::test_rich_get PASSED [ 80%] 372s tests/translate/storage/test_resx.py::TestRESXUnit::test_rich_set PASSED [ 80%] 372s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_isfuzzy PASSED [ 80%] 372s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_create PASSED [ 80%] 372s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_eq PASSED [ 80%] 372s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_escapes PASSED [ 80%] 372s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_difficult_escapes PASSED [ 80%] 372s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_note_sanity PASSED [ 80%] 372s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_line_number_default PASSED [ 80%] 372s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_target PASSED [ 80%] 372s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_rich_get PASSED [ 80%] 372s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_rich_set PASSED [ 80%] 372s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_newunit PASSED [ 80%] 372s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_newunit_comment PASSED [ 80%] 372s tests/translate/storage/test_resx.py::TestRESXfile::test_create_blank PASSED [ 80%] 372s tests/translate/storage/test_resx.py::TestRESXfile::test_add PASSED [ 80%] 372s tests/translate/storage/test_resx.py::TestRESXfile::test_remove PASSED [ 80%] 372s tests/translate/storage/test_resx.py::TestRESXfile::test_find PASSED [ 80%] 372s tests/translate/storage/test_resx.py::TestRESXfile::test_parse PASSED [ 80%] 372s tests/translate/storage/test_resx.py::TestRESXfile::test_files PASSED [ 80%] 372s tests/translate/storage/test_resx.py::TestRESXfile::test_save PASSED [ 80%] 372s tests/translate/storage/test_resx.py::TestRESXfile::test_extensions PASSED [ 80%] 372s tests/translate/storage/test_resx.py::TestRESXfile::test_mimetypes PASSED [ 80%] 372s tests/translate/storage/test_resx.py::TestRESXfile::test_translate PASSED [ 80%] 372s tests/translate/storage/test_resx.py::TestRESXfile::test_markup PASSED [ 80%] 372s tests/translate/storage/test_resx.py::TestRESXfile::test_nonascii PASSED [ 80%] 372s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_isfuzzy PASSED [ 80%] 372s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_create PASSED [ 80%] 372s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_eq PASSED [ 80%] 372s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_escapes PASSED [ 80%] 372s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_difficult_escapes PASSED [ 80%] 372s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_note_sanity PASSED [ 80%] 372s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_line_number_default PASSED [ 80%] 372s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_target PASSED [ 80%] 372s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_rich_get PASSED [ 80%] 372s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_rich_set PASSED [ 80%] 372s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_source PASSED [ 80%] 372s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_eq_formatvaluetype PASSED [ 80%] 372s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_innerkey PASSED [ 81%] 372s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_create_blank PASSED [ 81%] 372s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_add PASSED [ 81%] 372s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_remove PASSED [ 81%] 372s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_find PASSED [ 81%] 372s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_parse PASSED [ 81%] 372s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_files PASSED [ 81%] 372s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_save PASSED [ 81%] 372s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_extensions PASSED [ 81%] 372s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_mimetypes PASSED [ 81%] 372s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_translate PASSED [ 81%] 372s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_markup PASSED [ 81%] 372s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_nonascii PASSED [ 81%] 372s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_serialize PASSED [ 81%] 372s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_default_handlings PASSED [ 81%] 372s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_filename PASSED [ 81%] 372s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_base_filename PASSED [ 81%] 372s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_filename_default_language PASSED [ 81%] 372s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_plural_zero_always_set PASSED [ 81%] 372s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_add_unit PASSED [ 81%] 372s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_create_blank PASSED [ 81%] 372s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_add PASSED [ 81%] 372s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_remove PASSED [ 81%] 372s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_find PASSED [ 81%] 372s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_parse PASSED [ 81%] 372s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_files PASSED [ 81%] 372s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_save PASSED [ 81%] 372s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_extensions PASSED [ 81%] 372s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_mimetypes PASSED [ 81%] 372s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_translate PASSED [ 81%] 372s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_markup PASSED [ 81%] 372s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_nonascii PASSED [ 81%] 372s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_ordering PASSED [ 81%] 372s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_create_blank PASSED [ 81%] 372s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_add PASSED [ 81%] 372s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_remove PASSED [ 81%] 372s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_find PASSED [ 81%] 372s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_parse PASSED [ 81%] 372s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_files PASSED [ 81%] 372s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_save PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_extensions PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_mimetypes PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_translate PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_markup PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_nonascii PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_ordering PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_note_sanity XFAIL [ 82%] 372s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_create_blank PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_add PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_remove PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_find PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_parse PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_files PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_save PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_extensions PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_mimetypes PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_translate PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_markup PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_nonascii PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_ordering PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_create_blank PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_add PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_remove PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_find PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_parse PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_files PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_save PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_extensions PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_mimetypes PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_translate PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_markup PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_nonascii PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_ordering PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_style_preservation PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_create_blank PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_add PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_remove PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_find PASSED [ 82%] 372s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_parse PASSED [ 83%] 372s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_files PASSED [ 83%] 372s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_save PASSED [ 83%] 372s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_extensions PASSED [ 83%] 372s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_mimetypes PASSED [ 83%] 372s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_translate PASSED [ 83%] 372s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_markup PASSED [ 83%] 372s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_nonascii PASSED [ 83%] 372s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_ordering PASSED [ 83%] 372s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_style_preservation PASSED [ 83%] 372s tests/translate/storage/test_tbx.py::TestTBXUnit::test_isfuzzy PASSED [ 83%] 372s tests/translate/storage/test_tbx.py::TestTBXUnit::test_create PASSED [ 83%] 372s tests/translate/storage/test_tbx.py::TestTBXUnit::test_eq PASSED [ 83%] 372s tests/translate/storage/test_tbx.py::TestTBXUnit::test_target PASSED [ 83%] 372s tests/translate/storage/test_tbx.py::TestTBXUnit::test_escapes PASSED [ 83%] 372s tests/translate/storage/test_tbx.py::TestTBXUnit::test_difficult_escapes PASSED [ 83%] 372s tests/translate/storage/test_tbx.py::TestTBXUnit::test_note_sanity PASSED [ 83%] 372s tests/translate/storage/test_tbx.py::TestTBXUnit::test_line_number_default PASSED [ 83%] 372s tests/translate/storage/test_tbx.py::TestTBXUnit::test_rich_get PASSED [ 83%] 372s tests/translate/storage/test_tbx.py::TestTBXUnit::test_rich_set PASSED [ 83%] 372s tests/translate/storage/test_tbx.py::TestTBXfile::test_create_blank PASSED [ 83%] 372s tests/translate/storage/test_tbx.py::TestTBXfile::test_add PASSED [ 83%] 372s tests/translate/storage/test_tbx.py::TestTBXfile::test_remove PASSED [ 83%] 372s tests/translate/storage/test_tbx.py::TestTBXfile::test_find PASSED [ 83%] 372s tests/translate/storage/test_tbx.py::TestTBXfile::test_translate PASSED [ 83%] 372s tests/translate/storage/test_tbx.py::TestTBXfile::test_parse PASSED [ 83%] 372s tests/translate/storage/test_tbx.py::TestTBXfile::test_files PASSED [ 83%] 372s tests/translate/storage/test_tbx.py::TestTBXfile::test_save PASSED [ 83%] 372s tests/translate/storage/test_tbx.py::TestTBXfile::test_markup PASSED [ 83%] 372s tests/translate/storage/test_tbx.py::TestTBXfile::test_nonascii PASSED [ 83%] 372s tests/translate/storage/test_tbx.py::TestTBXfile::test_extensions PASSED [ 83%] 372s tests/translate/storage/test_tbx.py::TestTBXfile::test_mimetypes PASSED [ 83%] 372s tests/translate/storage/test_tbx.py::TestTBXfile::test_basic PASSED [ 83%] 372s tests/translate/storage/test_tbx.py::TestTBXfile::test_source PASSED [ 83%] 372s tests/translate/storage/test_tbx.py::TestTBXfile::test_target PASSED [ 83%] 372s tests/translate/storage/test_tbx.py::TestTBXfile::test_setid PASSED [ 83%] 372s tests/translate/storage/test_tbx.py::TestTBXfile::test_indent PASSED [ 83%] 372s tests/translate/storage/test_tbx.py::TestTBXfile::test_descrip PASSED [ 83%] 372s tests/translate/storage/test_tbx.py::TestTBXfile::test_note_from PASSED [ 83%] 372s tests/translate/storage/test_tbx.py::TestTBXfile::test_administrative_status_and_translation_needed PASSED [ 84%] 372s tests/translate/storage/test_tiki.py::TestTikiUnit::test_locations PASSED [ 84%] 372s tests/translate/storage/test_tiki.py::TestTikiUnit::test_to_unicode PASSED [ 84%] 372s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_simple PASSED [ 84%] 372s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_encode PASSED [ 84%] 372s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_locations PASSED [ 84%] 372s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_ignore_extras PASSED [ 84%] 372s tests/translate/storage/test_tmx.py::TestTMXUnit::test_isfuzzy PASSED [ 84%] 372s tests/translate/storage/test_tmx.py::TestTMXUnit::test_create PASSED [ 84%] 372s tests/translate/storage/test_tmx.py::TestTMXUnit::test_eq PASSED [ 84%] 372s tests/translate/storage/test_tmx.py::TestTMXUnit::test_target PASSED [ 84%] 372s tests/translate/storage/test_tmx.py::TestTMXUnit::test_escapes PASSED [ 84%] 372s tests/translate/storage/test_tmx.py::TestTMXUnit::test_difficult_escapes PASSED [ 84%] 372s tests/translate/storage/test_tmx.py::TestTMXUnit::test_note_sanity PASSED [ 84%] 372s tests/translate/storage/test_tmx.py::TestTMXUnit::test_line_number_default PASSED [ 84%] 372s tests/translate/storage/test_tmx.py::TestTMXUnit::test_rich_get PASSED [ 84%] 372s tests/translate/storage/test_tmx.py::TestTMXUnit::test_rich_set PASSED [ 84%] 372s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_isfuzzy PASSED [ 84%] 372s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_create PASSED [ 84%] 372s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_eq PASSED [ 84%] 372s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_target PASSED [ 84%] 372s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_escapes PASSED [ 84%] 372s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_difficult_escapes PASSED [ 84%] 372s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_note_sanity PASSED [ 84%] 372s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_line_number_default PASSED [ 84%] 372s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_rich_get PASSED [ 84%] 372s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_rich_set PASSED [ 84%] 372s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_context PASSED [ 84%] 372s tests/translate/storage/test_tmx.py::TestTMXfile::test_create_blank PASSED [ 84%] 372s tests/translate/storage/test_tmx.py::TestTMXfile::test_add PASSED [ 84%] 372s tests/translate/storage/test_tmx.py::TestTMXfile::test_remove PASSED [ 84%] 372s tests/translate/storage/test_tmx.py::TestTMXfile::test_find PASSED [ 84%] 372s tests/translate/storage/test_tmx.py::TestTMXfile::test_parse PASSED [ 84%] 372s tests/translate/storage/test_tmx.py::TestTMXfile::test_files PASSED [ 84%] 372s tests/translate/storage/test_tmx.py::TestTMXfile::test_save PASSED [ 84%] 372s tests/translate/storage/test_tmx.py::TestTMXfile::test_markup PASSED [ 84%] 372s tests/translate/storage/test_tmx.py::TestTMXfile::test_nonascii PASSED [ 84%] 372s tests/translate/storage/test_tmx.py::TestTMXfile::test_extensions PASSED [ 84%] 372s tests/translate/storage/test_tmx.py::TestTMXfile::test_mimetypes PASSED [ 84%] 372s tests/translate/storage/test_tmx.py::TestTMXfile::test_translate PASSED [ 85%] 372s tests/translate/storage/test_tmx.py::TestTMXfile::test_addtranslation PASSED [ 85%] 372s tests/translate/storage/test_tmx.py::TestTMXfile::test_withcomment PASSED [ 85%] 372s tests/translate/storage/test_tmx.py::TestTMXfile::test_withnewlines PASSED [ 85%] 372s tests/translate/storage/test_tmx.py::TestTMXfile::test_xmlentities PASSED [ 85%] 372s tests/translate/storage/test_tmx.py::TestTMXfile::test_controls_cleaning PASSED [ 85%] 372s tests/translate/storage/test_tmx.py::TestTMXfile::test_context PASSED [ 85%] 372s tests/translate/storage/test_tmx.py::TestTMXfile::test_note_order PASSED [ 85%] 372s tests/translate/storage/test_tmx.py::TestTMXfile::test_prop_and_note_order PASSED [ 85%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_isfuzzy PASSED [ 85%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_create PASSED [ 85%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_eq PASSED [ 85%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_escapes PASSED [ 85%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_difficult_escapes PASSED [ 85%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_note_sanity PASSED [ 85%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_line_number_default PASSED [ 85%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_target PASSED [ 85%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_rich_get PASSED [ 85%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_rich_set PASSED [ 85%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_getlocations PASSED [ 85%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_create_blank PASSED [ 85%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_add PASSED [ 85%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_find PASSED [ 85%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_parse PASSED [ 85%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_files PASSED [ 85%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_save PASSED [ 85%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_extensions PASSED [ 85%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_mimetypes PASSED [ 85%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_translate PASSED [ 85%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_markup PASSED [ 85%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_nonascii PASSED [ 85%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_serialize PASSED [ 85%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_empty PASSED [ 85%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_edit PASSED [ 85%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_edit_unicode PASSED [ 85%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_parse_unicode_list PASSED [ 85%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_ordering PASSED [ 85%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_nested PASSED [ 85%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_multiline PASSED [ 85%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_boolean PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_integer PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_no_quote_strings PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_double_quote_strings PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_single_quote_strings PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_escaped_double_quotes PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_newlines PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_list PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_inline_table PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_key_nesting PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_add_to_empty PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_dict_in_list PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_remove PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_special PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_extraction_simple PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_extraction_multiline PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_no_comment_backwards_compat PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_simple PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_multiline PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_nested PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_with_modification PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_literal_string PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_multiline_basic_string PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_multiline_literal_string PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_create_blank PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_add PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_remove PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_find PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_parse PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_files PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_save PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_extensions PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_mimetypes PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_translate PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_markup PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_nonascii PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_simple_plural PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_plural_with_other_keys PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_full_plural_forms PASSED [ 86%] 372s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_roundtrip_plural PASSED [ 87%] 372s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_mixed_content PASSED [ 87%] 372s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_letsencrypt_style PASSED [ 87%] 372s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_comment_preservation_goi18n PASSED [ 87%] 372s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_comment_preservation_goi18n_plural PASSED [ 87%] 372s tests/translate/storage/test_trados.py::test_unescape PASSED [ 87%] 372s tests/translate/storage/test_trados.py::test_escape PASSED [ 87%] 372s tests/translate/storage/test_ts.py::TestTS::test_construct PASSED [ 87%] 372s tests/translate/storage/test_ts2.py::TestTSUnit::test_isfuzzy PASSED [ 87%] 372s tests/translate/storage/test_ts2.py::TestTSUnit::test_create PASSED [ 87%] 372s tests/translate/storage/test_ts2.py::TestTSUnit::test_eq PASSED [ 87%] 372s tests/translate/storage/test_ts2.py::TestTSUnit::test_target PASSED [ 87%] 372s tests/translate/storage/test_ts2.py::TestTSUnit::test_escapes PASSED [ 87%] 372s tests/translate/storage/test_ts2.py::TestTSUnit::test_difficult_escapes PASSED [ 87%] 372s tests/translate/storage/test_ts2.py::TestTSUnit::test_note_sanity PASSED [ 87%] 372s tests/translate/storage/test_ts2.py::TestTSUnit::test_line_number_default PASSED [ 87%] 372s tests/translate/storage/test_ts2.py::TestTSUnit::test_rich_get PASSED [ 87%] 372s tests/translate/storage/test_ts2.py::TestTSUnit::test_rich_set PASSED [ 87%] 372s tests/translate/storage/test_ts2.py::TestTSfile::test_create_blank PASSED [ 87%] 372s tests/translate/storage/test_ts2.py::TestTSfile::test_add PASSED [ 87%] 372s tests/translate/storage/test_ts2.py::TestTSfile::test_remove PASSED [ 87%] 372s tests/translate/storage/test_ts2.py::TestTSfile::test_find PASSED [ 87%] 372s tests/translate/storage/test_ts2.py::TestTSfile::test_translate PASSED [ 87%] 372s tests/translate/storage/test_ts2.py::TestTSfile::test_parse PASSED [ 87%] 372s tests/translate/storage/test_ts2.py::TestTSfile::test_files PASSED [ 87%] 372s tests/translate/storage/test_ts2.py::TestTSfile::test_save PASSED [ 87%] 372s tests/translate/storage/test_ts2.py::TestTSfile::test_markup PASSED [ 87%] 372s tests/translate/storage/test_ts2.py::TestTSfile::test_nonascii PASSED [ 87%] 372s tests/translate/storage/test_ts2.py::TestTSfile::test_extensions PASSED [ 87%] 372s tests/translate/storage/test_ts2.py::TestTSfile::test_mimetypes PASSED [ 87%] 372s tests/translate/storage/test_ts2.py::TestTSfile::test_basic PASSED [ 87%] 372s tests/translate/storage/test_ts2.py::TestTSfile::test_source PASSED [ 87%] 372s tests/translate/storage/test_ts2.py::TestTSfile::test_target PASSED [ 87%] 372s tests/translate/storage/test_ts2.py::TestTSfile::test_plurals PASSED [ 87%] 372s tests/translate/storage/test_ts2.py::TestTSfile::test_nplural PASSED [ 87%] 372s tests/translate/storage/test_ts2.py::TestTSfile::test_language PASSED [ 87%] 372s tests/translate/storage/test_ts2.py::TestTSfile::test_edit PASSED [ 87%] 372s tests/translate/storage/test_ts2.py::TestTSfile::test_obsolete PASSED [ 87%] 372s tests/translate/storage/test_ts2.py::TestTSfile::test_locations PASSED [ 87%] 372s tests/translate/storage/test_ts2.py::TestTSfile::test_merge_with_fuzzies PASSED [ 88%] 372s tests/translate/storage/test_ts2.py::TestTSfile::test_getid PASSED [ 88%] 372s tests/translate/storage/test_ts2.py::TestTSfile::test_backnforth PASSED [ 88%] 372s tests/translate/storage/test_ts2.py::TestTSfile::test_context PASSED [ 88%] 372s tests/translate/storage/test_ts2.py::TestTSfile::test_roundtrip_context PASSED [ 88%] 372s tests/translate/storage/test_ts2.py::TestTSfile::test_edit_missing_translation PASSED [ 88%] 372s tests/translate/storage/test_ts2.py::TestTSfile::test_missing_source PASSED [ 88%] 372s tests/translate/storage/test_txt.py::TestTxtUnit::test_isfuzzy PASSED [ 88%] 372s tests/translate/storage/test_txt.py::TestTxtUnit::test_create PASSED [ 88%] 372s tests/translate/storage/test_txt.py::TestTxtUnit::test_eq PASSED [ 88%] 372s tests/translate/storage/test_txt.py::TestTxtUnit::test_escapes PASSED [ 88%] 372s tests/translate/storage/test_txt.py::TestTxtUnit::test_difficult_escapes PASSED [ 88%] 372s tests/translate/storage/test_txt.py::TestTxtUnit::test_note_sanity PASSED [ 88%] 372s tests/translate/storage/test_txt.py::TestTxtUnit::test_line_number_default PASSED [ 88%] 372s tests/translate/storage/test_txt.py::TestTxtUnit::test_target PASSED [ 88%] 372s tests/translate/storage/test_txt.py::TestTxtUnit::test_rich_get PASSED [ 88%] 372s tests/translate/storage/test_txt.py::TestTxtUnit::test_rich_set PASSED [ 88%] 372s tests/translate/storage/test_txt.py::TestTxtFile::test_create_blank PASSED [ 88%] 372s tests/translate/storage/test_txt.py::TestTxtFile::test_add PASSED [ 88%] 372s tests/translate/storage/test_txt.py::TestTxtFile::test_remove PASSED [ 88%] 372s tests/translate/storage/test_txt.py::TestTxtFile::test_find PASSED [ 88%] 372s tests/translate/storage/test_txt.py::TestTxtFile::test_parse PASSED [ 88%] 372s tests/translate/storage/test_txt.py::TestTxtFile::test_files PASSED [ 88%] 372s tests/translate/storage/test_txt.py::TestTxtFile::test_save PASSED [ 88%] 372s tests/translate/storage/test_txt.py::TestTxtFile::test_extensions PASSED [ 88%] 372s tests/translate/storage/test_txt.py::TestTxtFile::test_mimetypes PASSED [ 88%] 372s tests/translate/storage/test_txt.py::TestTxtFile::test_translate PASSED [ 88%] 372s tests/translate/storage/test_txt.py::TestTxtFile::test_markup PASSED [ 88%] 372s tests/translate/storage/test_txt.py::TestTxtFile::test_nonascii PASSED [ 88%] 372s tests/translate/storage/test_txt.py::TestTxtFile::test_simpleblock PASSED [ 88%] 372s tests/translate/storage/test_txt.py::TestTxtFile::test_multipleblocks PASSED [ 88%] 372s tests/translate/storage/test_txt.py::TestTxtFile::test_no_segmentation PASSED [ 88%] 372s tests/translate/storage/test_utx.py::TestUtxUnit::test_isfuzzy PASSED [ 88%] 372s tests/translate/storage/test_utx.py::TestUtxUnit::test_create PASSED [ 88%] 372s tests/translate/storage/test_utx.py::TestUtxUnit::test_eq PASSED [ 88%] 372s tests/translate/storage/test_utx.py::TestUtxUnit::test_target PASSED [ 88%] 372s tests/translate/storage/test_utx.py::TestUtxUnit::test_escapes PASSED [ 88%] 372s tests/translate/storage/test_utx.py::TestUtxUnit::test_difficult_escapes PASSED [ 88%] 372s tests/translate/storage/test_utx.py::TestUtxUnit::test_note_sanity PASSED [ 88%] 372s tests/translate/storage/test_utx.py::TestUtxUnit::test_line_number_default PASSED [ 89%] 372s tests/translate/storage/test_utx.py::TestUtxUnit::test_rich_get PASSED [ 89%] 372s tests/translate/storage/test_utx.py::TestUtxUnit::test_rich_set PASSED [ 89%] 372s tests/translate/storage/test_utx.py::TestUtxFile::test_create_blank PASSED [ 89%] 372s tests/translate/storage/test_utx.py::TestUtxFile::test_add PASSED [ 89%] 372s tests/translate/storage/test_utx.py::TestUtxFile::test_remove PASSED [ 89%] 372s tests/translate/storage/test_utx.py::TestUtxFile::test_find PASSED [ 89%] 372s tests/translate/storage/test_utx.py::TestUtxFile::test_translate PASSED [ 89%] 372s tests/translate/storage/test_utx.py::TestUtxFile::test_parse PASSED [ 89%] 372s tests/translate/storage/test_utx.py::TestUtxFile::test_files PASSED [ 89%] 372s tests/translate/storage/test_utx.py::TestUtxFile::test_save PASSED [ 89%] 372s tests/translate/storage/test_utx.py::TestUtxFile::test_markup PASSED [ 89%] 372s tests/translate/storage/test_utx.py::TestUtxFile::test_nonascii PASSED [ 89%] 372s tests/translate/storage/test_utx.py::TestUtxFile::test_extensions PASSED [ 89%] 372s tests/translate/storage/test_utx.py::TestUtxFile::test_mimetypes PASSED [ 89%] 372s tests/translate/storage/test_wordfast.py::TestWFTime::test_timestring PASSED [ 89%] 372s tests/translate/storage/test_wordfast.py::TestWFTime::test_time PASSED [ 89%] 372s tests/translate/storage/test_wordfast.py::TestWFUnit::test_isfuzzy PASSED [ 89%] 372s tests/translate/storage/test_wordfast.py::TestWFUnit::test_create PASSED [ 89%] 372s tests/translate/storage/test_wordfast.py::TestWFUnit::test_eq PASSED [ 89%] 372s tests/translate/storage/test_wordfast.py::TestWFUnit::test_target PASSED [ 89%] 372s tests/translate/storage/test_wordfast.py::TestWFUnit::test_escapes PASSED [ 89%] 372s tests/translate/storage/test_wordfast.py::TestWFUnit::test_note_sanity PASSED [ 89%] 372s tests/translate/storage/test_wordfast.py::TestWFUnit::test_line_number_default PASSED [ 89%] 372s tests/translate/storage/test_wordfast.py::TestWFUnit::test_rich_get PASSED [ 89%] 372s tests/translate/storage/test_wordfast.py::TestWFUnit::test_rich_set PASSED [ 89%] 372s tests/translate/storage/test_wordfast.py::TestWFUnit::test_difficult_escapes PASSED [ 89%] 372s tests/translate/storage/test_wordfast.py::TestWFUnit::test_wordfast_escaping PASSED [ 89%] 372s tests/translate/storage/test_wordfast.py::TestWFUnit::test_newlines PASSED [ 89%] 372s tests/translate/storage/test_wordfast.py::TestWFUnit::test_language_setting PASSED [ 89%] 372s tests/translate/storage/test_wordfast.py::TestWFUnit::test_istranslated PASSED [ 89%] 372s tests/translate/storage/test_wordfast.py::TestWFFile::test_create_blank PASSED [ 89%] 372s tests/translate/storage/test_wordfast.py::TestWFFile::test_add PASSED [ 89%] 372s tests/translate/storage/test_wordfast.py::TestWFFile::test_remove PASSED [ 89%] 372s tests/translate/storage/test_wordfast.py::TestWFFile::test_find PASSED [ 89%] 372s tests/translate/storage/test_wordfast.py::TestWFFile::test_translate PASSED [ 89%] 372s tests/translate/storage/test_wordfast.py::TestWFFile::test_parse PASSED [ 89%] 372s tests/translate/storage/test_wordfast.py::TestWFFile::test_files PASSED [ 89%] 372s tests/translate/storage/test_wordfast.py::TestWFFile::test_save PASSED [ 89%] 372s tests/translate/storage/test_wordfast.py::TestWFFile::test_markup PASSED [ 90%] 372s tests/translate/storage/test_wordfast.py::TestWFFile::test_nonascii PASSED [ 90%] 372s tests/translate/storage/test_wordfast.py::TestWFFile::test_extensions PASSED [ 90%] 372s tests/translate/storage/test_wordfast.py::TestWFFile::test_mimetypes PASSED [ 90%] 372s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_isfuzzy PASSED [ 90%] 372s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_create PASSED [ 90%] 372s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_eq PASSED [ 90%] 372s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_target PASSED [ 90%] 372s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_escapes PASSED [ 90%] 372s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_difficult_escapes PASSED [ 90%] 372s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_note_sanity PASSED [ 90%] 372s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_line_number_default PASSED [ 90%] 372s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_rich_get PASSED [ 90%] 372s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_rich_set PASSED [ 90%] 372s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_markreview PASSED [ 90%] 372s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_errors PASSED [ 90%] 372s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_accepted_control_chars PASSED [ 90%] 372s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_unaccepted_control_chars PASSED [ 90%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_create_blank PASSED [ 90%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add PASSED [ 90%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_remove PASSED [ 90%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_find PASSED [ 90%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_translate PASSED [ 90%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_parse PASSED [ 90%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_files PASSED [ 90%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_save PASSED [ 90%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_markup PASSED [ 90%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_nonascii PASSED [ 90%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_extensions PASSED [ 90%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_mimetypes PASSED [ 90%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_basic PASSED [ 90%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_namespace PASSED [ 90%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_rich_source PASSED [ 90%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_rich_target PASSED [ 90%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_source PASSED [ 90%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_target PASSED [ 90%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_sourcelanguage PASSED [ 90%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_targetlanguage PASSED [ 90%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_targetlanguage_multi PASSED [ 90%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_notes PASSED [ 91%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_alttrans PASSED [ 91%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_fuzzy PASSED [ 91%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_xml_space PASSED [ 91%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_parsing PASSED [ 91%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_marktranslatable PASSED [ 91%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_entities PASSED [ 91%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_multiple_filenodes PASSED [ 91%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_groups_when_adding_units PASSED [ 91%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_multiple_files_and_groups PASSED [ 91%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_unit_to_existing_group PASSED [ 91%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_unit_to_different_file PASSED [ 91%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_mixed_groups_and_body PASSED [ 91%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_addunit_with_new_false PASSED [ 91%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_namespace_preservation_across_versions PASSED [ 91%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_units_between_different_files PASSED [ 91%] 372s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_group_preservation_across_different_namespaces PASSED [ 91%] 373s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_cross_namespace_group_and_file_preservation PASSED [ 91%] 373s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_indent PASSED [ 91%] 373s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_target PASSED [ 91%] 373s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve PASSED [ 91%] 373s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_closing_tags PASSED [ 91%] 373s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_context_groups PASSED [ 91%] 373s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_getlocations PASSED [ 91%] 373s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_addlocation PASSED [ 91%] 374s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_huge PASSED [ 91%] 374s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_add PASSED [ 91%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_isfuzzy PASSED [ 91%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_create PASSED [ 91%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_eq PASSED [ 91%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_target PASSED [ 91%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_escapes PASSED [ 91%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_difficult_escapes PASSED [ 91%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_note_sanity PASSED [ 91%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_line_number_default PASSED [ 91%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_rich_get PASSED [ 91%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_rich_set PASSED [ 91%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_notes PASSED [ 91%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_id_management PASSED [ 91%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_marktranslatable PASSED [ 92%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_create_blank PASSED [ 92%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_add PASSED [ 92%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_remove PASSED [ 92%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_find PASSED [ 92%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_translate PASSED [ 92%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_parse PASSED [ 92%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_files PASSED [ 92%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_save PASSED [ 92%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_markup PASSED [ 92%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_nonascii PASSED [ 92%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_extensions PASSED [ 92%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_mimetypes PASSED [ 92%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_basic PASSED [ 92%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_source_target PASSED [ 92%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_language_attributes PASSED [ 92%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_namespace PASSED [ 92%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_unit_structure PASSED [ 92%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_multiple_units PASSED [ 92%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_parse_xliff2 PASSED [ 92%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_parse_translate_attribute PASSED [ 92%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_multiple_segments_per_unit PASSED [ 92%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_mixed_single_and_multiple_segments PASSED [ 92%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_segments_without_ids PASSED [ 92%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_escaped_inline_tags PASSED [ 92%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_simple_source_target_pairs PASSED [ 92%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_malformed_xml_declaration PASSED [ 92%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_variable_placeholders PASSED [ 92%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_add_unit PASSED [ 92%] 374s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_states PASSED [ 92%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_isfuzzy PASSED [ 92%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_create PASSED [ 92%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_eq PASSED [ 92%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_escapes PASSED [ 92%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_difficult_escapes PASSED [ 92%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_note_sanity PASSED [ 92%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_line_number_default PASSED [ 92%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_target PASSED [ 92%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_rich_get PASSED [ 92%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_rich_set PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_getlocations PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_create_blank PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_add PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_find PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_parse PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_files PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_save PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_extensions PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_mimetypes PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_translate PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_markup PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_nonascii PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_serialize PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_empty PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_edit PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_edit_unicode PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_parse_unicode_list PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_ordering PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_initial_comments PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_string_key PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_nested PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_multiline PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_boolean PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_integer PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_no_quote_strings PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_double_quote_strings PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_single_quote_strings PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_avoid_escaping_double_quote_strings PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_avoid_escaping_single_quote_strings PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_escaped_double_quotes PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_newlines PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_abbreviated_list PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_abbreviated_dictionary PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_key_nesting PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_add_to_mepty PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_empty_key PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_dict_in_list PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_dump_args PASSED [ 93%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_anchors PASSED [ 94%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_tagged_scalar PASSED [ 94%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_numeric PASSED [ 94%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_remove PASSED [ 94%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_special PASSED [ 94%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_quotes_roundtrip PASSED [ 94%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_simple PASSED [ 94%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_multiline PASSED [ 94%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_nested PASSED [ 94%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_mixed PASSED [ 94%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_no_comment_backwards_compat PASSED [ 94%] 374s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_multiline_literal_format PASSED [ 94%] 374s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_create_blank PASSED [ 94%] 374s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_remove PASSED [ 94%] 374s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_find PASSED [ 94%] 374s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_parse PASSED [ 94%] 374s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_files PASSED [ 94%] 374s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_save PASSED [ 94%] 374s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_extensions PASSED [ 94%] 374s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_mimetypes PASSED [ 94%] 374s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_translate PASSED [ 94%] 374s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_markup PASSED [ 94%] 374s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_nonascii PASSED [ 94%] 374s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_list PASSED [ 94%] 374s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby PASSED [ 94%] 374s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_wrong PASSED [ 94%] 374s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_invalid_value PASSED [ 94%] 374s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural PASSED [ 94%] 374s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_empty PASSED [ 94%] 374s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_anchors PASSED [ 94%] 374s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_type_change PASSED [ 94%] 374s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_add PASSED [ 94%] 374s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_blank PASSED [ 94%] 374s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_partial PASSED [ 94%] 374s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_pt_br PASSED [ 94%] 374s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_bug_ruby_remove_zero_few_and_mix_others PASSED [ 94%] 374s tests/translate/storage/xml_extract/test_misc.py::test_reduce_tree PASSED [ 94%] 374s tests/translate/storage/xml_extract/test_misc.py::test_compose_mappings PASSED [ 94%] 374s tests/translate/storage/xml_extract/test_misc.py::test_parse_tag PASSED [ 94%] 374s tests/translate/storage/xml_extract/test_unit_tree.py::test__split_xpath_component PASSED [ 95%] 374s tests/translate/storage/xml_extract/test_unit_tree.py::test__split_xpath PASSED [ 95%] 374s tests/translate/storage/xml_extract/test_unit_tree.py::test__add_unit_to_tree PASSED [ 95%] 374s tests/translate/storage/xml_extract/test_xpath_breadcrumb.py::test_breadcrumb PASSED [ 95%] 374s tests/translate/tools/test_help.py::test_help[build_tmdb] PASSED [ 95%] 374s tests/translate/tools/test_help.py::test_help[phppo2pypo] PASSED [ 95%] 374s tests/translate/tools/test_help.py::test_help[poclean] PASSED [ 95%] 374s tests/translate/tools/test_help.py::test_help[pocompile] PASSED [ 95%] 374s tests/translate/tools/test_help.py::test_help[poconflicts] PASSED [ 95%] 374s tests/translate/tools/test_help.py::test_help[pocount] PASSED [ 95%] 375s tests/translate/tools/test_help.py::test_help[podebug] PASSED [ 95%] 375s tests/translate/tools/test_help.py::test_help[pogrep] PASSED [ 95%] 375s tests/translate/tools/test_help.py::test_help[pomerge] PASSED [ 95%] 375s tests/translate/tools/test_help.py::test_help[porestructure] PASSED [ 95%] 375s tests/translate/tools/test_help.py::test_help[posegment] PASSED [ 95%] 375s tests/translate/tools/test_help.py::test_help[poswap] PASSED [ 95%] 375s tests/translate/tools/test_help.py::test_help[poterminology] PASSED [ 95%] 375s tests/translate/tools/test_help.py::test_help[pretranslate] PASSED [ 95%] 375s tests/translate/tools/test_help.py::test_help[pydiff] PASSED [ 95%] 375s tests/translate/tools/test_help.py::test_help[pypo2phppo] PASSED [ 95%] 375s tests/translate/tools/test_junitmsgfmt.py::test_output[failure] PASSED [ 95%] 375s tests/translate/tools/test_junitmsgfmt.py::test_output[untranslated] PASSED [ 95%] 375s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPo::test_single_po PASSED [ 95%] 375s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPo::test_plural_po PASSED [ 95%] 375s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_single_po PASSED [ 95%] 375s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_plural_po PASSED [ 95%] 375s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_help PASSED [ 95%] 375s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_zero PASSED [ 95%] 375s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_one PASSED [ 95%] 375s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_two PASSED [ 95%] 375s tests/translate/tools/test_pocount.py::TestCount::test_punctuation_divides_words PASSED [ 95%] 375s tests/translate/tools/test_pocount.py::TestCount::test_xml_tags PASSED [ 95%] 375s tests/translate/tools/test_pocount.py::TestCount::test_newlines PASSED [ 95%] 375s tests/translate/tools/test_pocount.py::TestCount::test_variables_are_words PASSED [ 95%] 375s tests/translate/tools/test_pocount.py::TestCount::test_plurals PASSED [ 95%] 375s tests/translate/tools/test_pocount.py::TestCount::test_plurals_kde XFAIL [ 95%] 375s tests/translate/tools/test_pocount.py::TestCount::test_msgid_blank PASSED [ 95%] 375s tests/translate/tools/test_pocount.py::TestPOCount::test_translated PASSED [ 95%] 375s tests/translate/tools/test_pocount.py::TestPOCount::test_fuzzy PASSED [ 95%] 375s tests/translate/tools/test_pocount.py::TestPOCount::test_untranslated PASSED [ 96%] 375s tests/translate/tools/test_pocount.py::TestPOCount::test_total PASSED [ 96%] 375s tests/translate/tools/test_pocount.py::TestPOCount::test_translatedsourcewords PASSED [ 96%] 375s tests/translate/tools/test_pocount.py::TestPOCount::test_fuzzysourcewords PASSED [ 96%] 375s tests/translate/tools/test_pocount.py::TestPOCount::test_untranslatedsourcewords PASSED [ 96%] 375s tests/translate/tools/test_pocount.py::TestPOCount::test_totalsourcewords PASSED [ 96%] 375s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-csv] PASSED [ 96%] 375s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-full] PASSED [ 96%] 375s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-short-strings] PASSED [ 96%] 375s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-short-words] PASSED [ 96%] 375s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-csv] PASSED [ 96%] 375s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-full] PASSED [ 96%] 375s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-short-strings] PASSED [ 96%] 375s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-short-words] PASSED [ 96%] 375s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-csv] PASSED [ 96%] 375s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-full] PASSED [ 96%] 375s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-short-strings] PASSED [ 96%] 375s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-short-words] PASSED [ 96%] 375s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-csv] PASSED [ 96%] 375s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-full] PASSED [ 96%] 375s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-short-strings] PASSED [ 96%] 375s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-short-words] PASSED [ 96%] 375s tests/translate/tools/test_pocount.py::test_cases[po-file] PASSED [ 96%] 375s tests/translate/tools/test_pocount.py::test_cases[po-file-fuzzy] PASSED [ 96%] 375s tests/translate/tools/test_pocount.py::test_cases[po-file-csv] PASSED [ 96%] 375s tests/translate/tools/test_pocount.py::test_cases[xliff-states-yes] PASSED [ 96%] 375s tests/translate/tools/test_pocount.py::test_cases[xliff-states-no] PASSED [ 96%] 376s tests/translate/tools/test_pocount.py::test_error_cases[mutually-exclusive] PASSED [ 96%] 376s tests/translate/tools/test_pocount.py::test_error_cases[missing-file] PASSED [ 96%] 376s tests/translate/tools/test_pocount.py::test_error_cases[no-args] PASSED [ 96%] 376s tests/translate/tools/test_pocount.py::test_csv_line_terminator PASSED [ 96%] 376s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_fuzzy_with_target PASSED [ 96%] 376s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_fuzzy_without_target PASSED [ 96%] 376s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_translated_not_fuzzy PASSED [ 96%] 376s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_untranslated_empty_target PASSED [ 96%] 376s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_categorization_mutually_exclusive PASSED [ 96%] 376s tests/translate/tools/test_pocount.py::TestPOCountLineEndings::test_unusual_line_endings PASSED [ 96%] 376s tests/translate/tools/test_podebug.py::TestPODebug::test_ignore_gtk PASSED [ 96%] 376s tests/translate/tools/test_podebug.py::TestPODebug::test_keep_target PASSED [ 96%] 376s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank PASSED [ 97%] 376s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank_clears_fuzzy PASSED [ 97%] 376s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank_with_plurals PASSED [ 97%] 376s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_en PASSED [ 97%] 376s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_xxx PASSED [ 97%] 376s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_bracket PASSED [ 97%] 376s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode PASSED [ 97%] 376s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_at_placeholders PASSED [ 97%] 376s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_single_brace_placeholders PASSED [ 97%] 376s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_double_brace_placeholders PASSED [ 97%] 376s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_html PASSED [ 97%] 376s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_multiple_styles_of_placeholder PASSED [ 97%] 376s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped PASSED [ 97%] 376s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_at_placeholders PASSED [ 97%] 376s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_single_brace_placeholders PASSED [ 97%] 376s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_double_brace_placeholders PASSED [ 97%] 376s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_html PASSED [ 97%] 376s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_multiple_styles_of_placeholder PASSED [ 97%] 376s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified PASSED [ 97%] 376s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_at_placeholders PASSED [ 97%] 376s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_single_brace_placeholders PASSED [ 97%] 376s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_double_brace_placeholders PASSED [ 97%] 376s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_html PASSED [ 97%] 376s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_multiple_styles_of_placeholder PASSED [ 97%] 376s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_chef PASSED [ 97%] 376s tests/translate/tools/test_podebug.py::TestPODebug::test_po_variables PASSED [ 97%] 376s tests/translate/tools/test_podebug.py::TestPODebug::test_xliff_rewrite PASSED [ 97%] 376s tests/translate/tools/test_podebug.py::TestPODebug::test_hash PASSED [ 97%] 376s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_msgid PASSED [ 97%] 376s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_msgstr PASSED [ 97%] 376s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_locations PASSED [ 97%] 376s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_comments PASSED [ 97%] 376s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_locations_with_comment_enabled PASSED [ 97%] 376s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_message_searchstring PASSED [ 97%] 376s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_message_regex_searchstring PASSED [ 97%] 376s tests/translate/tools/test_pogrep.py::TestPOGrep::test_keep_translations PASSED [ 97%] 376s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_normalise PASSED [ 97%] 376s tests/translate/tools/test_pogrep.py::TestXLiffGrep::test_simplegrep PASSED [ 97%] 376s tests/translate/tools/test_pomerge.py::test_str2bool PASSED [ 97%] 376s tests/translate/tools/test_pomerge.py::TestPOMerge::test_mergesore_bad_data PASSED [ 98%] 376s tests/translate/tools/test_pomerge.py::TestPOMerge::test_simplemerge PASSED [ 98%] 376s tests/translate/tools/test_pomerge.py::TestPOMerge::test_simplemerge_no_locations PASSED [ 98%] 376s tests/translate/tools/test_pomerge.py::TestPOMerge::test_replacemerge PASSED [ 98%] 376s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_blanks PASSED [ 98%] 376s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_fuzzies PASSED [ 98%] 376s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_locations PASSED [ 98%] 376s tests/translate/tools/test_pomerge.py::TestPOMerge::test_unit_missing_in_template_with_locations PASSED [ 98%] 376s tests/translate/tools/test_pomerge.py::TestPOMerge::test_unit_missing_in_template_no_locations PASSED [ 98%] 376s tests/translate/tools/test_pomerge.py::TestPOMerge::test_reflowed_source_comments PASSED [ 98%] 376s tests/translate/tools/test_pomerge.py::TestPOMerge::test_comments_with_blank_lines PASSED [ 98%] 376s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merge_dont_delete_unassociated_comments PASSED [ 98%] 376s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_trailing_newlines PASSED [ 98%] 376s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_minor_start_and_end_of_sentence_changes PASSED [ 98%] 376s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_last_entry_in_a_file PASSED [ 98%] 376s tests/translate/tools/test_pomerge.py::TestPOMerge::test_escape_tabs XFAIL [ 98%] 376s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_comments_layout PASSED [ 98%] 376s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merge_dos2unix PASSED [ 98%] 376s tests/translate/tools/test_pomerge.py::TestPOMerge::test_xliff_into_xliff PASSED [ 98%] 376s tests/translate/tools/test_pomerge.py::TestPOMerge::test_po_into_xliff PASSED [ 98%] 376s tests/translate/tools/test_pomerge.py::TestPOMerge::test_xliff_into_po PASSED [ 98%] 376s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_dont_merge_kde_comments_found_in_translation PASSED [ 98%] 376s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_untranslated_with_kde_disambiguation PASSED [ 98%] 376s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_header_entries PASSED [ 98%] 376s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_different_locations PASSED [ 98%] 376s tests/translate/tools/test_posegment.py::TestPOSegment::test_en_ja_simple PASSED [ 98%] 376s tests/translate/tools/test_posegment.py::TestPOSegment::test_en_ja_punctuation PASSED [ 98%] 376s tests/translate/tools/test_posegment.py::TestPOSegment::test_transifex_po PASSED [ 98%] 376s tests/translate/tools/test_posegment.py::TestXLIFFSegment::test_xliff_en_simple PASSED [ 98%] 376s tests/translate/tools/test_posegment.py::TestXLIFFSegment::test_xliff_untranslated PASSED [ 98%] 376s tests/translate/tools/test_posegment.py::TestTMXSegment::test_tmx_en_simple PASSED [ 98%] 376s tests/translate/tools/test_poterminology.py::TestPOTerminology::test_term_extraction PASSED [ 98%] 376s tests/translate/tools/test_poterminology.py::TestPOTerminology::test_unitinfo_stores_minimal_data PASSED [ 98%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_pretranslatepo_blank PASSED [ 98%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_simple PASSED [ 98%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_messages_marked_fuzzy PASSED [ 98%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_plurals_with_fuzzy_matching PASSED [ 98%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgid_change XFAIL [ 98%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_location_change PASSED [ 98%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_location_and_whitespace_change PASSED [ 99%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_accelerator_changes XFAIL [ 99%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_lines_cut_differently XFAIL [ 99%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_automatic_comments_dont_duplicate PASSED [ 99%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_automatic_comments_new_overrides_old PASSED [ 99%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_comments_with_blank_comment_lines PASSED [ 99%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_empty_commentlines PASSED [ 99%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgidcomments PASSED [ 99%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_plurals PASSED [ 99%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_resurrect_obsolete_messages PASSED [ 99%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_comments PASSED [ 99%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_typecomments PASSED [ 99%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_xliff_states PASSED [ 99%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_pretranslatepo_blank PASSED [ 99%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_simple PASSED [ 99%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_messages_marked_fuzzy PASSED [ 99%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_plurals_with_fuzzy_matching PASSED [ 99%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgid_change XFAIL [ 99%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_location_change PASSED [ 99%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_location_and_whitespace_change PASSED [ 99%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_accelerator_changes XFAIL [ 99%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_lines_cut_differently XFAIL [ 99%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_automatic_comments_dont_duplicate PASSED [ 99%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_automatic_comments_new_overrides_old PASSED [ 99%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_comments_with_blank_comment_lines PASSED [ 99%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_empty_commentlines PASSED [ 99%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgidcomments PASSED [ 99%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_plurals PASSED [ 99%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_resurrect_obsolete_messages PASSED [ 99%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_comments PASSED [ 99%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_typecomments PASSED [ 99%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_xliff_states PASSED [ 99%] 376s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_help PASSED [ 99%] 376s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPo::test_single_po PASSED [ 99%] 376s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPo::test_plural_po PASSED [ 99%] 376s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_single_po PASSED [ 99%] 376s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_plural_po PASSED [ 99%] 376s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_help PASSED [ 99%] 376s tests/xliff_conformance/test_xliff_conformance.py::test_open_office_to_xliff PASSED [ 99%] 378s tests/xliff_conformance/test_xliff_conformance.py::test_po_to_xliff PASSED [100%] 378s 378s =============================== warnings summary =============================== 378s ../../../usr/lib/python3/dist-packages/pyparsing/core.py:5637 378s Warning: 'return' in a 'finally' block 378s 378s tests/odf_xliff/test_odf_xliff.py::test_roundtrip 378s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.g1gmkF/autopkgtest_tmp/tests/odf_xliff/test_2.odt'> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_convertandroid 378s Warning: unclosed file <_io.TextIOWrapper name='TestAndroid2POCommand_test_convertandroid/en.po' mode='r' encoding='UTF-8'> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder 378s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder 378s Warning: unclosed file <_io.TextIOWrapper name='TestCSV2POCommand_test_columnorder/test.po' mode='r' encoding='UTF-8'> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_pot 378s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_pot/simple.pot'> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_po 378s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_po 378s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_po/simple.po'> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_remove_duplicates 378s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_remove_duplicates/simple.po'> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_xlf 378s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_xlf/simple.xlf'> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder 378s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder 378s Warning: unclosed file <_io.TextIOWrapper name='TestPO2CSVCommand_test_columnorder/test.csv' mode='r' encoding='UTF-8'> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_context 378s Warning: unclosed file <_io.TextIOWrapper name='TestPO2CSVCommand_test_context/test.csv' mode='r' encoding='UTF-8'> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing 378s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey 378s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey 378s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing 378s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey 378s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_amp_no_accesskey 378s Warning: Could not find accesskey for key.accesskey 378s 378s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified 378s Warning: unclosed file <_io.BufferedWriter name='translated/file1.html'> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified 378s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file 378s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file_and_templates_overwritten 378s Warning: unclosed file <_io.BufferedReader name='translation/file1.po'> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_convert 378s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.g1gmkF/autopkgtest_tmp/tests/translate/convert/test.idml'> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_with_single_po 378s Warning: unclosed file <_io.BufferedReader name='translation.po'> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert 378s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert_with_multiple_units 378s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert 378s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.g1gmkF/autopkgtest_tmp/tests/translate/convert/test.odt'> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_return_array_with_comments 378s Warning: unclosed file <_io.FileIO name='input.oo' mode='rb' closefd=True> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_return_array_with_comments 378s Warning: unclosed file <_io.FileIO name='output.oo' mode='wb' closefd=True> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey 378s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys_missing_accesskey 378s Warning: Could not find accesskey for prop.accesskey 378s 378s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_context 378s Warning: unclosed file <_io.BufferedReader name='test.po'> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_context 378s Warning: unclosed file <_io.TextIOWrapper name='TestPO2TMXCommand_test_context/test.tmx' mode='r' encoding='UTF-8'> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert 378s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert/simple.po'> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf16 378s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_utf16/simple.po'> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 378s Warning: unclosed file <_io.BufferedWriter name='simple.po'> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 378s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 378s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_wrong/simple.po'> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf8 378s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_utf8/simple.po'> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_menuex 378s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_menuex/simple.po'> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_pot 378s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_simple_pot/simple.pot'> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_po 378s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_simple_po/simple.po'> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_remove_duplicates 378s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_remove_duplicates/simple.po'> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_preserve_filename 378s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_preserve_filename/snippet.xlf'> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_pot 378s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_simple_pot/simple.pot'> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_po 378s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_simple_po/simple.po'> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_remove_duplicates 378s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_remove_duplicates/simple.po'> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers 378s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers 378s tests/translate/filters/test_checks.py::test_noaccelerators_only_in_mozilla_checker 378s tests/translate/filters/test_checks.py::test_ensure_accelerators_not_in_target_if_not_in_source 378s Warning: The 'u' type code is deprecated and will be removed in Python 3.16 378s 378s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_save_bundle 378s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_save_bundle 378s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpen75_i0z_test.txt'> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_cross_device_save 378s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_cross_device_save 378s Warning: unclosed file <_io.BufferedReader name='/tmp/tmp3c4t7gb1_crossdevice.txt'> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_replace_project_zip 378s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_replace_project_zip 378s Warning: unclosed file <_io.BufferedReader name='/tmp/tmp0o0ezzly_initial.txt'> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 378s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 378s Warning: unclosed file <_io.BufferedReader name='/tmp/tmplp0ogn5c_load_test.txt'> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 378s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 378s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpyjb34f8f_load_test.txt'> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 378s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 378s Warning: unclosed file <_io.BufferedReader name='/tmp/tmp8j2krrmh_file0.txt'> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 378s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 378s Warning: unclosed file <_io.BufferedReader name='/tmp/tmp5f6i_71a_file1.txt'> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 378s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 378s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpvjq_ri5j_file2.txt'> 378s Enable tracemalloc to get traceback where the object was allocated. 378s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 378s 378s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting 378s Warning: DTD parse error: :1:35:FATAL:PARSER:ERR_ENTITY_NOT_FINISHED: xmlParseEntityDecl: entity test.me not terminated 378s :1:35:FATAL:PARSER:ERR_EXT_SUBSET_NOT_FINISHED: Content error in the external subset 378s 378s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting 378s Warning: DTD file '' does not validate 378s 378s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 378s --------------------------- snapshot report summary ---------------------------- 378s 23 snapshots passed. 378s =========================== short test summary info ============================ 378s SKIPPED [1] tests/translate/storage/test_cpo.py:15: could not import 'translate.storage.cpo': gettext PO library not found 378s SKIPPED [1] tests/translate/storage/test_fluent.py:29: could not import 'translate.storage.fluent': No module named 'fluent' 378s SKIPPED [1] tests/translate/filters/test_checks.py:1429: Spell checking for af is not available 378s XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accelerator_keys_not_in_sentence - Not Implemented 378s XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accelerator_keys_not_in_sentence - Not Implemented 378s XFAIL tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_table - https://github.com/miyuchina/mistletoe/issues/244 378s XFAIL tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_propertyless_template - Need to review if we want this behaviour 378s XFAIL tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_propertyless_template - Need to review if we want this behaviour 378s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_change - Not implemented - review if this is even correct 378s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_accelerator_changes - Not Implemented - needs review 378s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_lines_cut_differently - Not Implemented - review if this is even correct 378s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_change - Not implemented - review if this is even correct 378s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_accelerator_changes - Not Implemented - needs review 378s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_lines_cut_differently - Not Implemented - review if this is even correct 378s XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_no_duplicates - This is invalid YAML document 378s XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_no_duplicates - This is invalid YAML document 378s XFAIL tests/translate/filters/test_checks.py::test_acceleratedvariables - Accelerated variables needs a better implementation 378s XFAIL tests/translate/filters/test_checks.py::test_musttranslatewords - FIXME: All fails() tests are not working 378s XFAIL tests/translate/filters/test_checks.py::test_persian_single_and_double_quote_fail_at_the_same_time - Bug #3408 378s XFAIL tests/translate/filters/test_checks.py::test_bengali_mozilla_inverted_xmltags - Bug #3506 378s XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_general_placeables - Test needs fixing, disabled for now 378s XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_xliff_placeables - Test needs fixing, disabled for now 378s XFAIL tests/translate/storage/test_dtd.py::test_quotefordtd_unimplemented_cases - Not Implemented 378s XFAIL tests/translate/storage/test_dtd.py::test_unquotefromdtd_unimplemented_cases - Not Implemented 378s XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_comment_following - Not Implemented 378s XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting - Not Implemented 378s 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 378s XFAIL tests/translate/storage/test_po.py::TestPOFile::test_kde_plurals - Not Implemented 378s XFAIL tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo 378s XFAIL tests/translate/storage/test_properties.py::TestXWikiFullPage::test_remove - removal not working in full page 378s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_plurals - Not Implemented 378s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo 378s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_typecomment - Not sure if this can not be parsed gracefully 378s XFAIL tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_note_sanity - Not Implemented 378s XFAIL tests/translate/tools/test_pocount.py::TestCount::test_plurals_kde - Support commented out pending removal 378s XFAIL tests/translate/tools/test_pomerge.py::TestPOMerge::test_escape_tabs - Not Implemented 378s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgid_change - Not Implemented 378s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_accelerator_changes - Not Implemented 378s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_lines_cut_differently - Not Implemented 378s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgid_change - Not Implemented 378s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_accelerator_changes - Not Implemented 378s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_lines_cut_differently - Not Implemented 378s ========== 3862 passed, 3 skipped, 39 xfailed, 70 warnings in 20.95s =========== 379s ============================= test session starts ============================== 379s platform linux -- Python 3.13.11, pytest-9.0.2, pluggy-1.6.0 -- /usr/bin/python3.13 379s cachedir: .pytest_cache 379s rootdir: /tmp/autopkgtest.g1gmkF/autopkgtest_tmp 379s plugins: typeguard-4.4.4, syrupy-5.0.0 385s collecting ... collected 3902 items / 2 skipped 385s 385s tests/odf_xliff/test_odf_xliff.py::test_odf2xliff PASSED [ 0%] 385s tests/odf_xliff/test_odf_xliff.py::test_roundtrip PASSED [ 0%] 385s tests/odf_xliff/test_odf_xliff.py::test_odf2xliff2_inline PASSED [ 0%] 385s tests/translate/convert/test_accesskey.py::test_get_label_and_accesskey PASSED [ 0%] 385s tests/translate/convert/test_accesskey.py::test_extract_bad_accesskeys PASSED [ 0%] 385s tests/translate/convert/test_accesskey.py::test_ignore_entities PASSED [ 0%] 385s tests/translate/convert/test_accesskey.py::test_alternate_accesskey_marker PASSED [ 0%] 385s tests/translate/convert/test_accesskey.py::test_unicode PASSED [ 0%] 385s tests/translate/convert/test_accesskey.py::test_numeric PASSED [ 0%] 385s tests/translate/convert/test_accesskey.py::test_empty_string PASSED [ 0%] 385s tests/translate/convert/test_accesskey.py::test_end_of_string PASSED [ 0%] 385s tests/translate/convert/test_accesskey.py::test_combine_label_accesskey PASSED [ 0%] 385s tests/translate/convert/test_accesskey.py::test_combine_label_accesskey_different_capitals PASSED [ 0%] 385s tests/translate/convert/test_accesskey.py::test_uncombinable PASSED [ 0%] 385s tests/translate/convert/test_accesskey.py::test_accesskey_already_in_text PASSED [ 0%] 385s tests/translate/convert/test_android2po.py::TestAndroid2PO::test_no_template_units PASSED [ 0%] 385s tests/translate/convert/test_android2po.py::TestAndroid2PO::test_template_units PASSED [ 0%] 385s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_no_template_units PASSED [ 0%] 385s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_template_units PASSED [ 0%] 385s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_help PASSED [ 0%] 385s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_convertandroid PASSED [ 0%] 385s tests/translate/convert/test_convert.py::TestConvertCommand::test_help PASSED [ 0%] 385s tests/translate/convert/test_csv2po.py::test_replacestrings PASSED [ 0%] 385s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_simpleentity PASSED [ 0%] 385s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_simpleentity_with_template PASSED [ 0%] 385s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_newlines PASSED [ 0%] 385s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_tabs PASSED [ 0%] 385s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_quotes PASSED [ 0%] 385s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_empties PASSED [ 0%] 385s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_kdecomment PASSED [ 0%] 385s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_escaped_newlines PASSED [ 0%] 385s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_line_numbers_in_errors PASSED [ 0%] 385s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_simpleentity PASSED [ 0%] 385s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_simpleentity_with_template PASSED [ 0%] 385s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_newlines PASSED [ 0%] 385s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_tabs PASSED [ 0%] 385s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_quotes PASSED [ 0%] 385s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_empties PASSED [ 0%] 385s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_kdecomment PASSED [ 0%] 385s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_escaped_newlines PASSED [ 1%] 385s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_line_numbers_in_errors PASSED [ 1%] 385s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_help PASSED [ 1%] 385s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder PASSED [ 1%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_simpleentity PASSED [ 1%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_convertdtd PASSED [ 1%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_apos PASSED [ 1%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_quotes PASSED [ 1%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_emptyentity PASSED [ 1%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_two_empty_entities PASSED [ 1%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_emptyentity_translated PASSED [ 1%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_localisaton_note_simple PASSED [ 1%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_localisation_note_merge PASSED [ 1%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_simple PASSED [ 1%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_label PASSED [ 1%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_onlyentity PASSED [ 1%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_commentedout PASSED [ 1%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_spaces_at_start_of_dtd_lines PASSED [ 1%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accesskeys_folding PASSED [ 1%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accesskeys_mismatch PASSED [ 1%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_carriage_return_in_multiline_dtd PASSED [ 1%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_multiline_with_blankline PASSED [ 1%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_multiline_closing_quotes PASSED [ 1%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_preserving_spaces PASSED [ 1%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_escaping_newline_tabs PASSED [ 1%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_abandoned_accelerator PASSED [ 1%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_unassociable_accelerator PASSED [ 1%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_changed_labels_and_accelerators PASSED [ 1%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accelerator_keys_not_in_sentence XFAIL [ 1%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_exclude_entity_includes PASSED [ 1%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_linewraps PASSED [ 1%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_merging_with_new_untranslated PASSED [ 1%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_merge_without_template PASSED [ 1%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_simpleentity PASSED [ 1%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_convertdtd PASSED [ 1%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_apos PASSED [ 1%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_quotes PASSED [ 1%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_emptyentity PASSED [ 1%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_two_empty_entities PASSED [ 1%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_emptyentity_translated PASSED [ 2%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_localisaton_note_simple PASSED [ 2%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_localisation_note_merge PASSED [ 2%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_simple PASSED [ 2%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_label PASSED [ 2%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_onlyentity PASSED [ 2%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_commentedout PASSED [ 2%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_spaces_at_start_of_dtd_lines PASSED [ 2%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accesskeys_folding PASSED [ 2%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accesskeys_mismatch PASSED [ 2%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_carriage_return_in_multiline_dtd PASSED [ 2%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_multiline_with_blankline PASSED [ 2%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_multiline_closing_quotes PASSED [ 2%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_preserving_spaces PASSED [ 2%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_escaping_newline_tabs PASSED [ 2%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_abandoned_accelerator PASSED [ 2%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_unassociable_accelerator PASSED [ 2%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_changed_labels_and_accelerators PASSED [ 2%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accelerator_keys_not_in_sentence XFAIL [ 2%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_exclude_entity_includes PASSED [ 2%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_linewraps PASSED [ 2%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_merging_with_new_untranslated PASSED [ 2%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_merge_without_template PASSED [ 2%] 385s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_help PASSED [ 2%] 385s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_defaults PASSED [ 2%] 385s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_root_name PASSED [ 2%] 385s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_value_name PASSED [ 2%] 385s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_key PASSED [ 2%] 385s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_default_namespace PASSED [ 2%] 385s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_namespace_prefix PASSED [ 2%] 385s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_all_parameters PASSED [ 2%] 385s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_empty_file_is_empty_store PASSED [ 2%] 385s tests/translate/convert/test_flatxml2po.py::TestFlatXML2POCommand::test_help PASSED [ 2%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_extract_lang_attribute_from_html_tag PASSED [ 2%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_do_not_extract_lang_attribute_from_tags_other_than_html PASSED [ 2%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_title PASSED [ 2%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_title_with_linebreak PASSED [ 2%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta PASSED [ 2%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p PASSED [ 2%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_br PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_linebreak PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_linebreak_and_embedded_br PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_uppercase_html PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_div PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_div_with_linebreaks PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_a PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_a_with_linebreak PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_sequence_of_anchor_elements PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_img PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_img_empty PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_img_inside_a PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_table_summary PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_simple PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_complex PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_empty PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_address PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_headings PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_headings_with_linebreaks PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_dt PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_dd PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_span PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_ul PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_nested_lists PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_duplicates PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_multiline_reflow PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_nested_tags PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_carriage_return PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_encoding_latin1 PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_strip_html PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_entityrefs_in_text PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_entityrefs_in_attributes PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_charrefs PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_multiple_php PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php_multiline PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php_with_embedded_html PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_comments PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_attribute_without_value PASSED [ 3%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_data_translate_ignore_attribute PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_translate_comment_directives PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta_social_media_tags PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta_non_translatable_tags_not_extracted PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta_mixed_translatable_and_non_translatable PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_data_translate_comment_attribute PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_data_translate_comment_without_keepcomments PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2PO::test_text_after_empty_tags PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_extract_lang_attribute_from_html_tag PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_do_not_extract_lang_attribute_from_tags_other_than_html PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_title PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_title_with_linebreak PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_br PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_linebreak PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_linebreak_and_embedded_br PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_uppercase_html PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_div PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_div_with_linebreaks PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_a PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_a_with_linebreak PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_sequence_of_anchor_elements PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_img PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_img_empty PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_img_inside_a PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_table_summary PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_simple PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_complex PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_empty PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_address PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_headings PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_headings_with_linebreaks PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_dt PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_dd PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_span PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_ul PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_nested_lists PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_duplicates PASSED [ 4%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multiline_reflow PASSED [ 5%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_nested_tags PASSED [ 5%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_carriage_return PASSED [ 5%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_encoding_latin1 PASSED [ 5%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_strip_html PASSED [ 5%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_entityrefs_in_text PASSED [ 5%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_entityrefs_in_attributes PASSED [ 5%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_charrefs PASSED [ 5%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php PASSED [ 5%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multiple_php PASSED [ 5%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php_multiline PASSED [ 5%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php_with_embedded_html PASSED [ 5%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_comments PASSED [ 5%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_attribute_without_value PASSED [ 5%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_data_translate_ignore_attribute PASSED [ 5%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_translate_comment_directives PASSED [ 5%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta_social_media_tags PASSED [ 5%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta_non_translatable_tags_not_extracted PASSED [ 5%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta_mixed_translatable_and_non_translatable PASSED [ 5%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_data_translate_comment_attribute PASSED [ 5%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_data_translate_comment_without_keepcomments PASSED [ 5%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_text_after_empty_tags PASSED [ 5%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_help PASSED [ 5%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_single PASSED [ 5%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_onefile PASSED [ 5%] 385s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_onefile_to_stdout PASSED [ 5%] 385s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_convert_empty_file PASSED [ 5%] 385s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_no_translations PASSED [ 5%] 385s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_summary PASSED [ 5%] 385s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_description PASSED [ 5%] 385s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_location PASSED [ 5%] 385s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_comment PASSED [ 5%] 385s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_no_template_duplicate_style PASSED [ 5%] 385s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge PASSED [ 5%] 385s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_misaligned_files PASSED [ 5%] 385s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_blank_msgstr PASSED [ 5%] 385s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_duplicate_style PASSED [ 5%] 385s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_convert_empty_file PASSED [ 5%] 385s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_no_translations PASSED [ 5%] 385s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_summary PASSED [ 6%] 385s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_description PASSED [ 6%] 385s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_location PASSED [ 6%] 385s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_comment PASSED [ 6%] 385s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_no_template_duplicate_style PASSED [ 6%] 385s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge PASSED [ 6%] 385s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_misaligned_files PASSED [ 6%] 385s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_blank_msgstr PASSED [ 6%] 385s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_duplicate_style PASSED [ 6%] 385s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_help PASSED [ 6%] 385s tests/translate/convert/test_idml2po.py::TestIDML2POCommand::test_help PASSED [ 6%] 385s tests/translate/convert/test_idml2po.py::TestIDML2POCommand::test_convert PASSED [ 6%] 385s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_empty_file PASSED [ 6%] 385s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_no_translation PASSED [ 6%] 385s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_simple PASSED [ 6%] 385s tests/translate/convert/test_ini2po.py::TestIni2PO::test_no_duplicates PASSED [ 6%] 385s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_simple PASSED [ 6%] 385s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_misaligned_files PASSED [ 6%] 385s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_blank_msgstr PASSED [ 6%] 385s tests/translate/convert/test_ini2po.py::TestIni2PO::test_dialects_inno PASSED [ 6%] 385s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_empty_file PASSED [ 6%] 385s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_no_translation PASSED [ 6%] 385s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_simple PASSED [ 6%] 385s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_no_duplicates PASSED [ 6%] 385s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_simple PASSED [ 6%] 385s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_misaligned_files PASSED [ 6%] 385s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_blank_msgstr PASSED [ 6%] 385s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_dialects_inno PASSED [ 6%] 385s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_help PASSED [ 6%] 385s tests/translate/convert/test_json2po.py::TestJson2PO::test_simple PASSED [ 6%] 385s tests/translate/convert/test_json2po.py::TestJson2PO::test_three_same_keys PASSED [ 6%] 385s tests/translate/convert/test_json2po.py::TestJson2PO::test_filter PASSED [ 6%] 385s tests/translate/convert/test_json2po.py::TestJson2PO::test_multiple_units PASSED [ 6%] 385s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_simple PASSED [ 6%] 385s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_three_same_keys PASSED [ 6%] 385s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_filter PASSED [ 6%] 385s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_multiple_units PASSED [ 6%] 385s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_help PASSED [ 6%] 385s tests/translate/convert/test_md2po.py::TestMD2PO::test_help PASSED [ 6%] 385s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_file_with_multifile_single PASSED [ 7%] 385s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_file_with_multifile_onefile PASSED [ 7%] 385s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_directory_with_multifile_single PASSED [ 7%] 385s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_directory_with_multifile_onefile PASSED [ 7%] 385s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_frontmatter PASSED [ 7%] 385s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_translation_ignore_sections PASSED [ 7%] 385s tests/translate/convert/test_moz2po.py::TestMoz2PO::test_duplicate_locations PASSED [ 7%] 385s tests/translate/convert/test_moz2po.py::TestMoz2POCommand::test_duplicate_locations PASSED [ 7%] 385s tests/translate/convert/test_moz2po.py::TestMoz2POCommand::test_help PASSED [ 7%] 385s tests/translate/convert/test_mozfunny2prop.py::TestInc2PO::test_simpleentry PASSED [ 7%] 385s tests/translate/convert/test_mozfunny2prop.py::TestInc2PO::test_uncomment_contributors PASSED [ 7%] 385s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_convert_empty PASSED [ 7%] 385s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_string PASSED [ 7%] 385s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_merge PASSED [ 7%] 385s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_entry PASSED [ 7%] 385s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_comment PASSED [ 7%] 385s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_meta_tags PASSED [ 7%] 385s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_keep_duplicates PASSED [ 7%] 385s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_drop_duplicates PASSED [ 7%] 385s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_convert_empty PASSED [ 7%] 385s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_string PASSED [ 7%] 385s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_merge PASSED [ 7%] 385s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_entry PASSED [ 7%] 385s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_comment PASSED [ 7%] 385s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_meta_tags PASSED [ 7%] 385s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_keep_duplicates PASSED [ 7%] 385s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_drop_duplicates PASSED [ 7%] 385s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_help PASSED [ 7%] 385s tests/translate/convert/test_ods2xliff.py::TestODF2XLIFFCommand::test_help PASSED [ 7%] 385s tests/translate/convert/test_ods2xliff.py::TestODF2XLIFFCommand::test_convert PASSED [ 7%] 385s tests/translate/convert/test_oo2po.py::TestOO2PO::test_simpleentity PASSED [ 7%] 385s tests/translate/convert/test_oo2po.py::TestOO2PO::test_escapes PASSED [ 7%] 385s tests/translate/convert/test_oo2po.py::TestOO2PO::test_roundtrip_escape PASSED [ 7%] 385s tests/translate/convert/test_oo2po.py::TestOO2PO::test_roundtrip_whitespaceonly PASSED [ 7%] 385s tests/translate/convert/test_oo2po.py::TestOO2PO::test_double_escapes PASSED [ 7%] 385s tests/translate/convert/test_oo2po.py::TestOO2PO::test_escapes_helpcontent2 PASSED [ 7%] 385s tests/translate/convert/test_oo2po.py::TestOO2PO::test_msgid_bug_error_address PASSED [ 7%] 385s tests/translate/convert/test_oo2po.py::TestOO2PO::test_x_comment_inclusion PASSED [ 7%] 385s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simpleentity PASSED [ 7%] 385s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_escapes PASSED [ 8%] 385s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_roundtrip_escape PASSED [ 8%] 385s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_roundtrip_whitespaceonly PASSED [ 8%] 385s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_double_escapes PASSED [ 8%] 385s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_escapes_helpcontent2 PASSED [ 8%] 385s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_msgid_bug_error_address PASSED [ 8%] 385s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_x_comment_inclusion PASSED [ 8%] 385s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_help PASSED [ 8%] 385s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_preserve_filename PASSED [ 8%] 385s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_pot PASSED [ 8%] 385s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_po PASSED [ 8%] 385s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_onefile_nonrecursive PASSED [ 8%] 385s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_remove_duplicates PASSED [ 8%] 385s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_simpleentity PASSED [ 8%] 385s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_escapes PASSED [ 8%] 385s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_roundtrip_escape PASSED [ 8%] 385s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_roundtrip_whitespaceonly PASSED [ 8%] 385s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_double_escapes PASSED [ 8%] 385s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_escapes_helpcontent2 PASSED [ 8%] 385s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_x_comment_inclusion PASSED [ 8%] 385s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_msgid_bug_error_address PASSED [ 8%] 385s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simpleentity PASSED [ 8%] 385s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_escapes PASSED [ 8%] 385s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_roundtrip_escape PASSED [ 8%] 385s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_roundtrip_whitespaceonly PASSED [ 8%] 385s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_double_escapes PASSED [ 8%] 385s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_escapes_helpcontent2 PASSED [ 8%] 385s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_x_comment_inclusion PASSED [ 8%] 385s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_msgid_bug_error_address PASSED [ 8%] 385s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_help PASSED [ 8%] 385s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_preserve_filename PASSED [ 8%] 385s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_xlf PASSED [ 8%] 385s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_po PASSED [ 8%] 385s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_onefile_nonrecursive PASSED [ 8%] 385s tests/translate/convert/test_php2po.py::TestPhp2PO::test_simpleentry PASSED [ 8%] 385s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphp PASSED [ 8%] 385s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphptemplate PASSED [ 8%] 385s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphpmissing PASSED [ 8%] 385s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphpempty PASSED [ 8%] 385s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unicode PASSED [ 9%] 385s tests/translate/convert/test_php2po.py::TestPhp2PO::test_multiline PASSED [ 9%] 385s tests/translate/convert/test_php2po.py::TestPhp2PO::test_comments_before PASSED [ 9%] 385s tests/translate/convert/test_php2po.py::TestPhp2PO::test_emptyentry PASSED [ 9%] 385s tests/translate/convert/test_php2po.py::TestPhp2PO::test_hash_comment_with_equals PASSED [ 9%] 385s tests/translate/convert/test_php2po.py::TestPhp2PO::test_emptyentry_translated PASSED [ 9%] 385s tests/translate/convert/test_php2po.py::TestPhp2PO::test_newlines_in_value PASSED [ 9%] 385s tests/translate/convert/test_php2po.py::TestPhp2PO::test_spaces_in_name PASSED [ 9%] 385s tests/translate/convert/test_php2po.py::TestPhp2PO::test_named_array PASSED [ 9%] 385s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unnamed_array PASSED [ 9%] 385s tests/translate/convert/test_php2po.py::TestPhp2PO::test_named_nested_arrays PASSED [ 9%] 385s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unnamed_nested_arrays PASSED [ 9%] 385s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_simpleentry PASSED [ 9%] 385s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphp PASSED [ 9%] 385s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphptemplate PASSED [ 9%] 385s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphpmissing PASSED [ 9%] 385s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphpempty PASSED [ 9%] 386s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unicode PASSED [ 9%] 386s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_multiline PASSED [ 9%] 386s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_comments_before PASSED [ 9%] 386s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_emptyentry PASSED [ 9%] 386s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_hash_comment_with_equals PASSED [ 9%] 386s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_emptyentry_translated PASSED [ 9%] 386s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_newlines_in_value PASSED [ 9%] 386s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_spaces_in_name PASSED [ 9%] 386s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_named_array PASSED [ 9%] 386s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unnamed_array PASSED [ 9%] 386s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_named_nested_arrays PASSED [ 9%] 386s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unnamed_nested_arrays PASSED [ 9%] 386s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_help PASSED [ 9%] 386s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_simpleentity PASSED [ 9%] 386s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_multiline PASSED [ 9%] 386s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapednewlines PASSED [ 9%] 386s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedtabs PASSED [ 9%] 386s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedquotes PASSED [ 9%] 386s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedescape PASSED [ 9%] 386s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_singlequotes PASSED [ 9%] 386s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_empties PASSED [ 9%] 386s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_kdecomments PASSED [ 9%] 386s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_simpleentity PASSED [ 10%] 386s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_multiline PASSED [ 10%] 386s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapednewlines PASSED [ 10%] 386s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedtabs PASSED [ 10%] 386s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedquotes PASSED [ 10%] 386s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedescape PASSED [ 10%] 386s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_singlequotes PASSED [ 10%] 386s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_empties PASSED [ 10%] 386s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_kdecomments PASSED [ 10%] 386s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_help PASSED [ 10%] 386s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder PASSED [ 10%] 386s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_context PASSED [ 10%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_joinlines PASSED [ 10%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_escapedstr PASSED [ 10%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_missingaccesskey PASSED [ 10%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskeycase PASSED [ 10%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_types PASSED [ 10%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing PASSED [ 10%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey PASSED [ 10%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_source_no_amp_in_target PASSED [ 10%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_both_amp_and_accesskey PASSED [ 10%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey PASSED [ 10%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_entities_two PASSED [ 10%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_entities PASSED [ 10%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_comments_translator PASSED [ 10%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_retains_hashprefix PASSED [ 10%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_convertdtd PASSED [ 10%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_untranslated_with_template PASSED [ 10%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_untranslated_without_template PASSED [ 10%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_blank_source PASSED [ 10%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_newlines_escapes PASSED [ 10%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_simple PASSED [ 10%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_escape PASSED [ 10%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_quotes PASSED [ 10%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_amp PASSED [ 10%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_merging_entries_with_spaces_removed PASSED [ 10%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_preserving_spaces PASSED [ 10%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_preserving_spaces_after_value PASSED [ 10%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_comments PASSED [ 10%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_duplicates PASSED [ 11%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_joinlines PASSED [ 11%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_escapedstr PASSED [ 11%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_missingaccesskey PASSED [ 11%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskeycase PASSED [ 11%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_types PASSED [ 11%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing PASSED [ 11%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey PASSED [ 11%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_source_no_amp_in_target PASSED [ 11%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_both_amp_and_accesskey PASSED [ 11%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_amp_no_accesskey PASSED [ 11%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_entities_two PASSED [ 11%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_entities PASSED [ 11%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_comments_translator PASSED [ 11%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_retains_hashprefix PASSED [ 11%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_convertdtd PASSED [ 11%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_untranslated_with_template PASSED [ 11%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_untranslated_without_template PASSED [ 11%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_blank_source PASSED [ 11%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_newlines_escapes PASSED [ 11%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_simple PASSED [ 11%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_escape PASSED [ 11%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_quotes PASSED [ 11%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_amp PASSED [ 11%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_merging_entries_with_spaces_removed PASSED [ 11%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_preserving_spaces PASSED [ 11%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_preserving_spaces_after_value PASSED [ 11%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_comments PASSED [ 11%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_duplicates PASSED [ 11%] 386s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_help PASSED [ 11%] 386s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_defaults PASSED [ 11%] 386s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_root_name PASSED [ 11%] 386s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_value_name PASSED [ 11%] 386s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_key PASSED [ 11%] 386s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_default_namespace PASSED [ 11%] 386s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_namespace_prefix PASSED [ 11%] 386s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_indent_eight PASSED [ 11%] 386s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_noindent PASSED [ 11%] 386s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXMLCommand::test_help PASSED [ 11%] 386s tests/translate/convert/test_po2html.py::TestPO2Html::test_simple PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2Html::test_linebreaks PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2Html::test_replace_substrings PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_outside_translatable_content PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_within_translatable_content_not_embedded PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_embedded_within_translatable_content PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_without_value PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2Html::test_entities PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2Html::test_entities_template_vs_po_mismatch PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2Html::test_utf8_non_ascii_characters PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2Html::test_custom_entities_preserved PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2Html::test_escapes PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_auto_rtl PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_auto_ltr PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_added_when_missing PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_not_changed_without_lang_translation PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_translated PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_untranslated PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_fuzzy PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2Html::test_untranslated_attributes PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2Html::test_button_translation PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2Html::test_lang_attribute_only_on_html_tag PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2Html::test_data_translate_ignore_preserved PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2Html::test_translate_comment_directives_preserved PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2Html::test_data_translate_ignore_with_translation_in_po PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2Html::test_translate_comment_with_translation_in_po PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2Html::test_meta_social_media_tags_translation PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2Html::test_meta_non_translatable_tags_preserved PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_simple PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_linebreaks PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_replace_substrings PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_outside_translatable_content PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_within_translatable_content_not_embedded PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_embedded_within_translatable_content PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_without_value PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_entities PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_entities_template_vs_po_mismatch PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_utf8_non_ascii_characters PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_custom_entities_preserved PASSED [ 12%] 386s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_escapes PASSED [ 13%] 386s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_auto_rtl PASSED [ 13%] 386s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_auto_ltr PASSED [ 13%] 386s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_added_when_missing PASSED [ 13%] 386s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_not_changed_without_lang_translation PASSED [ 13%] 386s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_translated PASSED [ 13%] 386s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_untranslated PASSED [ 13%] 386s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_fuzzy PASSED [ 13%] 386s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_untranslated_attributes PASSED [ 13%] 386s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_button_translation PASSED [ 13%] 386s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_lang_attribute_only_on_html_tag PASSED [ 13%] 386s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_data_translate_ignore_preserved PASSED [ 13%] 386s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_translate_comment_directives_preserved PASSED [ 13%] 386s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_data_translate_ignore_with_translation_in_po PASSED [ 13%] 386s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_translate_comment_with_translation_in_po PASSED [ 13%] 386s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_meta_social_media_tags_translation PASSED [ 13%] 386s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_meta_non_translatable_tags_preserved PASSED [ 13%] 386s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_help PASSED [ 13%] 386s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_individual_files PASSED [ 13%] 386s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_fully_recursive PASSED [ 13%] 386s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_input_specified PASSED [ 13%] 386s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified PASSED [ 13%] 386s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_output_specified PASSED [ 13%] 386s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file PASSED [ 13%] 386s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file_and_templates_overwritten PASSED [ 13%] 386s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_empty_file PASSED [ 13%] 386s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_summary PASSED [ 13%] 386s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_description PASSED [ 13%] 386s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_location PASSED [ 13%] 386s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_comment PASSED [ 13%] 386s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_complex_icalendar PASSED [ 13%] 386s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_skip_fuzzy PASSED [ 13%] 386s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_include_fuzzy PASSED [ 13%] 386s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_no_template PASSED [ 13%] 386s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_template_location_not_in_source_file PASSED [ 13%] 386s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_completion_below_threshold PASSED [ 13%] 386s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_completion_above_threshold PASSED [ 13%] 386s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_empty_file PASSED [ 13%] 386s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_summary PASSED [ 13%] 386s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_description PASSED [ 14%] 386s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_location PASSED [ 14%] 386s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_comment PASSED [ 14%] 386s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_complex_icalendar PASSED [ 14%] 386s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_skip_fuzzy PASSED [ 14%] 386s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_include_fuzzy PASSED [ 14%] 386s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_no_template PASSED [ 14%] 386s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_template_location_not_in_source_file PASSED [ 14%] 386s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_completion_below_threshold PASSED [ 14%] 386s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_completion_above_threshold PASSED [ 14%] 386s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_help PASSED [ 14%] 386s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_help PASSED [ 14%] 386s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_convert PASSED [ 14%] 386s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_no_templates PASSED [ 14%] 386s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_simple PASSED [ 14%] 386s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_space_preservation PASSED [ 14%] 386s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_blank_entries PASSED [ 14%] 386s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_fuzzy PASSED [ 14%] 386s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_propertyless_template PASSED [ 14%] 386s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_empty_value PASSED [ 14%] 386s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_dialects_inno PASSED [ 14%] 386s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_misaligned_files PASSED [ 14%] 386s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_completion_below_threshold PASSED [ 14%] 386s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_completion_above_threshold PASSED [ 14%] 386s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_no_fuzzy PASSED [ 14%] 386s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_allow_fuzzy PASSED [ 14%] 386s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_missing_source PASSED [ 14%] 386s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_repeated_locations PASSED [ 14%] 386s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_no_templates PASSED [ 14%] 386s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_simple PASSED [ 14%] 386s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_space_preservation PASSED [ 14%] 386s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_blank_entries PASSED [ 14%] 386s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_fuzzy PASSED [ 14%] 386s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_propertyless_template PASSED [ 14%] 386s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_empty_value PASSED [ 14%] 386s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_dialects_inno PASSED [ 14%] 386s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_misaligned_files PASSED [ 14%] 386s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_completion_below_threshold PASSED [ 14%] 386s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_completion_above_threshold PASSED [ 14%] 386s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_no_fuzzy PASSED [ 15%] 386s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_allow_fuzzy PASSED [ 15%] 386s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_missing_source PASSED [ 15%] 386s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_repeated_locations PASSED [ 15%] 386s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_help PASSED [ 15%] 386s tests/translate/convert/test_po2json.py::TestPO2JSON::test_basic PASSED [ 15%] 386s tests/translate/convert/test_po2json.py::TestPO2JSON::test_ordering_serialize PASSED [ 15%] 386s tests/translate/convert/test_po2json.py::TestPO2JSON::test_dont_use_empty_translation PASSED [ 15%] 386s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_false_remove_untranslated_false PASSED [ 15%] 386s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_false_remove_untranslated_true PASSED [ 15%] 386s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_true_remove_untranslated_false PASSED [ 15%] 386s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_true_remove_untranslated_true PASSED [ 15%] 386s tests/translate/convert/test_po2md.py::TestPO2MD::test_help PASSED [ 15%] 386s tests/translate/convert/test_po2md.py::TestPO2MD::test_single_markdown_file_with_single_po PASSED [ 15%] 386s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_with_single_po PASSED [ 15%] 386s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_and_directory_of_po_files PASSED [ 15%] 386s tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_table XFAIL [ 15%] 386s tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_frontmatter PASSED [ 15%] 386s tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_translation_ignore_sections PASSED [ 15%] 386s tests/translate/convert/test_po2moz.py::TestPO2MozCommand::test_help PASSED [ 15%] 386s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_empty PASSED [ 15%] 386s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_simple PASSED [ 15%] 386s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_comment PASSED [ 15%] 386s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_ok_marker PASSED [ 15%] 386s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_completion_below_threshold PASSED [ 15%] 386s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_completion_above_threshold PASSED [ 15%] 386s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_skip_non_translatable_input PASSED [ 15%] 386s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_no_fuzzy PASSED [ 15%] 386s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_allow_fuzzy PASSED [ 15%] 386s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_mark_active PASSED [ 15%] 386s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_empty PASSED [ 15%] 386s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_simple PASSED [ 15%] 386s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_comment PASSED [ 15%] 386s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_ok_marker PASSED [ 15%] 386s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_completion_below_threshold PASSED [ 15%] 386s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_completion_above_threshold PASSED [ 15%] 386s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_skip_non_translatable_input PASSED [ 15%] 386s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_no_fuzzy PASSED [ 15%] 386s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_allow_fuzzy PASSED [ 15%] 386s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_mark_active PASSED [ 16%] 386s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_help PASSED [ 16%] 386s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_help PASSED [ 16%] 386s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert PASSED [ 16%] 386s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert_with_multiple_units PASSED [ 16%] 386s tests/translate/convert/test_po2oo.py::TestPO2OO::test_convertoo PASSED [ 16%] 386s tests/translate/convert/test_po2oo.py::TestPO2OO::test_pofilter PASSED [ 16%] 386s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_simple PASSED [ 16%] 386s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_escape PASSED [ 16%] 386s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_quotes PASSED [ 16%] 386s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_spaces PASSED [ 16%] 386s tests/translate/convert/test_po2oo.py::TestPO2OO::test_default_timestamp PASSED [ 16%] 386s tests/translate/convert/test_po2oo.py::TestPO2OO::test_escape_conversion PASSED [ 16%] 386s tests/translate/convert/test_po2oo.py::TestPO2OO::test_helpcontent_escapes PASSED [ 16%] 386s tests/translate/convert/test_po2oo.py::TestPO2OO::test_helpcontent_escapes2 PASSED [ 16%] 386s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_convertoo PASSED [ 16%] 386s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_pofilter PASSED [ 16%] 386s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_simple PASSED [ 16%] 386s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_escape PASSED [ 16%] 386s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_quotes PASSED [ 16%] 386s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_spaces PASSED [ 16%] 386s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_default_timestamp PASSED [ 16%] 386s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_escape_conversion PASSED [ 16%] 386s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_helpcontent_escapes PASSED [ 16%] 386s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_helpcontent_escapes2 PASSED [ 16%] 386s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_help PASSED [ 16%] 386s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp PASSED [ 16%] 386s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp_notemplate PASSED [ 16%] 386s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp_empty_template PASSED [ 16%] 386s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_simple PASSED [ 16%] 386s tests/translate/convert/test_po2php.py::TestPO2Php::test_space_preservation PASSED [ 16%] 386s tests/translate/convert/test_po2php.py::TestPO2Php::test_preserve_unused_statement PASSED [ 16%] 386s tests/translate/convert/test_po2php.py::TestPO2Php::test_not_translated_multiline PASSED [ 16%] 386s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_blank_entries PASSED [ 16%] 386s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_fuzzy PASSED [ 16%] 386s tests/translate/convert/test_po2php.py::TestPO2Php::test_locations_with_spaces PASSED [ 16%] 386s tests/translate/convert/test_po2php.py::TestPO2Php::test_inline_comments PASSED [ 16%] 386s tests/translate/convert/test_po2php.py::TestPO2Php::test_block_comments PASSED [ 16%] 386s tests/translate/convert/test_po2php.py::TestPO2Php::test_named_variables PASSED [ 16%] 386s tests/translate/convert/test_po2php.py::TestPO2Php::test_multiline PASSED [ 17%] 386s tests/translate/convert/test_po2php.py::TestPO2Php::test_hash_comment PASSED [ 17%] 386s tests/translate/convert/test_po2php.py::TestPO2Php::test_arrays PASSED [ 17%] 386s tests/translate/convert/test_po2php.py::TestPO2Php::test_named_nested_array PASSED [ 17%] 386s tests/translate/convert/test_po2php.py::TestPO2Php::test_unnamed_nested_arrays PASSED [ 17%] 386s tests/translate/convert/test_po2php.py::TestPO2Php::test_return_array_with_comments PASSED [ 17%] 386s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_propertyless_template XFAIL [ 17%] 386s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp PASSED [ 17%] 386s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp_notemplate PASSED [ 17%] 386s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp_empty_template PASSED [ 17%] 386s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_simple PASSED [ 17%] 386s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_space_preservation PASSED [ 17%] 386s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_preserve_unused_statement PASSED [ 17%] 386s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_not_translated_multiline PASSED [ 17%] 386s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_blank_entries PASSED [ 17%] 386s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_fuzzy PASSED [ 17%] 386s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_locations_with_spaces PASSED [ 17%] 386s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_inline_comments PASSED [ 17%] 386s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_block_comments PASSED [ 17%] 386s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_named_variables PASSED [ 17%] 386s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_multiline PASSED [ 17%] 386s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_hash_comment PASSED [ 17%] 386s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_arrays PASSED [ 17%] 386s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_named_nested_array PASSED [ 17%] 386s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_unnamed_nested_arrays PASSED [ 17%] 386s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_return_array_with_comments PASSED [ 17%] 386s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_propertyless_template XFAIL [ 17%] 386s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_help PASSED [ 17%] 386s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_simple PASSED [ 17%] 386s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated PASSED [ 17%] 386s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_hard_newlines_preserved PASSED [ 17%] 386s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_space_preservation PASSED [ 17%] 386s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_no_value PASSED [ 17%] 386s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_no_separator PASSED [ 17%] 386s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_value_no_key PASSED [ 17%] 386s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_blank_entries PASSED [ 17%] 386s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_fuzzy PASSED [ 17%] 386s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys PASSED [ 17%] 386s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey PASSED [ 17%] 386s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_margin_whitespace PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_all_whitespace PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_propertyless_template PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_delimiters PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_empty_value PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_personalities PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_simple PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_multiline PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_multiline2 PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_comments PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_unchanged PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_blank PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_gaia_plurals PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_duplicates PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_gwt_plurals PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_utf16_with_empty_lines PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_simple PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_hard_newlines_preserved PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_space_preservation PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_no_value PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_no_separator PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_value_no_key PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_blank_entries PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_fuzzy PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys_missing_accesskey PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_margin_whitespace PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_all_whitespace PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_propertyless_template PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_delimiters PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_empty_value PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_personalities PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_simple PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_multiline PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_multiline2 PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_comments PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_unchanged PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_blank PASSED [ 18%] 386s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_gaia_plurals PASSED [ 19%] 386s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_duplicates PASSED [ 19%] 386s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_gwt_plurals PASSED [ 19%] 386s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_utf16_with_empty_lines PASSED [ 19%] 386s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_help PASSED [ 19%] 386s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_help PASSED [ 19%] 387s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert PASSED [ 19%] 387s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_quotes PASSED [ 19%] 387s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment PASSED [ 19%] 387s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment_dos_eol PASSED [ 19%] 387s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_double_string PASSED [ 19%] 387s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_popup PASSED [ 19%] 387s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_discardable PASSED [ 19%] 387s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_menuex PASSED [ 19%] 387s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_newlines PASSED [ 19%] 387s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment_after PASSED [ 19%] 387s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_block_language PASSED [ 19%] 387s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_output_encoding PASSED [ 19%] 387s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_quotes_strintable PASSED [ 19%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_simpleunit PASSED [ 19%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_basic PASSED [ 19%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_multiline PASSED [ 19%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapednewlines PASSED [ 19%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapedtabs PASSED [ 19%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapedquotes PASSED [ 19%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_exclusions PASSED [ 19%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments PASSED [ 19%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingcomment PASSED [ 19%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingduplicatecomment PASSED [ 19%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingduplicatecommentwithwhitespace PASSED [ 19%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments PASSED [ 19%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments_existingcomment PASSED [ 19%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments_existingduplicatecomment PASSED [ 19%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments PASSED [ 19%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments_existingduplicatecomment PASSED [ 19%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments_existingcomment PASSED [ 19%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_existingcomments PASSED [ 19%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_plus_in_resourcekey PASSED [ 19%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_special_chars_in_resourcekey PASSED [ 19%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_simpleunit PASSED [ 20%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_basic PASSED [ 20%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_multiline PASSED [ 20%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapednewlines PASSED [ 20%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapedtabs PASSED [ 20%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapedquotes PASSED [ 20%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_exclusions PASSED [ 20%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments PASSED [ 20%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingcomment PASSED [ 20%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingduplicatecomment PASSED [ 20%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingduplicatecommentwithwhitespace PASSED [ 20%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments PASSED [ 20%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments_existingcomment PASSED [ 20%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments_existingduplicatecomment PASSED [ 20%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments PASSED [ 20%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments_existingduplicatecomment PASSED [ 20%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments_existingcomment PASSED [ 20%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_existingcomments PASSED [ 20%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_plus_in_resourcekey PASSED [ 20%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_special_chars_in_resourcekey PASSED [ 20%] 387s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_help PASSED [ 20%] 387s tests/translate/convert/test_po2sub.py::TestPO2Sub::test_subrip PASSED [ 20%] 387s tests/translate/convert/test_po2sub.py::TestPO2SubCommand::test_subrip PASSED [ 20%] 387s tests/translate/convert/test_po2sub.py::TestPO2SubCommand::test_help PASSED [ 20%] 387s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert_empty PASSED [ 20%] 387s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert PASSED [ 20%] 387s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert_marked_untranslated PASSED [ 20%] 387s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert_empty PASSED [ 20%] 387s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert PASSED [ 20%] 387s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert_marked_untranslated PASSED [ 20%] 387s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_help PASSED [ 20%] 387s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_basic PASSED [ 20%] 387s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_sourcelanguage PASSED [ 20%] 387s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_targetlanguage PASSED [ 20%] 387s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_multiline PASSED [ 20%] 387s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapednewlines PASSED [ 20%] 387s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapedtabs PASSED [ 20%] 387s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapedquotes PASSED [ 20%] 387s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_exclusions PASSED [ 20%] 387s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_nonascii PASSED [ 21%] 387s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_nonecomments PASSED [ 21%] 387s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_otherscomments PASSED [ 21%] 387s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_sourcecomments PASSED [ 21%] 387s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_typecomments PASSED [ 21%] 387s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_basic PASSED [ 21%] 387s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_sourcelanguage PASSED [ 21%] 387s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_targetlanguage PASSED [ 21%] 387s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_multiline PASSED [ 21%] 387s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapednewlines PASSED [ 21%] 387s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapedtabs PASSED [ 21%] 387s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapedquotes PASSED [ 21%] 387s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_exclusions PASSED [ 21%] 387s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_nonascii PASSED [ 21%] 387s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_nonecomments PASSED [ 21%] 387s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_otherscomments PASSED [ 21%] 387s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_sourcecomments PASSED [ 21%] 387s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_typecomments PASSED [ 21%] 387s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_help PASSED [ 21%] 387s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_context PASSED [ 21%] 387s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_simple_convert PASSED [ 21%] 387s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_nested_convert PASSED [ 21%] 387s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_template_required PASSED [ 21%] 387s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_untranslated_uses_source PASSED [ 21%] 387s tests/translate/convert/test_po2ts.py::TestPO2TS::test_simpleunit PASSED [ 21%] 387s tests/translate/convert/test_po2ts.py::TestPO2TS::test_simple_unicode_unit PASSED [ 21%] 387s tests/translate/convert/test_po2ts.py::TestPO2TS::test_fullunit PASSED [ 21%] 387s tests/translate/convert/test_po2ts.py::TestPO2TS::test_fuzzyunit PASSED [ 21%] 387s tests/translate/convert/test_po2ts.py::TestPO2TS::test_obsolete PASSED [ 21%] 387s tests/translate/convert/test_po2ts.py::TestPO2TS::test_duplicates PASSED [ 21%] 387s tests/translate/convert/test_po2ts.py::TestPO2TS::test_linebreak PASSED [ 21%] 387s tests/translate/convert/test_po2ts.py::TestPO2TS::test_linebreak_consecutive PASSED [ 21%] 387s tests/translate/convert/test_po2ts.py::TestPO2TS::test_plural PASSED [ 21%] 387s tests/translate/convert/test_po2ts.py::TestPO2TS::test_plural_fuzzy PASSED [ 21%] 387s tests/translate/convert/test_po2ts.py::TestPO2TS::test_unit_without_location PASSED [ 21%] 387s tests/translate/convert/test_po2ts.py::TestPO2TS::test_mixed_units_with_and_without_location PASSED [ 21%] 387s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_simpleunit PASSED [ 21%] 387s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_simple_unicode_unit PASSED [ 21%] 387s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_fullunit PASSED [ 21%] 387s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_fuzzyunit PASSED [ 22%] 387s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_obsolete PASSED [ 22%] 387s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_duplicates PASSED [ 22%] 387s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_linebreak PASSED [ 22%] 387s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_linebreak_consecutive PASSED [ 22%] 387s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_plural PASSED [ 22%] 387s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_plural_fuzzy PASSED [ 22%] 387s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_unit_without_location PASSED [ 22%] 387s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_mixed_units_with_and_without_location PASSED [ 22%] 387s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_help PASSED [ 22%] 387s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_basic PASSED [ 22%] 387s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_nonascii PASSED [ 22%] 387s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_blank_handling PASSED [ 22%] 387s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_fuzzy_handling PASSED [ 22%] 387s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_obsolete_ignore PASSED [ 22%] 387s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_header_ignore PASSED [ 22%] 387s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_convert_completion_below_threshold PASSED [ 22%] 387s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_convert_completion_above_threshold PASSED [ 22%] 387s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_substring_replacement PASSED [ 22%] 387s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_duplicate_text_segment_based_replacement PASSED [ 22%] 387s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_dokuwiki_flavour_segmentation PASSED [ 22%] 387s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_basic PASSED [ 22%] 387s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_nonascii PASSED [ 22%] 387s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_blank_handling PASSED [ 22%] 387s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_fuzzy_handling PASSED [ 22%] 387s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_obsolete_ignore PASSED [ 22%] 387s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_header_ignore PASSED [ 22%] 387s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_convert_completion_below_threshold PASSED [ 22%] 387s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_convert_completion_above_threshold PASSED [ 22%] 387s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_substring_replacement PASSED [ 22%] 387s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_duplicate_text_segment_based_replacement PASSED [ 22%] 387s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_dokuwiki_flavour_segmentation PASSED [ 22%] 387s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_help PASSED [ 22%] 387s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_basic PASSED [ 22%] 387s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_unicode PASSED [ 22%] 387s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_ordering_serialize PASSED [ 22%] 387s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_markmin PASSED [ 22%] 387s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_minimal PASSED [ 22%] 387s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_basic PASSED [ 22%] 387s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_multiline PASSED [ 23%] 387s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapednewlines PASSED [ 23%] 387s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapedtabs PASSED [ 23%] 387s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapedquotes PASSED [ 23%] 387s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_locationcomments PASSED [ 23%] 387s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_othercomments PASSED [ 23%] 387s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_automaticcomments PASSED [ 23%] 387s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_header PASSED [ 23%] 387s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_fuzzy PASSED [ 23%] 387s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_germanic_plurals PASSED [ 23%] 387s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_funny_plurals PASSED [ 23%] 387s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_language_tags PASSED [ 23%] 387s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_variables PASSED [ 23%] 387s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_approved PASSED [ 23%] 387s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_empty_PO PASSED [ 23%] 387s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_no_templates PASSED [ 23%] 387s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_simple_output PASSED [ 23%] 387s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_simple PASSED [ 23%] 387s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_translated PASSED [ 23%] 387s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_no_fuzzy PASSED [ 23%] 387s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_allow_fuzzy PASSED [ 23%] 387s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_nested PASSED [ 23%] 387s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_completion_below_threshold PASSED [ 23%] 387s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_completion_above_threshold PASSED [ 23%] 387s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_empty_PO PASSED [ 23%] 387s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_no_templates PASSED [ 23%] 387s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_simple_output PASSED [ 23%] 387s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_simple PASSED [ 23%] 387s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_translated PASSED [ 23%] 387s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_no_fuzzy PASSED [ 23%] 387s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_allow_fuzzy PASSED [ 23%] 387s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_nested PASSED [ 23%] 387s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_completion_below_threshold PASSED [ 23%] 387s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_completion_above_threshold PASSED [ 23%] 387s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_help PASSED [ 23%] 387s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_convertpot_blank PASSED [ 23%] 387s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_convertpot_blank_plurals PASSED [ 23%] 387s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_simple PASSED [ 23%] 387s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_messages_marked_fuzzy PASSED [ 23%] 387s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_plurals_with_fuzzy_matching PASSED [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_change XFAIL [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_change PASSED [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_and_whitespace_change PASSED [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_ambiguous_with_disambiguous PASSED [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_accelerator_changes XFAIL [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_lines_cut_differently XFAIL [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_automatic_comments_dont_duplicate PASSED [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_automatic_comments_new_overrides_old PASSED [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_comments_with_blank_comment_lines PASSED [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_empty_commentlines PASSED [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgidcomments PASSED [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_with_msgidcomment PASSED [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_plurals PASSED [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_obsoleting_messages PASSED [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_not_obsoleting_empty_messages PASSED [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_new_before_obsolete PASSED [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_resurrect_obsolete_messages PASSED [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_resurrect_obsolete_messages_into_msgidcomment PASSED [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_header_initialisation PASSED [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_comments PASSED [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_typecomments PASSED [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgctxt PASSED [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgctxt_multiline PASSED [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgid_merge_on_location PASSED [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgid_merge_on_id PASSED [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_empty_msgid PASSED [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_migrate_msgidcomment_to_msgctxt PASSED [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_obsolete_msgctxt PASSED [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_small_strings PASSED [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_convertpot_blank PASSED [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_convertpot_blank_plurals PASSED [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_simple PASSED [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_messages_marked_fuzzy PASSED [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_plurals_with_fuzzy_matching PASSED [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_change XFAIL [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_change PASSED [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_and_whitespace_change PASSED [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_ambiguous_with_disambiguous PASSED [ 24%] 387s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_accelerator_changes XFAIL [ 25%] 387s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_lines_cut_differently XFAIL [ 25%] 387s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_automatic_comments_dont_duplicate PASSED [ 25%] 387s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_automatic_comments_new_overrides_old PASSED [ 25%] 387s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_comments_with_blank_comment_lines PASSED [ 25%] 387s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_empty_commentlines PASSED [ 25%] 387s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgidcomments PASSED [ 25%] 387s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_with_msgidcomment PASSED [ 25%] 387s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_plurals PASSED [ 25%] 387s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_obsoleting_messages PASSED [ 25%] 387s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_not_obsoleting_empty_messages PASSED [ 25%] 387s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_new_before_obsolete PASSED [ 25%] 387s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_resurrect_obsolete_messages PASSED [ 25%] 387s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_resurrect_obsolete_messages_into_msgidcomment PASSED [ 25%] 387s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_header_initialisation PASSED [ 25%] 387s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_comments PASSED [ 25%] 387s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_typecomments PASSED [ 25%] 387s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgctxt PASSED [ 25%] 387s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgctxt_multiline PASSED [ 25%] 387s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgid_merge_on_location PASSED [ 25%] 387s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgid_merge_on_id PASSED [ 25%] 387s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_empty_msgid PASSED [ 25%] 387s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_migrate_msgidcomment_to_msgctxt PASSED [ 25%] 387s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_obsolete_msgctxt PASSED [ 25%] 387s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_small_strings PASSED [ 25%] 387s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_help PASSED [ 25%] 387s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_no_endlines_added PASSED [ 25%] 387s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_uncomment_contributors PASSED [ 25%] 387s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_multiline_comment_newlines PASSED [ 25%] 387s tests/translate/convert/test_prop2po.py::TestProp2PO::test_simpleentry PASSED [ 25%] 387s tests/translate/convert/test_prop2po.py::TestProp2PO::test_convertprop PASSED [ 25%] 387s tests/translate/convert/test_prop2po.py::TestProp2PO::test_no_value_entry PASSED [ 25%] 387s tests/translate/convert/test_prop2po.py::TestProp2PO::test_no_separator_entry PASSED [ 25%] 388s tests/translate/convert/test_prop2po.py::TestProp2PO::test_value_no_key_entry PASSED [ 25%] 388s tests/translate/convert/test_prop2po.py::TestProp2PO::test_tab_at_end_of_string PASSED [ 25%] 388s tests/translate/convert/test_prop2po.py::TestProp2PO::test_tab_at_start_of_value PASSED [ 25%] 388s tests/translate/convert/test_prop2po.py::TestProp2PO::test_unicode PASSED [ 25%] 388s tests/translate/convert/test_prop2po.py::TestProp2PO::test_multiline_escaping PASSED [ 25%] 388s tests/translate/convert/test_prop2po.py::TestProp2PO::test_comments PASSED [ 25%] 388s tests/translate/convert/test_prop2po.py::TestProp2PO::test_multiline_comments PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2PO::test_folding_accesskeys PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2PO::test_dont_translate PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2PO::test_duplicate_locations_mozilla PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2PO::test_emptyproperty PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2PO::test_emptyproperty_translated PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2PO::test_newlines_in_value PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2PO::test_header_comments PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2PO::test_unassociated_comment_order PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2PO::test_x_header PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2PO::test_gaia_plurals PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2PO::test_successive_gaia_plurals PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2PO::test_duplicate_keys PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2PO::test_gwt_plurals PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2PO::test_strings_bilingual_simple PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2PO::test_strings_bilingual_multiline PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_simpleentry PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_convertprop PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_no_value_entry PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_no_separator_entry PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_value_no_key_entry PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_tab_at_end_of_string PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_tab_at_start_of_value PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_unicode PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_multiline_escaping PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_comments PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_multiline_comments PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_folding_accesskeys PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_dont_translate PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_duplicate_locations_mozilla PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_emptyproperty PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_emptyproperty_translated PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_newlines_in_value PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_header_comments PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_unassociated_comment_order PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_x_header PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_gaia_plurals PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_successive_gaia_plurals PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_duplicate_keys PASSED [ 26%] 388s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_gwt_plurals PASSED [ 27%] 388s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_strings_bilingual_simple PASSED [ 27%] 388s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_strings_bilingual_multiline PASSED [ 27%] 388s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_help PASSED [ 27%] 388s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_help PASSED [ 27%] 388s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert PASSED [ 27%] 388s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf16 PASSED [ 27%] 388s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong PASSED [ 27%] 388s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf8 PASSED [ 27%] 388s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_menuex PASSED [ 27%] 388s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_simple PASSED [ 27%] 388s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_multiple_units PASSED [ 27%] 388s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_automaticcomments PASSED [ 27%] 388s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_translatorcomments PASSED [ 27%] 388s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_locations PASSED [ 27%] 388s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple PASSED [ 27%] 388s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_multiple_units PASSED [ 27%] 388s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_automaticcomments PASSED [ 27%] 388s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_translatorcomments PASSED [ 27%] 388s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_locations PASSED [ 27%] 388s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_help PASSED [ 27%] 388s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_pot PASSED [ 27%] 388s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_po PASSED [ 27%] 388s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_remove_duplicates PASSED [ 27%] 388s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_convert_empty PASSED [ 27%] 388s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_converttiki_defaults PASSED [ 27%] 388s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_converttiki_includeunused PASSED [ 27%] 388s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_convert_empty PASSED [ 27%] 388s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_converttiki_defaults PASSED [ 27%] 388s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_converttiki_includeunused PASSED [ 27%] 388s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_help PASSED [ 27%] 388s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_simple_convert PASSED [ 27%] 388s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_nested_convert PASSED [ 27%] 388s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_comment_extraction PASSED [ 27%] 388s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_merge_with_template PASSED [ 27%] 388s tests/translate/convert/test_ts2po.py::TestTS2PO::test_blank PASSED [ 27%] 388s tests/translate/convert/test_ts2po.py::TestTS2PO::test_basic PASSED [ 27%] 388s tests/translate/convert/test_ts2po.py::TestTS2PO::test_unfinished PASSED [ 27%] 388s tests/translate/convert/test_ts2po.py::TestTS2PO::test_multiline PASSED [ 27%] 388s tests/translate/convert/test_ts2po.py::TestTS2PO::test_obsolete PASSED [ 28%] 388s tests/translate/convert/test_ts2po.py::TestTS2PO::test_comment PASSED [ 28%] 388s tests/translate/convert/test_ts2po.py::TestTS2PO::test_extracomment PASSED [ 28%] 388s tests/translate/convert/test_ts2po.py::TestTS2PO::test_emptycontext PASSED [ 28%] 388s tests/translate/convert/test_ts2po.py::TestTS2PO::test_plural PASSED [ 28%] 388s tests/translate/convert/test_ts2po.py::TestTS2PO::test_plural_unfinished PASSED [ 28%] 388s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_blank PASSED [ 28%] 388s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_basic PASSED [ 28%] 388s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_unfinished PASSED [ 28%] 388s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_multiline PASSED [ 28%] 388s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_obsolete PASSED [ 28%] 388s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_comment PASSED [ 28%] 388s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_extracomment PASSED [ 28%] 388s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_emptycontext PASSED [ 28%] 388s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_plural PASSED [ 28%] 388s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_plural_unfinished PASSED [ 28%] 388s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_help PASSED [ 28%] 388s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_convert_empty PASSED [ 28%] 388s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_keep_duplicates PASSED [ 28%] 388s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_drop_duplicates PASSED [ 28%] 388s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_simple PASSED [ 28%] 388s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_multiple_units PASSED [ 28%] 388s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_carriage_return PASSED [ 28%] 388s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_merge PASSED [ 28%] 388s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_no_segmentation PASSED [ 28%] 388s tests/translate/convert/test_txt2po.py::TestDoku2po::test_convert_empty PASSED [ 28%] 388s tests/translate/convert/test_txt2po.py::TestDoku2po::test_keep_duplicates PASSED [ 28%] 388s tests/translate/convert/test_txt2po.py::TestDoku2po::test_drop_duplicates PASSED [ 28%] 388s tests/translate/convert/test_txt2po.py::TestDoku2po::test_basic PASSED [ 28%] 388s tests/translate/convert/test_txt2po.py::TestDoku2po::test_bullet_list PASSED [ 28%] 388s tests/translate/convert/test_txt2po.py::TestDoku2po::test_numbered_list PASSED [ 28%] 388s tests/translate/convert/test_txt2po.py::TestDoku2po::test_spacing PASSED [ 28%] 388s tests/translate/convert/test_txt2po.py::TestDoku2po::test_merge PASSED [ 28%] 388s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_convert_empty PASSED [ 28%] 388s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_keep_duplicates PASSED [ 28%] 388s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_drop_duplicates PASSED [ 28%] 388s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_simple PASSED [ 28%] 388s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_multiple_units PASSED [ 28%] 388s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_carriage_return PASSED [ 28%] 388s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_merge PASSED [ 29%] 388s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_no_segmentation PASSED [ 29%] 388s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_help PASSED [ 29%] 388s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_basic PASSED [ 29%] 388s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_unicode PASSED [ 29%] 388s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_markmin PASSED [ 29%] 388s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_help PASSED [ 29%] 388s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert PASSED [ 29%] 388s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_minimal PASSED [ 29%] 388s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_basic PASSED [ 29%] 388s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_translatorcomments PASSED [ 29%] 388s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_autocomment PASSED [ 29%] 388s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_locations PASSED [ 29%] 388s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_fuzzy PASSED [ 29%] 388s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_plurals PASSED [ 29%] 388s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_minimal PASSED [ 29%] 388s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_basic PASSED [ 29%] 388s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_translatorcomments PASSED [ 29%] 388s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_autocomment PASSED [ 29%] 388s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_locations PASSED [ 29%] 388s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_fuzzy PASSED [ 29%] 388s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_plurals PASSED [ 29%] 388s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_help PASSED [ 29%] 388s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_simple_convert PASSED [ 29%] 388s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_minimal PASSED [ 29%] 388s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_basic PASSED [ 29%] 388s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_translatorcomments PASSED [ 29%] 388s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_autocomment PASSED [ 29%] 388s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_locations PASSED [ 29%] 388s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_fuzzy PASSED [ 29%] 388s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_plurals PASSED [ 29%] 388s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_help PASSED [ 29%] 388s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_preserve_filename PASSED [ 29%] 388s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_pot PASSED [ 29%] 388s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_po PASSED [ 29%] 388s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_remove_duplicates PASSED [ 29%] 388s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_convert_empty_YAML PASSED [ 29%] 388s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_simple_output PASSED [ 29%] 388s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_simple PASSED [ 29%] 388s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_nested PASSED [ 30%] 388s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_no_duplicates XFAIL [ 30%] 388s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_convert_with_template PASSED [ 30%] 388s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_comment_extraction PASSED [ 30%] 388s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_comment_extraction_nested PASSED [ 30%] 388s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_convert_empty_YAML PASSED [ 30%] 388s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_simple_output PASSED [ 30%] 388s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_simple PASSED [ 30%] 388s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_nested PASSED [ 30%] 388s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_no_duplicates XFAIL [ 30%] 388s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_convert_with_template PASSED [ 30%] 388s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_comment_extraction PASSED [ 30%] 388s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_comment_extraction_nested PASSED [ 30%] 388s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_help PASSED [ 30%] 388s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_empty_target PASSED [ 30%] 388s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_ellipsis PASSED [ 30%] 388s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_spacestart_spaceend PASSED [ 30%] 388s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_start_capitals PASSED [ 30%] 388s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_end_punc PASSED [ 30%] 388s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_combinations PASSED [ 30%] 388s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_nothing_to_do PASSED [ 30%] 388s tests/translate/filters/test_checks.py::test_defaults PASSED [ 30%] 388s tests/translate/filters/test_checks.py::test_construct PASSED [ 30%] 388s tests/translate/filters/test_checks.py::test_accelerator_markers PASSED [ 30%] 388s tests/translate/filters/test_checks.py::test_messages PASSED [ 30%] 388s tests/translate/filters/test_checks.py::test_accelerators PASSED [ 30%] 388s tests/translate/filters/test_checks.py::test_acceleratedvariables XFAIL [ 30%] 388s tests/translate/filters/test_checks.py::test_acronyms PASSED [ 30%] 388s tests/translate/filters/test_checks.py::test_blank PASSED [ 30%] 388s tests/translate/filters/test_checks.py::test_brackets PASSED [ 30%] 388s tests/translate/filters/test_checks.py::test_compendiumconflicts PASSED [ 30%] 388s tests/translate/filters/test_checks.py::test_doublequoting PASSED [ 30%] 388s tests/translate/filters/test_checks.py::test_doublespacing PASSED [ 30%] 388s tests/translate/filters/test_checks.py::test_doublewords PASSED [ 30%] 388s tests/translate/filters/test_checks.py::test_endpunc PASSED [ 30%] 388s tests/translate/filters/test_checks.py::test_endwhitespace PASSED [ 30%] 388s tests/translate/filters/test_checks.py::test_escapes PASSED [ 30%] 388s tests/translate/filters/test_checks.py::test_newlines PASSED [ 30%] 388s tests/translate/filters/test_checks.py::test_tabs PASSED [ 30%] 388s tests/translate/filters/test_checks.py::test_filepaths PASSED [ 31%] 388s tests/translate/filters/test_checks.py::test_kdecomments PASSED [ 31%] 388s tests/translate/filters/test_checks.py::test_long PASSED [ 31%] 388s tests/translate/filters/test_checks.py::test_musttranslatewords XFAIL [ 31%] 388s tests/translate/filters/test_checks.py::test_notranslatewords PASSED [ 31%] 388s tests/translate/filters/test_checks.py::test_numbers PASSED [ 31%] 388s tests/translate/filters/test_checks.py::test_persian_numbers PASSED [ 31%] 388s tests/translate/filters/test_checks.py::test_bengali_numbers PASSED [ 31%] 388s tests/translate/filters/test_checks.py::test_arabic_numbers PASSED [ 31%] 388s tests/translate/filters/test_checks.py::test_assamese_numbers PASSED [ 31%] 388s tests/translate/filters/test_checks.py::test_options PASSED [ 31%] 388s tests/translate/filters/test_checks.py::test_printf PASSED [ 31%] 388s tests/translate/filters/test_checks.py::test_pythonbraceformat PASSED [ 31%] 388s tests/translate/filters/test_checks.py::test_puncspacing PASSED [ 31%] 388s tests/translate/filters/test_checks.py::test_purepunc PASSED [ 31%] 388s tests/translate/filters/test_checks.py::test_sentencecount PASSED [ 31%] 388s tests/translate/filters/test_checks.py::test_short PASSED [ 31%] 388s tests/translate/filters/test_checks.py::test_singlequoting PASSED [ 31%] 388s tests/translate/filters/test_checks.py::test_vietnamese_singlequoting PASSED [ 31%] 388s tests/translate/filters/test_checks.py::test_persian_single_and_double_quote_fail_at_the_same_time XFAIL [ 31%] 388s tests/translate/filters/test_checks.py::test_persian_quoting PASSED [ 31%] 388s tests/translate/filters/test_checks.py::test_simplecaps PASSED [ 31%] 388s tests/translate/filters/test_checks.py::test_spellcheck SKIPPED (Spe...) [ 31%] 388s tests/translate/filters/test_checks.py::test_startcaps PASSED [ 31%] 388s tests/translate/filters/test_checks.py::test_startpunc PASSED [ 31%] 388s tests/translate/filters/test_checks.py::test_startwhitespace PASSED [ 31%] 388s tests/translate/filters/test_checks.py::test_unchanged PASSED [ 31%] 388s tests/translate/filters/test_checks.py::test_untranslated PASSED [ 31%] 388s tests/translate/filters/test_checks.py::test_validchars PASSED [ 31%] 388s tests/translate/filters/test_checks.py::test_minimalchecker PASSED [ 31%] 388s tests/translate/filters/test_checks.py::test_reducedchecker PASSED [ 31%] 388s tests/translate/filters/test_checks.py::test_variables_kde PASSED [ 31%] 388s tests/translate/filters/test_checks.py::test_variables_gnome PASSED [ 31%] 388s tests/translate/filters/test_checks.py::test_variables_mozilla PASSED [ 31%] 388s tests/translate/filters/test_checks.py::test_variables_openoffice PASSED [ 31%] 388s tests/translate/filters/test_checks.py::test_variables_cclicense PASSED [ 31%] 388s tests/translate/filters/test_checks.py::test_variables_ios PASSED [ 31%] 388s tests/translate/filters/test_checks.py::test_xmltags PASSED [ 31%] 388s tests/translate/filters/test_checks.py::test_bengali_mozilla_inverted_xmltags XFAIL [ 31%] 388s tests/translate/filters/test_checks.py::test_ooxmltags PASSED [ 32%] 388s tests/translate/filters/test_checks.py::test_functions PASSED [ 32%] 388s tests/translate/filters/test_checks.py::test_emails PASSED [ 32%] 388s tests/translate/filters/test_checks.py::test_urls PASSED [ 32%] 388s tests/translate/filters/test_checks.py::test_simpleplurals PASSED [ 32%] 388s tests/translate/filters/test_checks.py::test_nplurals PASSED [ 32%] 388s tests/translate/filters/test_checks.py::test_credits PASSED [ 32%] 388s tests/translate/filters/test_checks.py::test_gconf PASSED [ 32%] 388s tests/translate/filters/test_checks.py::test_validxml PASSED [ 32%] 388s tests/translate/filters/test_checks.py::test_hassuggestion PASSED [ 32%] 388s tests/translate/filters/test_checks.py::test_dialogsizes PASSED [ 32%] 389s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers PASSED [ 32%] 389s tests/translate/filters/test_checks.py::test_mozilla_no_accelerators_for_indic PASSED [ 32%] 389s tests/translate/filters/test_checks.py::test_noaccelerators_only_in_mozilla_checker PASSED [ 32%] 389s tests/translate/filters/test_checks.py::test_ensure_accelerators_not_in_target_if_not_in_source PASSED [ 32%] 389s tests/translate/filters/test_checks.py::test_ensure_bengali_languages_script_is_correct PASSED [ 32%] 389s tests/translate/filters/test_checks.py::test_category PASSED [ 32%] 389s tests/translate/filters/test_decoration.py::test_spacestart PASSED [ 32%] 389s tests/translate/filters/test_decoration.py::test_isvalidaccelerator PASSED [ 32%] 389s tests/translate/filters/test_decoration.py::test_find_marked_variables PASSED [ 32%] 389s tests/translate/filters/test_decoration.py::test_getnumbers PASSED [ 32%] 389s tests/translate/filters/test_decoration.py::test_getfunctions PASSED [ 32%] 389s tests/translate/filters/test_pofilter.py::TestPOFilter::test_simplepass PASSED [ 32%] 389s tests/translate/filters/test_pofilter.py::TestPOFilter::test_simplefail PASSED [ 32%] 389s tests/translate/filters/test_pofilter.py::TestPOFilter::test_variables_across_lines PASSED [ 32%] 389s tests/translate/filters/test_pofilter.py::TestPOFilter::test_ignore_if_already_marked PASSED [ 32%] 389s tests/translate/filters/test_pofilter.py::TestPOFilter::test_non_existent_check PASSED [ 32%] 389s tests/translate/filters/test_pofilter.py::TestPOFilter::test_list_all_tests PASSED [ 32%] 389s tests/translate/filters/test_pofilter.py::TestPOFilter::test_test_against_fuzzy PASSED [ 32%] 389s tests/translate/filters/test_pofilter.py::TestPOFilter::test_test_against_review PASSED [ 32%] 389s tests/translate/filters/test_pofilter.py::TestPOFilter::test_isfuzzy PASSED [ 32%] 389s tests/translate/filters/test_pofilter.py::TestPOFilter::test_isreview PASSED [ 32%] 389s tests/translate/filters/test_pofilter.py::TestPOFilter::test_notes PASSED [ 32%] 389s tests/translate/filters/test_pofilter.py::TestPOFilter::test_unicode PASSED [ 32%] 389s tests/translate/filters/test_pofilter.py::TestPOFilter::test_preconditions PASSED [ 32%] 389s tests/translate/filters/test_pofilter.py::TestPOFilter::test_msgid_comments PASSED [ 32%] 389s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_simplepass PASSED [ 32%] 389s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_simplefail PASSED [ 32%] 389s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_variables_across_lines PASSED [ 32%] 389s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_ignore_if_already_marked PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_non_existent_check PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_list_all_tests PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_test_against_fuzzy PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_test_against_review PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_isfuzzy PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_isreview PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_notes PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_unicode PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_preconditions PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_simplepass PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_simplefail PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_variables_across_lines PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_ignore_if_already_marked PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_non_existent_check PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_list_all_tests PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_notes PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_unicode PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_preconditions PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_test_against_fuzzy PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_test_against_review PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_isfuzzy PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_isreview PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_simplepass PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_simplefail PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_variables_across_lines PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_ignore_if_already_marked PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_non_existent_check PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_list_all_tests PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_test_against_fuzzy PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_test_against_review PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_isfuzzy PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_isreview PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_notes PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_unicode PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_preconditions PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_msgid_comments PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_cedillas PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_niciun PASSED [ 33%] 389s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_nicio PASSED [ 34%] 389s tests/translate/filters/test_prefilters.py::test_removekdecomments PASSED [ 34%] 389s tests/translate/filters/test_prefilters.py::test_filterwordswithpunctuation PASSED [ 34%] 389s tests/translate/lang/test_af.py::test_sentences PASSED [ 34%] 389s tests/translate/lang/test_af.py::test_capsstart PASSED [ 34%] 389s tests/translate/lang/test_af.py::test_transliterate_cyrillic PASSED [ 34%] 389s tests/translate/lang/test_am.py::test_punctranslate PASSED [ 34%] 389s tests/translate/lang/test_am.py::test_sentences PASSED [ 34%] 389s tests/translate/lang/test_ar.py::test_punctranslate PASSED [ 34%] 389s tests/translate/lang/test_ar.py::test_sentences PASSED [ 34%] 389s tests/translate/lang/test_common.py::test_characters PASSED [ 34%] 389s tests/translate/lang/test_common.py::test_words PASSED [ 34%] 389s tests/translate/lang/test_common.py::test_word_khmer PASSED [ 34%] 389s tests/translate/lang/test_common.py::test_sentences PASSED [ 34%] 389s tests/translate/lang/test_common.py::test_capsstart PASSED [ 34%] 389s tests/translate/lang/test_common.py::test_numstart PASSED [ 34%] 389s tests/translate/lang/test_common.py::test_punctranslate PASSED [ 34%] 389s tests/translate/lang/test_common.py::test_length_difference PASSED [ 34%] 389s tests/translate/lang/test_common.py::test_alter_length PASSED [ 34%] 389s tests/translate/lang/test_data.py::test_normalise_code PASSED [ 34%] 389s tests/translate/lang/test_data.py::test_simplify_to_common PASSED [ 34%] 389s tests/translate/lang/test_data.py::test_is_rtl PASSED [ 34%] 389s tests/translate/lang/test_el.py::test_punctranslate PASSED [ 34%] 389s tests/translate/lang/test_el.py::test_sentences PASSED [ 34%] 389s tests/translate/lang/test_es.py::test_punctranslate PASSED [ 34%] 389s tests/translate/lang/test_es.py::test_sentences PASSED [ 34%] 389s tests/translate/lang/test_fa.py::test_punctranslate PASSED [ 34%] 389s tests/translate/lang/test_fa.py::test_sentences PASSED [ 34%] 389s tests/translate/lang/test_factory.py::test_getlanguage PASSED [ 34%] 389s tests/translate/lang/test_factory.py::test_get_all_languages PASSED [ 34%] 389s tests/translate/lang/test_fr.py::test_punctranslate PASSED [ 34%] 389s tests/translate/lang/test_fr.py::test_sentences PASSED [ 34%] 389s tests/translate/lang/test_hy.py::test_punctranslate PASSED [ 34%] 389s tests/translate/lang/test_hy.py::test_sentences PASSED [ 34%] 389s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_identify_lang PASSED [ 34%] 389s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_identify_store PASSED [ 34%] 389s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_bad_init_data PASSED [ 34%] 389s tests/translate/lang/test_ja.py::test_punctranslate PASSED [ 34%] 389s tests/translate/lang/test_ja.py::test_sentences PASSED [ 34%] 389s tests/translate/lang/test_km.py::test_punctranslate PASSED [ 35%] 389s tests/translate/lang/test_km.py::test_sentences PASSED [ 35%] 389s tests/translate/lang/test_ko.py::test_punctranslate PASSED [ 35%] 389s tests/translate/lang/test_ko.py::test_sentences PASSED [ 35%] 389s tests/translate/lang/test_ne.py::test_punctranslate PASSED [ 35%] 389s tests/translate/lang/test_ne.py::test_sentences PASSED [ 35%] 389s tests/translate/lang/test_nqo.py::test_punctranslate PASSED [ 35%] 389s tests/translate/lang/test_nqo.py::test_sentences PASSED [ 35%] 389s tests/translate/lang/test_or.py::test_punctranslate PASSED [ 35%] 389s tests/translate/lang/test_or.py::test_country_code PASSED [ 35%] 389s tests/translate/lang/test_or.py::test_sentences PASSED [ 35%] 389s tests/translate/lang/test_poedit.py::test_isocode PASSED [ 35%] 389s tests/translate/lang/test_ro.py::test_cedillas PASSED [ 35%] 389s tests/translate/lang/test_ro.py::test_niciun PASSED [ 35%] 389s tests/translate/lang/test_scn.py::test_italianisms PASSED [ 35%] 389s tests/translate/lang/test_scn.py::test_vocalism PASSED [ 35%] 389s tests/translate/lang/test_scn.py::test_suffixes PASSED [ 35%] 389s tests/translate/lang/test_team.py::test_simple PASSED [ 35%] 389s tests/translate/lang/test_th.py::test_punctranslate PASSED [ 35%] 389s tests/translate/lang/test_th.py::test_sentences PASSED [ 35%] 389s tests/translate/lang/test_tr.py::test_sentences PASSED [ 35%] 389s tests/translate/lang/test_uk.py::test_sentences PASSED [ 35%] 389s tests/translate/lang/test_vi.py::test_punctranslate PASSED [ 35%] 389s tests/translate/lang/test_vi.py::test_sentences PASSED [ 35%] 389s tests/translate/lang/test_zh.py::test_punctranslate PASSED [ 35%] 389s tests/translate/lang/test_zh.py::test_sentences PASSED [ 35%] 389s tests/translate/misc/test_deprecation.py::TestDeprecation::test_deprecated_decorator PASSED [ 35%] 389s tests/translate/misc/test_deprecation.py::TestDeprecation::test_no_deprecated_decorator PASSED [ 35%] 389s tests/translate/misc/test_dictutils.py::test_cidict_has_key PASSED [ 35%] 389s tests/translate/misc/test_dictutils.py::test_cidict_pop PASSED [ 35%] 389s tests/translate/misc/test_dictutils.py::test_cidict_getitem PASSED [ 35%] 389s tests/translate/misc/test_dictutils.py::test_cidict_setitem PASSED [ 35%] 389s tests/translate/misc/test_dictutils.py::test_cidict_delitem PASSED [ 35%] 389s tests/translate/misc/test_multistring.py::TestMultistring::test_constructor PASSED [ 35%] 389s tests/translate/misc/test_multistring.py::TestMultistring::test_constructor_validation PASSED [ 35%] 389s tests/translate/misc/test_multistring.py::TestMultistring::test_repr PASSED [ 35%] 389s tests/translate/misc/test_multistring.py::TestMultistring::test_replace PASSED [ 35%] 389s tests/translate/misc/test_multistring.py::TestMultistring::test_comparison PASSED [ 35%] 389s tests/translate/misc/test_multistring.py::TestMultistring::test_coercion PASSED [ 35%] 389s tests/translate/misc/test_multistring.py::TestMultistring::test_unicode_coercion PASSED [ 36%] 389s tests/translate/misc/test_multistring.py::TestMultistring::test_list_coercion PASSED [ 36%] 389s tests/translate/misc/test_multistring.py::TestMultistring::test_multistring_hash PASSED [ 36%] 389s tests/translate/misc/test_multistring.py::TestMultistring::test_bool PASSED [ 36%] 389s tests/translate/misc/test_optrecurse.py::TestRecursiveOptionParser::test_splitext PASSED [ 36%] 389s tests/translate/misc/test_optrecurse.py::TestRecursiveOptionParser::test_outputfile_receives_bytes PASSED [ 36%] 389s tests/translate/misc/test_progressbar.py::test_hashprogressbar PASSED [ 36%] 389s tests/translate/misc/test_quote.py::test_find_all PASSED [ 36%] 389s tests/translate/misc/test_quote.py::test_extract PASSED [ 36%] 389s tests/translate/misc/test_quote.py::test_extractwithoutquotes PASSED [ 36%] 389s tests/translate/misc/test_quote.py::test_extractwithoutquotes_passfunc PASSED [ 36%] 389s tests/translate/misc/test_quote.py::test_stripcomment PASSED [ 36%] 389s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode PASSED [ 36%] 389s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode_iso_8859_1 PASSED [ 36%] 389s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode_ascii PASSED [ 36%] 389s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode_unicode_range PASSED [ 36%] 389s tests/translate/misc/test_quote.py::TestEncoding::test_java_utf8_properties_encode PASSED [ 36%] 389s tests/translate/misc/test_quote.py::TestEncoding::test_escapespace PASSED [ 36%] 389s tests/translate/misc/test_quote.py::TestEncoding::test_mozillaescapemarginspaces PASSED [ 36%] 389s tests/translate/misc/test_quote.py::TestEncoding::test_mozilla_control_escapes PASSED [ 36%] 389s tests/translate/misc/test_quote.py::TestEncoding::test_propertiesdecode PASSED [ 36%] 389s tests/translate/misc/test_quote.py::TestEncoding::test_controlchars PASSED [ 36%] 389s tests/translate/misc/test_quote.py::TestEncoding::test_properties_decode_slashu PASSED [ 36%] 389s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding PASSED [ 36%] 389s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_existing_entities PASSED [ 36%] 389s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_passthrough PASSED [ 36%] 389s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_nonentities PASSED [ 36%] 389s tests/translate/misc/test_xml_helpers.py::TestReindent::test_indent_four_spaces PASSED [ 36%] 389s tests/translate/misc/test_xml_helpers.py::TestReindent::test_indent_tab PASSED [ 36%] 389s tests/translate/search/test_lshtein.py::TestLevenshtein::test_basic_distance PASSED [ 36%] 389s tests/translate/search/test_lshtein.py::TestLevenshtein::test_basic_similarity PASSED [ 36%] 389s tests/translate/search/test_lshtein.py::TestLevenshtein::test_long_similarity PASSED [ 36%] 389s tests/translate/search/test_match.py::TestMatch::test_matching PASSED [ 36%] 389s tests/translate/search/test_match.py::TestMatch::test_multiple_store PASSED [ 36%] 389s tests/translate/search/test_match.py::TestMatch::test_extendtm PASSED [ 36%] 389s tests/translate/search/test_match.py::TestMatch::test_terminology PASSED [ 36%] 389s tests/translate/search/test_match.py::TestMatch::test_brackets PASSED [ 36%] 389s tests/translate/search/test_match.py::TestMatch::test_past_tences PASSED [ 36%] 389s tests/translate/search/test_match.py::TestMatch::test_space_mismatch PASSED [ 36%] 389s tests/translate/search/test_match.py::TestMatch::test_hyphen_mismatch PASSED [ 37%] 389s tests/translate/search/test_terminology.py::TestTerminology::test_basic PASSED [ 37%] 389s tests/translate/services/test_tmserver.py::TestTMServer::test_import PASSED [ 37%] 390s tests/translate/services/test_tmserver.py::TestTMServer::test_server PASSED [ 37%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_parse PASSED [ 37%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_tree PASSED [ 37%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_add PASSED [ 37%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_contains PASSED [ 37%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_getitem PASSED [ 37%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_getslice PASSED [ 37%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_iter PASSED [ 37%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_len PASSED [ 37%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_mul PASSED [ 37%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_elem_offset PASSED [ 37%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_elem_at_offset PASSED [ 37%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_find PASSED [ 37%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_find_elems_with PASSED [ 37%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_flatten PASSED [ 37%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case1 PASSED [ 37%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case2 PASSED [ 37%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case3 PASSED [ 37%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case4 PASSED [ 37%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_insert PASSED [ 37%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_isleaf PASSED [ 37%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_prune PASSED [ 37%] 390s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_base_placeables PASSED [ 37%] 390s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_general_placeables XFAIL [ 37%] 390s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_xliff_placeables XFAIL [ 37%] 390s tests/translate/storage/placeables/test_general.py::test_placeable_numbers PASSED [ 37%] 390s tests/translate/storage/placeables/test_general.py::test_placeable_newline PASSED [ 37%] 390s tests/translate/storage/placeables/test_general.py::test_placeable_alt_attr PASSED [ 37%] 390s tests/translate/storage/placeables/test_general.py::test_placeable_qt_formatting PASSED [ 37%] 390s tests/translate/storage/placeables/test_general.py::test_placeable_camelcase PASSED [ 37%] 390s tests/translate/storage/placeables/test_general.py::test_placeable_space PASSED [ 37%] 390s tests/translate/storage/placeables/test_general.py::test_placeable_punctuation PASSED [ 37%] 390s tests/translate/storage/placeables/test_general.py::test_placeable_xml_entity PASSED [ 37%] 390s tests/translate/storage/placeables/test_general.py::test_placeable_xml_tag PASSED [ 37%] 390s tests/translate/storage/placeables/test_general.py::test_placeable_option PASSED [ 37%] 390s tests/translate/storage/placeables/test_general.py::test_placeable_file PASSED [ 37%] 390s tests/translate/storage/placeables/test_general.py::test_placeable_email PASSED [ 38%] 390s tests/translate/storage/placeables/test_general.py::test_placeable_caps PASSED [ 38%] 390s tests/translate/storage/placeables/test_general.py::test_placeable_formatting PASSED [ 38%] 390s tests/translate/storage/placeables/test_general.py::test_placeable_doubleat PASSED [ 38%] 390s tests/translate/storage/placeables/test_general.py::test_placeable_brace PASSED [ 38%] 390s tests/translate/storage/placeables/test_general.py::test_python_placeable PASSED [ 38%] 390s tests/translate/storage/placeables/test_lisa.py::test_xml_to_strelem PASSED [ 38%] 390s tests/translate/storage/placeables/test_lisa.py::test_xml_space PASSED [ 38%] 390s tests/translate/storage/placeables/test_lisa.py::test_chunk_list PASSED [ 38%] 390s tests/translate/storage/placeables/test_lisa.py::test_set_strelem_to_xml PASSED [ 38%] 390s tests/translate/storage/placeables/test_lisa.py::test_unknown_xml_placeable PASSED [ 38%] 390s tests/translate/storage/placeables/test_terminology.py::TestTerminologyPlaceable::test_simple_terminology PASSED [ 38%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_isfuzzy PASSED [ 38%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_create PASSED [ 38%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_eq PASSED [ 38%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escapes PASSED [ 38%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_difficult_escapes PASSED [ 38%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_note_sanity PASSED [ 38%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_line_number_default PASSED [ 38%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_target PASSED [ 38%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_rich_get PASSED [ 38%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_rich_set PASSED [ 38%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_message_with_newline PASSED [ 38%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quotes_with_newline PASSED [ 38%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_message_with_newline_in_xml PASSED [ 38%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_twitter PASSED [ 38%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quote PASSED [ 38%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_question PASSED [ 38%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_double_space PASSED [ 38%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_leading_space PASSED [ 38%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_tailing_space PASSED [ 38%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_xml_entities PASSED [ 38%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code PASSED [ 38%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code_quote PASSED [ 38%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code_quote_newline PASSED [ 38%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_arrows PASSED [ 38%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_link PASSED [ 38%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_link_and_text PASSED [ 38%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_blank_string PASSED [ 38%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_escape_message_with_newline PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_invalid_lang PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_quote PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_leading_space PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_trailing_space PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_with_ampersand PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_double_space PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_deep_double_space PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_complex_xml PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quoted_newlines PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_message_with_newline PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_message_with_newline_in_xml PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_twitter PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_question PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quote PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_double_space PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_space PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_newlines PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_xml_entities PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_code PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_arrows PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_link PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_link_and_text PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_blank_string PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_space PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_spaces PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_escaped_newline PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_escaped_newline PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_spaces PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_newline PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_many_quotes PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_blank_string_again PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_double_quotes_string PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_newline_in_string PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_not_translatable_string PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_parse_message_with_newline PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_parse_message_with_comments PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_quote PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_leading_space PASSED [ 39%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_leading_space_quoted PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_trailing_space PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_trailing_space_quoted PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_with_ampersand PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_double_space_quoted PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_deep_double_space_quoted PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_complex_xml PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_unicode PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_unescaped PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_escaped_alone PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_escaped_full PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_escaped_percent PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_percent PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_quote PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_unparied_quote PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escape_slash PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escape_ignored PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escaped_quote_end PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_xml PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_create_blank PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_add PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_remove PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_find PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_parse PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_files PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_save PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_extensions PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_mimetypes PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_translate PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_nonascii PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_default_handlings PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_filename PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_filename_default_language PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_invalid_filename PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_namespaces PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_serialize PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_add_formatting PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity PASSED [ 40%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_invalid_entity PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_indent PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_markup PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_parse_decimal_plurals PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_to_plurals PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity_add_edit PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity_add_noedit PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_remove PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_set PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_others PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_quotes_set PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_xliff_g PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_xliff_namespace PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_zh_hk PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_b_zh_hk PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_missing_plural PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_empty_missing_plural_tag PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_removeunit PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_cdata PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_cdata_text PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_prefix PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_rtl PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_tail PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_translatable_marking PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_escaping PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_isfuzzy PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_create PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_eq PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_escapes PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_difficult_escapes PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_note_sanity PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_line_number_default PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_target PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_rich_get PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_rich_set PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_escape_quote PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_create_blank PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_add PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_remove PASSED [ 41%] 390s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_find PASSED [ 42%] 390s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_parse PASSED [ 42%] 390s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_files PASSED [ 42%] 390s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_save PASSED [ 42%] 390s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_extensions PASSED [ 42%] 390s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_mimetypes PASSED [ 42%] 390s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_translate PASSED [ 42%] 390s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_markup PASSED [ 42%] 390s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_nonascii PASSED [ 42%] 390s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_plural PASSED [ 42%] 390s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_isfuzzy PASSED [ 42%] 390s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_create PASSED [ 42%] 390s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_eq PASSED [ 42%] 390s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_escapes PASSED [ 42%] 390s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_difficult_escapes PASSED [ 42%] 390s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_note_sanity PASSED [ 42%] 390s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_line_number_default PASSED [ 42%] 390s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_target PASSED [ 42%] 390s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_rich_get PASSED [ 42%] 390s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_rich_set PASSED [ 42%] 390s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_escape_quote PASSED [ 42%] 390s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_create_blank PASSED [ 42%] 390s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_add PASSED [ 42%] 390s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_remove PASSED [ 42%] 390s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_find PASSED [ 42%] 390s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_parse PASSED [ 42%] 390s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_files PASSED [ 42%] 390s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_save PASSED [ 42%] 390s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_extensions PASSED [ 42%] 390s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_mimetypes PASSED [ 42%] 390s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_translate PASSED [ 42%] 390s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_markup PASSED [ 42%] 390s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_nonascii PASSED [ 42%] 390s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_quote_escape PASSED [ 42%] 390s tests/translate/storage/test_base.py::TestTranslationUnit::test_isfuzzy PASSED [ 42%] 390s tests/translate/storage/test_base.py::TestTranslationUnit::test_create PASSED [ 42%] 390s tests/translate/storage/test_base.py::TestTranslationUnit::test_eq PASSED [ 42%] 390s tests/translate/storage/test_base.py::TestTranslationUnit::test_target PASSED [ 42%] 390s tests/translate/storage/test_base.py::TestTranslationUnit::test_escapes PASSED [ 42%] 390s tests/translate/storage/test_base.py::TestTranslationUnit::test_difficult_escapes PASSED [ 43%] 390s tests/translate/storage/test_base.py::TestTranslationUnit::test_note_sanity PASSED [ 43%] 390s tests/translate/storage/test_base.py::TestTranslationUnit::test_line_number_default PASSED [ 43%] 390s tests/translate/storage/test_base.py::TestTranslationUnit::test_rich_get PASSED [ 43%] 390s tests/translate/storage/test_base.py::TestTranslationUnit::test_rich_set PASSED [ 43%] 390s tests/translate/storage/test_base.py::TestTranslationStore::test_create_blank PASSED [ 43%] 390s tests/translate/storage/test_base.py::TestTranslationStore::test_add PASSED [ 43%] 390s tests/translate/storage/test_base.py::TestTranslationStore::test_remove PASSED [ 43%] 390s tests/translate/storage/test_base.py::TestTranslationStore::test_find PASSED [ 43%] 390s tests/translate/storage/test_base.py::TestTranslationStore::test_translate PASSED [ 43%] 390s tests/translate/storage/test_base.py::TestTranslationStore::test_parse PASSED [ 43%] 390s tests/translate/storage/test_base.py::TestTranslationStore::test_files PASSED [ 43%] 390s tests/translate/storage/test_base.py::TestTranslationStore::test_save PASSED [ 43%] 390s tests/translate/storage/test_base.py::TestTranslationStore::test_markup PASSED [ 43%] 390s tests/translate/storage/test_base.py::TestTranslationStore::test_nonascii PASSED [ 43%] 390s tests/translate/storage/test_base.py::TestTranslationStore::test_extensions PASSED [ 43%] 390s tests/translate/storage/test_base.py::TestTranslationStore::test_mimetypes PASSED [ 43%] 390s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_create_empty_bundle PASSED [ 43%] 390s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_create_bundle_from_nonexistent_file PASSED [ 43%] 390s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_save_bundle PASSED [ 43%] 390s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_cross_device_save PASSED [ 43%] 390s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_replace_project_zip PASSED [ 43%] 390s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle PASSED [ 43%] 390s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_update_file_in_bundle PASSED [ 43%] 390s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle PASSED [ 43%] 390s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_invalid_bundle_error PASSED [ 43%] 390s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_isfuzzy PASSED [ 43%] 390s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_create PASSED [ 43%] 390s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_eq PASSED [ 43%] 390s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_target PASSED [ 43%] 390s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_escapes PASSED [ 43%] 390s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_line_number_default PASSED [ 43%] 390s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_rich_get PASSED [ 43%] 390s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_rich_set PASSED [ 43%] 390s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_difficult_escapes PASSED [ 43%] 390s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_newlines PASSED [ 43%] 390s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_istranslated PASSED [ 43%] 390s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_note_sanity PASSED [ 43%] 390s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_create_blank PASSED [ 43%] 390s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_add PASSED [ 44%] 390s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_remove PASSED [ 44%] 390s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_find PASSED [ 44%] 390s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_translate PASSED [ 44%] 390s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_parse PASSED [ 44%] 390s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_files PASSED [ 44%] 390s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_save PASSED [ 44%] 390s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_markup PASSED [ 44%] 390s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_nonascii PASSED [ 44%] 390s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_extensions PASSED [ 44%] 390s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_mimetypes PASSED [ 44%] 390s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_checksum PASSED [ 44%] 390s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_isfuzzy PASSED [ 44%] 390s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_create PASSED [ 44%] 390s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_eq PASSED [ 44%] 390s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_target PASSED [ 44%] 390s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_escapes PASSED [ 44%] 390s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_difficult_escapes PASSED [ 44%] 390s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_note_sanity PASSED [ 44%] 390s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_line_number_default PASSED [ 44%] 390s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_rich_get PASSED [ 44%] 390s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_rich_set PASSED [ 44%] 390s tests/translate/storage/test_csvl10n.py::TestCSV::test_create_blank PASSED [ 44%] 390s tests/translate/storage/test_csvl10n.py::TestCSV::test_add PASSED [ 44%] 390s tests/translate/storage/test_csvl10n.py::TestCSV::test_remove PASSED [ 44%] 390s tests/translate/storage/test_csvl10n.py::TestCSV::test_find PASSED [ 44%] 390s tests/translate/storage/test_csvl10n.py::TestCSV::test_translate PASSED [ 44%] 390s tests/translate/storage/test_csvl10n.py::TestCSV::test_parse PASSED [ 44%] 390s tests/translate/storage/test_csvl10n.py::TestCSV::test_files PASSED [ 44%] 390s tests/translate/storage/test_csvl10n.py::TestCSV::test_save PASSED [ 44%] 390s tests/translate/storage/test_csvl10n.py::TestCSV::test_markup PASSED [ 44%] 390s tests/translate/storage/test_csvl10n.py::TestCSV::test_nonascii PASSED [ 44%] 390s tests/translate/storage/test_csvl10n.py::TestCSV::test_extensions PASSED [ 44%] 390s tests/translate/storage/test_csvl10n.py::TestCSV::test_mimetypes PASSED [ 44%] 390s tests/translate/storage/test_csvl10n.py::TestCSV::test_singlequoting PASSED [ 44%] 390s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8 PASSED [ 44%] 390s tests/translate/storage/test_csvl10n.py::TestCSV::test_dialect PASSED [ 44%] 390s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8_sig PASSED [ 44%] 390s tests/translate/storage/test_csvl10n.py::TestCSV::test_default PASSED [ 44%] 390s tests/translate/storage/test_csvl10n.py::TestCSV::test_location_is_parsed PASSED [ 45%] 390s tests/translate/storage/test_csvl10n.py::TestCSV::test_context_is_parsed PASSED [ 45%] 390s tests/translate/storage/test_csvl10n.py::TestCSV::test_newline PASSED [ 45%] 390s tests/translate/storage/test_csvl10n.py::TestCSV::test_parse_sample PASSED [ 45%] 390s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8_detection PASSED [ 45%] 390s tests/translate/storage/test_csvl10n.py::TestCSV::test_encoding PASSED [ 45%] 390s tests/translate/storage/test_csvl10n.py::TestCSV::test_corrupt PASSED [ 45%] 390s tests/translate/storage/test_csvl10n.py::TestCSV::test_encoding_save PASSED [ 45%] 390s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_id_target PASSED [ 45%] 390s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_context_target PASSED [ 45%] 390s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_key_translation PASSED [ 45%] 390s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_roundtrip PASSED [ 45%] 390s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_context_roundtrip PASSED [ 45%] 390s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_id_context_roundtrip PASSED [ 45%] 390s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_target_only_roundtrip PASSED [ 45%] 390s tests/translate/storage/test_csvl10n.py::TestCSV::test_quote_nonnumeric_handling PASSED [ 45%] 390s tests/translate/storage/test_csvl10n.py::TestCSV::test_quote_nonnumeric_with_single_quotes PASSED [ 45%] 390s tests/translate/storage/test_csvl10n.py::TestCSV::test_line_number PASSED [ 45%] 390s tests/translate/storage/test_dtd.py::test_roundtrip_quoting PASSED [ 45%] 390s tests/translate/storage/test_dtd.py::test_quotefordtd_unimplemented_cases XFAIL [ 45%] 390s tests/translate/storage/test_dtd.py::test_quotefordtd PASSED [ 45%] 390s tests/translate/storage/test_dtd.py::test_unquotefromdtd_unimplemented_cases XFAIL [ 45%] 390s tests/translate/storage/test_dtd.py::test_unquotefromdtd PASSED [ 45%] 390s tests/translate/storage/test_dtd.py::test_android_roundtrip_quoting PASSED [ 45%] 390s tests/translate/storage/test_dtd.py::test_quoteforandroid PASSED [ 45%] 390s tests/translate/storage/test_dtd.py::test_unquotefromandroid PASSED [ 45%] 390s tests/translate/storage/test_dtd.py::test_removeinvalidamp PASSED [ 45%] 390s tests/translate/storage/test_dtd.py::TestDTDUnit::test_isfuzzy PASSED [ 45%] 390s tests/translate/storage/test_dtd.py::TestDTDUnit::test_create PASSED [ 45%] 390s tests/translate/storage/test_dtd.py::TestDTDUnit::test_eq PASSED [ 45%] 390s tests/translate/storage/test_dtd.py::TestDTDUnit::test_escapes PASSED [ 45%] 390s tests/translate/storage/test_dtd.py::TestDTDUnit::test_difficult_escapes PASSED [ 45%] 390s tests/translate/storage/test_dtd.py::TestDTDUnit::test_note_sanity PASSED [ 45%] 390s tests/translate/storage/test_dtd.py::TestDTDUnit::test_line_number_default PASSED [ 45%] 390s tests/translate/storage/test_dtd.py::TestDTDUnit::test_target PASSED [ 45%] 390s tests/translate/storage/test_dtd.py::TestDTDUnit::test_rich_get PASSED [ 45%] 390s tests/translate/storage/test_dtd.py::TestDTDUnit::test_rich_set PASSED [ 45%] 390s tests/translate/storage/test_dtd.py::TestDTD::test_create_blank PASSED [ 45%] 390s tests/translate/storage/test_dtd.py::TestDTD::test_add PASSED [ 45%] 390s tests/translate/storage/test_dtd.py::TestDTD::test_remove PASSED [ 46%] 390s tests/translate/storage/test_dtd.py::TestDTD::test_find PASSED [ 46%] 390s tests/translate/storage/test_dtd.py::TestDTD::test_parse PASSED [ 46%] 390s tests/translate/storage/test_dtd.py::TestDTD::test_files PASSED [ 46%] 390s tests/translate/storage/test_dtd.py::TestDTD::test_save PASSED [ 46%] 390s tests/translate/storage/test_dtd.py::TestDTD::test_extensions PASSED [ 46%] 390s tests/translate/storage/test_dtd.py::TestDTD::test_mimetypes PASSED [ 46%] 390s tests/translate/storage/test_dtd.py::TestDTD::test_translate PASSED [ 46%] 390s tests/translate/storage/test_dtd.py::TestDTD::test_markup PASSED [ 46%] 390s tests/translate/storage/test_dtd.py::TestDTD::test_nonascii PASSED [ 46%] 390s tests/translate/storage/test_dtd.py::TestDTD::test_simpleentity PASSED [ 46%] 390s tests/translate/storage/test_dtd.py::TestDTD::test_blanklines PASSED [ 46%] 390s tests/translate/storage/test_dtd.py::TestDTD::test_simpleentity_source PASSED [ 46%] 390s tests/translate/storage/test_dtd.py::TestDTD::test_hashcomment_source PASSED [ 46%] 390s tests/translate/storage/test_dtd.py::TestDTD::test_commentclosing PASSED [ 46%] 390s tests/translate/storage/test_dtd.py::TestDTD::test_commententity PASSED [ 46%] 390s tests/translate/storage/test_dtd.py::TestDTD::test_newlines_in_entity PASSED [ 46%] 390s tests/translate/storage/test_dtd.py::TestDTD::test_conflate_comments PASSED [ 46%] 390s tests/translate/storage/test_dtd.py::TestDTD::test_localisation_notes PASSED [ 46%] 390s tests/translate/storage/test_dtd.py::TestDTD::test_entitityreference_in_source PASSED [ 46%] 390s tests/translate/storage/test_dtd.py::TestDTD::test_entitityreference_order_in_source PASSED [ 46%] 390s tests/translate/storage/test_dtd.py::TestDTD::test_comment_following XFAIL [ 46%] 390s tests/translate/storage/test_dtd.py::TestDTD::test_comment_newline_space_closing PASSED [ 46%] 390s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting XFAIL [ 46%] 390s tests/translate/storage/test_dtd.py::TestDTD::test_missing_quotes PASSED [ 46%] 390s tests/translate/storage/test_dtd.py::TestDTD::test_entity_escaping PASSED [ 46%] 390s tests/translate/storage/test_dtd.py::TestDTD::test_entity_escaping_roundtrip PASSED [ 46%] 390s tests/translate/storage/test_dtd.py::TestDTD::test_multiple_blank_lines PASSED [ 46%] 390s tests/translate/storage/test_dtd.py::TestDTD::test_entity_with_extra_spaces PASSED [ 46%] 390s tests/translate/storage/test_dtd.py::TestDTD::test_mixed_content_preservation PASSED [ 46%] 390s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_create_blank PASSED [ 46%] 390s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_add PASSED [ 46%] 390s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_remove PASSED [ 46%] 390s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_find PASSED [ 46%] 390s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_parse PASSED [ 46%] 390s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_files PASSED [ 46%] 390s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_save PASSED [ 46%] 390s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_extensions PASSED [ 46%] 390s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_mimetypes PASSED [ 46%] 390s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_translate PASSED [ 47%] 390s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_markup PASSED [ 47%] 390s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_nonascii PASSED [ 47%] 390s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_single_quote_escape PASSED [ 47%] 390s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_single_quote_escape_parse_and_convert_back PASSED [ 47%] 390s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_double_quote_escape PASSED [ 47%] 390s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_double_quote_escape_parse_and_convert_back PASSED [ 47%] 390s tests/translate/storage/test_factory.py::TestPOFactory::test_getclass PASSED [ 47%] 390s tests/translate/storage/test_factory.py::TestPOFactory::test_getobject_store PASSED [ 47%] 390s tests/translate/storage/test_factory.py::TestPOFactory::test_getobject PASSED [ 47%] 390s tests/translate/storage/test_factory.py::TestPOFactory::test_get_noname_object PASSED [ 47%] 390s tests/translate/storage/test_factory.py::TestPOFactory::test_gzfile PASSED [ 47%] 390s tests/translate/storage/test_factory.py::TestPOFactory::test_bz2file PASSED [ 47%] 390s tests/translate/storage/test_factory.py::TestPOFactory::test_directory PASSED [ 47%] 390s tests/translate/storage/test_factory.py::TestXliffFactory::test_getclass PASSED [ 47%] 390s tests/translate/storage/test_factory.py::TestXliffFactory::test_getobject_store PASSED [ 47%] 390s tests/translate/storage/test_factory.py::TestXliffFactory::test_getobject PASSED [ 47%] 390s tests/translate/storage/test_factory.py::TestXliffFactory::test_get_noname_object PASSED [ 47%] 390s tests/translate/storage/test_factory.py::TestXliffFactory::test_gzfile PASSED [ 47%] 390s tests/translate/storage/test_factory.py::TestXliffFactory::test_bz2file PASSED [ 47%] 390s tests/translate/storage/test_factory.py::TestXliffFactory::test_directory PASSED [ 47%] 390s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getclass PASSED [ 47%] 390s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getobject_store PASSED [ 47%] 390s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getobject PASSED [ 47%] 390s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_get_noname_object PASSED [ 47%] 390s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_gzfile PASSED [ 47%] 390s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_bz2file PASSED [ 47%] 390s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_directory PASSED [ 47%] 390s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getclass PASSED [ 47%] 390s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getobject_store PASSED [ 47%] 390s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getobject PASSED [ 47%] 390s tests/translate/storage/test_factory.py::TestWordfastFactory::test_get_noname_object PASSED [ 47%] 390s tests/translate/storage/test_factory.py::TestWordfastFactory::test_gzfile PASSED [ 47%] 390s tests/translate/storage/test_factory.py::TestWordfastFactory::test_bz2file PASSED [ 47%] 390s tests/translate/storage/test_factory.py::TestWordfastFactory::test_directory PASSED [ 47%] 390s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_isfuzzy PASSED [ 47%] 390s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_create PASSED [ 47%] 390s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_eq PASSED [ 47%] 390s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_escapes PASSED [ 47%] 390s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_difficult_escapes PASSED [ 48%] 390s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_note_sanity PASSED [ 48%] 390s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_line_number_default PASSED [ 48%] 390s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_target PASSED [ 48%] 390s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_rich_get PASSED [ 48%] 390s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_rich_set PASSED [ 48%] 390s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_create_blank PASSED [ 48%] 390s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_add PASSED [ 48%] 390s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_remove PASSED [ 48%] 390s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_find PASSED [ 48%] 390s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_parse PASSED [ 48%] 390s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_files PASSED [ 48%] 390s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_save PASSED [ 48%] 390s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_extensions PASSED [ 48%] 390s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_mimetypes PASSED [ 48%] 390s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_translate PASSED [ 48%] 390s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_markup PASSED [ 48%] 390s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_nonascii PASSED [ 48%] 390s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_root_config_detect PASSED [ 48%] 390s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_value_config_detect PASSED [ 48%] 390s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_key_config_detect PASSED [ 48%] 390s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_value_config_mixed_ok PASSED [ 48%] 390s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_namespace_config_detect PASSED [ 48%] 390s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_four_spaces PASSED [ 48%] 390s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_tab PASSED [ 48%] 390s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_none_linearizes PASSED [ 48%] 390s tests/translate/storage/test_html.py::test_guess_encoding PASSED [ 48%] 390s tests/translate/storage/test_html.py::TestHTMLParsing::test_mismatched_tags PASSED [ 48%] 390s tests/translate/storage/test_html.py::TestHTMLParsing::test_self_closing_tags PASSED [ 48%] 390s tests/translate/storage/test_html.py::TestHTMLParsing::test_escaping_script_and_pre PASSED [ 48%] 390s tests/translate/storage/test_html.py::TestHTMLExtraction::test_strip_html PASSED [ 48%] 390s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_tag_figcaption PASSED [ 48%] 390s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_tag_caption_td_th PASSED [ 48%] 390s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_attr_alt PASSED [ 48%] 390s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_attr_title PASSED [ 48%] 390s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_pre PASSED [ 48%] 390s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_pre_code PASSED [ 48%] 390s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_button PASSED [ 48%] 390s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_lang_attribute PASSED [ 48%] 390s tests/translate/storage/test_html.py::TestHTMLExtraction::test_dir_attribute_not_extracted PASSED [ 49%] 390s tests/translate/storage/test_html.py::TestHTMLExtraction::test_data_translate_ignore_attribute PASSED [ 49%] 390s tests/translate/storage/test_html.py::TestHTMLExtraction::test_translate_comment_directives PASSED [ 49%] 390s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_meta_social_media_tags PASSED [ 49%] 390s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_meta_non_translatable_tags PASSED [ 49%] 390s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_meta_mixed_translatable_and_non_translatable PASSED [ 49%] 390s tests/translate/storage/test_html.py::TestHTMLExtraction::test_data_translate_comment_attribute PASSED [ 49%] 390s tests/translate/storage/test_html_context.py::test_html_context_basic PASSED [ 49%] 390s tests/translate/storage/test_html_context.py::test_html_context_attribute PASSED [ 49%] 390s tests/translate/storage/test_html_context.py::test_html_context_attribute_with_id PASSED [ 49%] 390s tests/translate/storage/test_html_context.py::test_html_context_same_source_different_contexts PASSED [ 49%] 390s tests/translate/storage/test_html_context.py::test_html_context_nested_outer_wins PASSED [ 49%] 390s tests/translate/storage/test_html_context.py::test_html_context_absent PASSED [ 49%] 390s tests/translate/storage/test_html_context.py::test_html_context_id_overridden_by_explicit PASSED [ 49%] 390s tests/translate/storage/test_html_context.py::test_html_context_id_not_used_when_no_duplicates PASSED [ 49%] 390s tests/translate/storage/test_html_context.py::test_html_context_id_not_used_when_data_translate_context_identical PASSED [ 49%] 390s tests/translate/storage/test_html_context.py::test_html_context_disambiguates_duplicates_with_id PASSED [ 49%] 390s tests/translate/storage/test_html_context.py::test_html_context_disambiguates_duplicates_with_ancestor_id PASSED [ 49%] 390s tests/translate/storage/test_ini.py::TestINIUnit::test_isfuzzy PASSED [ 49%] 390s tests/translate/storage/test_ini.py::TestINIUnit::test_create PASSED [ 49%] 390s tests/translate/storage/test_ini.py::TestINIUnit::test_eq PASSED [ 49%] 390s tests/translate/storage/test_ini.py::TestINIUnit::test_escapes PASSED [ 49%] 390s tests/translate/storage/test_ini.py::TestINIUnit::test_difficult_escapes PASSED [ 49%] 390s tests/translate/storage/test_ini.py::TestINIUnit::test_note_sanity PASSED [ 49%] 390s tests/translate/storage/test_ini.py::TestINIUnit::test_line_number_default PASSED [ 49%] 390s tests/translate/storage/test_ini.py::TestINIUnit::test_target PASSED [ 49%] 390s tests/translate/storage/test_ini.py::TestINIUnit::test_rich_get PASSED [ 49%] 390s tests/translate/storage/test_ini.py::TestINIUnit::test_rich_set PASSED [ 49%] 390s tests/translate/storage/test_ini.py::TestINIStore::test_create_blank PASSED [ 49%] 390s tests/translate/storage/test_ini.py::TestINIStore::test_add PASSED [ 49%] 390s tests/translate/storage/test_ini.py::TestINIStore::test_remove PASSED [ 49%] 390s tests/translate/storage/test_ini.py::TestINIStore::test_find PASSED [ 49%] 390s tests/translate/storage/test_ini.py::TestINIStore::test_parse PASSED [ 49%] 390s tests/translate/storage/test_ini.py::TestINIStore::test_files PASSED [ 49%] 390s tests/translate/storage/test_ini.py::TestINIStore::test_save PASSED [ 49%] 390s tests/translate/storage/test_ini.py::TestINIStore::test_extensions PASSED [ 49%] 390s tests/translate/storage/test_ini.py::TestINIStore::test_mimetypes PASSED [ 49%] 390s tests/translate/storage/test_ini.py::TestINIStore::test_translate PASSED [ 49%] 390s tests/translate/storage/test_ini.py::TestINIStore::test_markup PASSED [ 49%] 390s tests/translate/storage/test_ini.py::TestINIStore::test_nonascii PASSED [ 50%] 390s tests/translate/storage/test_ini.py::TestINIStore::test_serialize PASSED [ 50%] 390s tests/translate/storage/test_ini.py::TestINIStore::test_rem PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_isfuzzy PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_create PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_eq PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_escapes PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_difficult_escapes PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_note_sanity PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_line_number_default PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_target PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_rich_get PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_rich_set PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_create_blank PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_remove PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_find PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_parse PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_files PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_save PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_extensions PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_mimetypes PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_translate PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_markup PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_nonascii PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_serialize PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_can_not_detect PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_error PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_filter PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_ordering PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_args PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_bom PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_complex PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_complex_array PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add_list_like PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add_blank PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_types PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_null PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_isfuzzy PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_create PASSED [ 50%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_eq PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_escapes PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_difficult_escapes PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_note_sanity PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_line_number_default PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_target PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_rich_get PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_rich_set PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_serialize PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_ordering PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_array PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_index PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_index_nested PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_nested_list_mixed PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_list_to_dict PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_complex_keys PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_other PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[0]-expected0] PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[test[0]-expected1] PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[test[0][1][2][3]-expected2] PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[test]selection-expected3] PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[test][0]selection-expected4] PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[0][test]selection-expected5] PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[-expected6] PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_dot_keys PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_isfuzzy PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_create PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_eq PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_escapes PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_difficult_escapes PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_note_sanity PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_line_number_default PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_target PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_rich_get PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_rich_set PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_create_blank PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_add PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_remove PASSED [ 51%] 390s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_find PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_parse PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_files PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_save PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_extensions PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_mimetypes PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_translate PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_markup PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_nonascii PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_serialize PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_dot_keys PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_leading_dot_keys PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_serialize_no_description PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_set_target PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_placeholders PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_comments PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_create_blank PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_add PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_remove PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_find PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_parse PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_files PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_save PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_extensions PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_mimetypes PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_translate PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_markup PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_nonascii PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_serialize PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_units PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_plurals PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_nested_array PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_new_plural PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_new_plural_id PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_create_blank PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_add PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_remove PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_find PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_parse PASSED [ 52%] 390s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_files PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_save PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_extensions PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_mimetypes PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_translate PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_markup PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_nonascii PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_plurals PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_plurals_missing PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_case_no_msg PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_complex_id PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_create_blank PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_add PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_remove PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_find PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_parse PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_files PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_save PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_extensions PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_mimetypes PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_translate PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_markup PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_nonascii PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_serialize PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_units PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_plurals PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_nested_array PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_new_plural PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_ru PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_create_blank PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_add PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_remove PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_find PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_parse PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_files PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_save PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_extensions PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_mimetypes PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_translate PASSED [ 53%] 390s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_markup PASSED [ 54%] 390s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_nonascii PASSED [ 54%] 390s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_serialize PASSED [ 54%] 390s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_units PASSED [ 54%] 390s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_plurals PASSED [ 54%] 390s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_nested_array PASSED [ 54%] 390s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_new_plural PASSED [ 54%] 390s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_ru PASSED [ 54%] 390s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_create_blank PASSED [ 54%] 390s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_add PASSED [ 54%] 390s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_remove PASSED [ 54%] 390s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_find PASSED [ 54%] 390s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_parse PASSED [ 54%] 390s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_files PASSED [ 54%] 390s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_save PASSED [ 54%] 390s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_extensions PASSED [ 54%] 390s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_mimetypes PASSED [ 54%] 390s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_translate PASSED [ 54%] 390s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_markup PASSED [ 54%] 390s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_nonascii PASSED [ 54%] 390s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_plurals PASSED [ 54%] 390s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_plurals_missing PASSED [ 54%] 390s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_invalid PASSED [ 54%] 390s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_dot_keys PASSED [ 54%] 390s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_create_blank PASSED [ 54%] 390s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_add PASSED [ 54%] 391s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_remove PASSED [ 54%] 391s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_find PASSED [ 54%] 391s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_parse PASSED [ 54%] 391s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_files PASSED [ 54%] 391s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_save PASSED [ 54%] 391s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_extensions PASSED [ 54%] 391s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_mimetypes PASSED [ 54%] 391s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_translate PASSED [ 54%] 391s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_markup PASSED [ 54%] 391s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_nonascii PASSED [ 54%] 391s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_1 PASSED [ 54%] 391s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_2 PASSED [ 54%] 391s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_blank PASSED [ 54%] 391s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_missing PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_simplification PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_invalid PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_dot_keys PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_create_blank PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_add PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_remove PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_find PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_parse PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_files PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_save PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_extensions PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_mimetypes PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_translate PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_markup PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_nonascii PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_roundtrip PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_leading_dot_keys PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_invalid_nesting PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_empty_metadata_not_stored PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_create_blank PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_add PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_remove PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_find PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_parse PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_files PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_save PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_extensions PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_mimetypes PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_translate PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_markup PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_nonascii PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_roundtrip PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_leading_dot_keys PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_invalid PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_isfuzzy PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_create PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_eq PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_escapes PASSED [ 55%] 391s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_difficult_escapes PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_note_sanity PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_line_number_default PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_target PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_rich_get PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_rich_set PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_source_property_maps_to_id PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_source_roundtrip PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_create_blank PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_add PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_remove PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_find PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_parse PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_files PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_save PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_extensions PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_mimetypes PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_translate PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_markup PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_nonascii PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_parse_simple PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_serialize_simple PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_parse_with_plurals PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_preserve_plural_form PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_roundtrip_with_plurals PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_ignore_non_translations_keys PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_preserve_other_metadata PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_add_unit PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_add_plural_unit PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_empty_translations PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_create_blank PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_add PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_remove PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_find PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_parse PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_files PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_save PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_extensions PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_mimetypes PASSED [ 56%] 391s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_translate PASSED [ 57%] 391s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_markup PASSED [ 57%] 391s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_nonascii PASSED [ 57%] 391s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_roundtrip PASSED [ 57%] 391s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_basic_parsing PASSED [ 57%] 391s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_multiple_metadata PASSED [ 57%] 391s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_no_metadata PASSED [ 57%] 391s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_edit_target PASSED [ 57%] 391s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_edit_notes PASSED [ 57%] 391s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_keys_with_dots PASSED [ 57%] 391s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_leading_dot_keys PASSED [ 57%] 391s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_invalid_nesting PASSED [ 57%] 391s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_source_property_get_set PASSED [ 57%] 391s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_source_property_persists PASSED [ 57%] 391s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_getcontext_returns_id PASSED [ 57%] 391s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_parsing_preserves_order PASSED [ 57%] 391s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_metadata_without_translation PASSED [ 57%] 391s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_complex_keys_with_multiple_dots PASSED [ 57%] 391s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_source_empty_string PASSED [ 57%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_atx_heading PASSED [ 57%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_autolink PASSED [ 57%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_block_quote PASSED [ 57%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_code_block PASSED [ 57%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_code_span PASSED [ 57%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_atx_heading PASSED [ 57%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_document PASSED [ 57%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_list_item PASSED [ 57%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_escaped_character PASSED [ 57%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_hard_line_break PASSED [ 57%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_block PASSED [ 57%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_character_entities PASSED [ 57%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_span PASSED [ 57%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_image_embedded_in_link PASSED [ 57%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_collapsed_reference_link PASSED [ 57%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_full_reference_link PASSED [ 57%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_shortcut_reference_link PASSED [ 57%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_merging_of_adjacent_placeholders PASSED [ 57%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_nested_block_tokens PASSED [ 57%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_nested_list PASSED [ 57%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_paragraph_with_basic_markup PASSED [ 58%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_paragraph_with_only_whitespace_and_placeholders PASSED [ 58%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_placeholder_trimming PASSED [ 58%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_image PASSED [ 58%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_image_no_title PASSED [ 58%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_link PASSED [ 58%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_text_paragraph PASSED [ 58%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_remove_placeholders_from_both_ends_of_translation_units PASSED [ 58%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_setext_heading PASSED [ 58%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_table_with_header PASSED [ 58%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_thematic_break PASSED [ 58%] 391s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_hard_line_break_in_translation_unit PASSED [ 58%] 391s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_missing_placeholder PASSED [ 58%] 391s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_duplicate_placeholder PASSED [ 58%] 391s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_extraneous_placeholder PASSED [ 58%] 391s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_reordered_placeholders PASSED [ 58%] 391s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_invalid_markdown_in_translation PASSED [ 58%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_section_basic PASSED [ 58%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_section_with_markup PASSED [ 58%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_section_with_code_block PASSED [ 58%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_multiple_ignore_sections PASSED [ 58%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_at_start PASSED [ 58%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_at_end PASSED [ 58%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_nested_structures_in_ignore PASSED [ 58%] 391s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_link_references_in_ignore PASSED [ 58%] 391s tests/translate/storage/test_mo.py::TestMOUnit::test_isfuzzy PASSED [ 58%] 391s tests/translate/storage/test_mo.py::TestMOUnit::test_create PASSED [ 58%] 391s tests/translate/storage/test_mo.py::TestMOUnit::test_eq PASSED [ 58%] 391s tests/translate/storage/test_mo.py::TestMOUnit::test_target PASSED [ 58%] 391s tests/translate/storage/test_mo.py::TestMOUnit::test_escapes PASSED [ 58%] 391s tests/translate/storage/test_mo.py::TestMOUnit::test_difficult_escapes PASSED [ 58%] 391s tests/translate/storage/test_mo.py::TestMOUnit::test_note_sanity PASSED [ 58%] 391s tests/translate/storage/test_mo.py::TestMOUnit::test_line_number_default PASSED [ 58%] 391s tests/translate/storage/test_mo.py::TestMOUnit::test_rich_get PASSED [ 58%] 391s tests/translate/storage/test_mo.py::TestMOUnit::test_rich_set PASSED [ 58%] 391s tests/translate/storage/test_mo.py::TestMOUnit::test_context PASSED [ 58%] 391s tests/translate/storage/test_mo.py::TestMOFile::test_create_blank PASSED [ 58%] 391s tests/translate/storage/test_mo.py::TestMOFile::test_add PASSED [ 58%] 391s tests/translate/storage/test_mo.py::TestMOFile::test_remove PASSED [ 58%] 391s tests/translate/storage/test_mo.py::TestMOFile::test_find PASSED [ 59%] 391s tests/translate/storage/test_mo.py::TestMOFile::test_translate PASSED [ 59%] 391s tests/translate/storage/test_mo.py::TestMOFile::test_parse PASSED [ 59%] 391s tests/translate/storage/test_mo.py::TestMOFile::test_files PASSED [ 59%] 391s tests/translate/storage/test_mo.py::TestMOFile::test_save PASSED [ 59%] 391s tests/translate/storage/test_mo.py::TestMOFile::test_markup PASSED [ 59%] 391s tests/translate/storage/test_mo.py::TestMOFile::test_nonascii PASSED [ 59%] 391s tests/translate/storage/test_mo.py::TestMOFile::test_extensions PASSED [ 59%] 391s tests/translate/storage/test_mo.py::TestMOFile::test_mimetypes PASSED [ 59%] 391s tests/translate/storage/test_mo.py::TestMOFile::test_language PASSED [ 59%] 391s tests/translate/storage/test_mo.py::TestMOFile::test_context PASSED [ 59%] 391s tests/translate/storage/test_mo.py::TestMOFile::test_output PASSED [ 59%] 391s tests/translate/storage/test_mo.py::TestMOFile::test_endian_version_parsing PASSED [ 59%] 391s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_isfuzzy PASSED [ 59%] 391s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_create PASSED [ 59%] 391s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_eq PASSED [ 59%] 391s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_escapes PASSED [ 59%] 391s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_difficult_escapes PASSED [ 59%] 391s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_note_sanity PASSED [ 59%] 391s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_line_number_default PASSED [ 59%] 391s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_target PASSED [ 59%] 391s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_rich_get PASSED [ 59%] 391s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_rich_set PASSED [ 59%] 391s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_create_blank PASSED [ 59%] 391s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_add PASSED [ 59%] 391s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_remove PASSED [ 59%] 391s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_find PASSED [ 59%] 391s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_parse PASSED [ 59%] 391s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_files PASSED [ 59%] 391s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_save PASSED [ 59%] 391s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_extensions PASSED [ 59%] 391s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_mimetypes PASSED [ 59%] 391s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_translate PASSED [ 59%] 391s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_markup PASSED [ 59%] 391s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_nonascii PASSED [ 59%] 391s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[-] PASSED [ 59%] 391s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String-String] PASSED [ 59%] 391s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok}-String] PASSED [ 59%] 391s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {OK}-String] PASSED [ 59%] 391s 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%] 391s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String{ok}-String] PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String{OK}-String] PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok}-String] PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok} -String] PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_isfuzzy PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_create PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_eq PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_target PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_escapes PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_difficult_escapes PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_note_sanity PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_line_number_default PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_rich_get PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_rich_set PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_translate_but_same PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_untranslated PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_comments PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_copy_target PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_create_blank PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_add PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_remove PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_find PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_translate PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_parse PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_files PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_save PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_markup PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_extensions PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_mimetypes PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_nonascii PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_format_layout PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_crlf PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_active_flag PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_multiline_comments PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_template PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[--False] PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ -Source -True] PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ {ok}-Source-True] PASSED [ 60%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ {ok} -Source-True] PASSED [ 61%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[{ok}-Source-True] PASSED [ 61%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_headers PASSED [ 61%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_not_headers PASSED [ 61%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[0] PASSED [ 61%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[1] PASSED [ 61%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[2] PASSED [ 61%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[3] PASSED [ 61%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_tag_comments PASSED [ 61%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_maxlength PASSED [ 61%] 391s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_line_number PASSED [ 61%] 391s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_isfuzzy PASSED [ 61%] 391s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_create PASSED [ 61%] 391s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_eq PASSED [ 61%] 391s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_target PASSED [ 61%] 391s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_escapes PASSED [ 61%] 391s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_difficult_escapes PASSED [ 61%] 391s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_note_sanity PASSED [ 61%] 391s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_line_number_default PASSED [ 61%] 391s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_rich_get PASSED [ 61%] 391s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_rich_set PASSED [ 61%] 391s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_create_blank PASSED [ 61%] 391s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_add PASSED [ 61%] 391s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_remove PASSED [ 61%] 391s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_find PASSED [ 61%] 391s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_translate PASSED [ 61%] 391s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_parse PASSED [ 61%] 391s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_files PASSED [ 61%] 391s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_save PASSED [ 61%] 391s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_markup PASSED [ 61%] 391s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_nonascii PASSED [ 61%] 391s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_mimetypes PASSED [ 61%] 391s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_extensions XFAIL [ 61%] 391s tests/translate/storage/test_oo.py::test_makekey PASSED [ 61%] 391s tests/translate/storage/test_oo.py::test_escape_help_text PASSED [ 61%] 391s tests/translate/storage/test_oo.py::TestOO::test_simpleentry PASSED [ 61%] 391s tests/translate/storage/test_oo.py::TestOO::test_simpleentry_quickhelptest PASSED [ 61%] 391s tests/translate/storage/test_oo.py::TestOO::test_simpleentry_title PASSED [ 61%] 391s tests/translate/storage/test_oo.py::TestOO::test_blankline PASSED [ 61%] 391s tests/translate/storage/test_oo.py::TestOO::test_fieldlength PASSED [ 62%] 391s tests/translate/storage/test_oo.py::TestOO::test_escapes PASSED [ 62%] 391s tests/translate/storage/test_php.py::test_php_escaping_single_quote PASSED [ 62%] 391s tests/translate/storage/test_php.py::test_php_escaping_double_quote PASSED [ 62%] 391s tests/translate/storage/test_php.py::TestPhpUnit::test_isfuzzy PASSED [ 62%] 391s tests/translate/storage/test_php.py::TestPhpUnit::test_create PASSED [ 62%] 391s tests/translate/storage/test_php.py::TestPhpUnit::test_eq PASSED [ 62%] 391s tests/translate/storage/test_php.py::TestPhpUnit::test_escapes PASSED [ 62%] 391s tests/translate/storage/test_php.py::TestPhpUnit::test_note_sanity PASSED [ 62%] 391s tests/translate/storage/test_php.py::TestPhpUnit::test_line_number_default PASSED [ 62%] 391s tests/translate/storage/test_php.py::TestPhpUnit::test_target PASSED [ 62%] 391s tests/translate/storage/test_php.py::TestPhpUnit::test_rich_get PASSED [ 62%] 391s tests/translate/storage/test_php.py::TestPhpUnit::test_rich_set PASSED [ 62%] 391s tests/translate/storage/test_php.py::TestPhpUnit::test_difficult_escapes PASSED [ 62%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_create_blank PASSED [ 62%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_add PASSED [ 62%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_remove PASSED [ 62%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_find PASSED [ 62%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_parse PASSED [ 62%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_files PASSED [ 62%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_save PASSED [ 62%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_extensions PASSED [ 62%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_mimetypes PASSED [ 62%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_translate PASSED [ 62%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_markup PASSED [ 62%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_nonascii PASSED [ 62%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition PASSED [ 62%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition_source PASSED [ 62%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_spaces_in_name PASSED [ 62%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_comment_definition PASSED [ 62%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_comment_blocks PASSED [ 62%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_comment_output PASSED [ 62%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_comment_add PASSED [ 62%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_multiline PASSED [ 62%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays PASSED [ 62%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_array_no_array_syntax PASSED [ 62%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_spaces PASSED [ 62%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_quotes PASSED [ 62%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_number_as_value PASSED [ 62%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_non_textual PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_define PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_define_with_spaces_before_key PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_after_equal_delimiter PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_after_equal_delimiter_and_before_key PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_no_spaces_after_equal_delimiter PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_no_spaces_after_equaldel_but_before_key PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_entries_with_quotes PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_comments_at_entry_line_end PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_double_slash_comments_before_entries PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_before_end_delimiter PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simpledefinition_spaces_before_end_delimiter PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_no_trailing_comma PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_space_before_comma PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_space_before_array_declaration PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_declared_in_a_single_line PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_no_keys PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_no_keys_assigned_to_array PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_no_keys PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_assignment_in_line_where_multiline_comment_ends PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_using_short_array_syntax PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_space_before_array_declaration PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_unnamed_nested_arrays PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_array_declaration_in_next_line PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_array_with_newline_after_delimiter PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_blank_entries PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_slashstar_in_string PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_heredoc_syntax PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition_after_define PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_quotes PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_concatenation PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_serialize PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_space_before_comma PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_equals_in_id PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_comma_in_string PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_nowdoc PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_plain_concatenation PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_array_keys PASSED [ 63%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_double_var PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_return_array PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_with_spaces PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_with_comments PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_short PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_short_quotes PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestPhpFile::test_addunit PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_isfuzzy PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_create PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_eq PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_escapes PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_difficult_escapes PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_note_sanity PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_line_number_default PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_target PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_rich_get PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_rich_set PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_create_blank PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_remove PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_find PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_parse PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_files PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_save PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_extensions PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_mimetypes PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_translate PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_markup PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_nonascii PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_plurals PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_key_stripping PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_key_stripping_array_syntax PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_key_stripping_numeric_keys PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_roundtrip_short_array PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_roundtrip_array_syntax PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_setid_preserves_structure PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_setid_with_array_syntax PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_addunit_with_setid PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_unit_to_short_array_file PASSED [ 64%] 391s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_unit_to_array_function_file PASSED [ 65%] 391s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_multiple_units_to_short_array PASSED [ 65%] 391s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_multiple_units_to_array_function PASSED [ 65%] 391s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_numeric_keys_no_quotes PASSED [ 65%] 391s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_empty_string_key PASSED [ 65%] 391s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_setid_with_non_string_value PASSED [ 65%] 391s tests/translate/storage/test_po.py::test_roundtrip_quoting PASSED [ 65%] 391s tests/translate/storage/test_po.py::TestPOUnit::test_isfuzzy PASSED [ 65%] 391s tests/translate/storage/test_po.py::TestPOUnit::test_create PASSED [ 65%] 391s tests/translate/storage/test_po.py::TestPOUnit::test_eq PASSED [ 65%] 391s tests/translate/storage/test_po.py::TestPOUnit::test_target PASSED [ 65%] 391s tests/translate/storage/test_po.py::TestPOUnit::test_escapes PASSED [ 65%] 391s tests/translate/storage/test_po.py::TestPOUnit::test_difficult_escapes PASSED [ 65%] 391s tests/translate/storage/test_po.py::TestPOUnit::test_note_sanity PASSED [ 65%] 391s tests/translate/storage/test_po.py::TestPOUnit::test_line_number_default PASSED [ 65%] 391s tests/translate/storage/test_po.py::TestPOUnit::test_rich_get PASSED [ 65%] 391s tests/translate/storage/test_po.py::TestPOUnit::test_rich_set PASSED [ 65%] 391s tests/translate/storage/test_po.py::TestPOUnit::test_istranslatable PASSED [ 65%] 391s tests/translate/storage/test_po.py::TestPOUnit::test_locations PASSED [ 65%] 391s tests/translate/storage/test_po.py::TestPOUnit::test_nongettext_location PASSED [ 65%] 391s tests/translate/storage/test_po.py::TestPOUnit::test_adding_empty_note PASSED [ 65%] 391s tests/translate/storage/test_po.py::TestPOUnit::test_markreview PASSED [ 65%] 391s tests/translate/storage/test_po.py::TestPOUnit::test_errors PASSED [ 65%] 391s tests/translate/storage/test_po.py::TestPOUnit::test_no_plural_settarget PASSED [ 65%] 391s tests/translate/storage/test_po.py::TestPOUnit::test_wrapping_bug PASSED [ 65%] 391s tests/translate/storage/test_po.py::TestPOUnit::test_extract_msgidcomments_from_text PASSED [ 65%] 391s tests/translate/storage/test_po.py::TestPOUnit::test_isheader PASSED [ 65%] 391s tests/translate/storage/test_po.py::TestPOUnit::test_buildfromunit PASSED [ 65%] 391s tests/translate/storage/test_po.py::TestPOFile::test_create_blank PASSED [ 65%] 391s tests/translate/storage/test_po.py::TestPOFile::test_add PASSED [ 65%] 391s tests/translate/storage/test_po.py::TestPOFile::test_remove PASSED [ 65%] 391s tests/translate/storage/test_po.py::TestPOFile::test_find PASSED [ 65%] 391s tests/translate/storage/test_po.py::TestPOFile::test_translate PASSED [ 65%] 391s tests/translate/storage/test_po.py::TestPOFile::test_parse PASSED [ 65%] 391s tests/translate/storage/test_po.py::TestPOFile::test_files PASSED [ 65%] 391s tests/translate/storage/test_po.py::TestPOFile::test_save PASSED [ 65%] 391s tests/translate/storage/test_po.py::TestPOFile::test_markup PASSED [ 65%] 391s tests/translate/storage/test_po.py::TestPOFile::test_nonascii PASSED [ 65%] 391s tests/translate/storage/test_po.py::TestPOFile::test_extensions PASSED [ 65%] 391s tests/translate/storage/test_po.py::TestPOFile::test_mimetypes PASSED [ 66%] 391s tests/translate/storage/test_po.py::TestPOFile::test_context_only PASSED [ 66%] 391s tests/translate/storage/test_po.py::TestPOFile::test_simpleentry PASSED [ 66%] 391s tests/translate/storage/test_po.py::TestPOFile::test_copy PASSED [ 66%] 391s tests/translate/storage/test_po.py::TestPOFile::test_parse_source_string PASSED [ 66%] 391s tests/translate/storage/test_po.py::TestPOFile::test_parse_file PASSED [ 66%] 391s tests/translate/storage/test_po.py::TestPOFile::test_unicode PASSED [ 66%] 391s tests/translate/storage/test_po.py::TestPOFile::test_plurals PASSED [ 66%] 391s tests/translate/storage/test_po.py::TestPOFile::test_plural_unicode PASSED [ 66%] 391s tests/translate/storage/test_po.py::TestPOFile::test_nongettext_location PASSED [ 66%] 391s tests/translate/storage/test_po.py::TestPOFile::test_percent_location PASSED [ 66%] 391s tests/translate/storage/test_po.py::TestPOFile::test_kde_plurals XFAIL [ 66%] 391s tests/translate/storage/test_po.py::TestPOFile::test_empty_lines_notes PASSED [ 66%] 391s tests/translate/storage/test_po.py::TestPOFile::test_fuzzy PASSED [ 66%] 391s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_untranslated XFAIL [ 66%] 391s tests/translate/storage/test_po.py::TestPOFile::test_merging_automaticcomments PASSED [ 66%] 391s tests/translate/storage/test_po.py::TestPOFile::test_malformed_units PASSED [ 66%] 391s tests/translate/storage/test_po.py::TestPOFile::test_invalid_keyword PASSED [ 66%] 391s tests/translate/storage/test_po.py::TestPOFile::test_malformed_obsolete_units PASSED [ 66%] 391s tests/translate/storage/test_po.py::TestPOFile::test_uniforum_po PASSED [ 66%] 391s tests/translate/storage/test_po.py::TestPOFile::test_obsolete PASSED [ 66%] 391s tests/translate/storage/test_po.py::TestPOFile::test_obsolete_with_prev_msgid PASSED [ 66%] 391s tests/translate/storage/test_po.py::TestPOFile::test_header_escapes PASSED [ 66%] 391s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete PASSED [ 66%] 391s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_plural PASSED [ 66%] 391s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_msgctxt PASSED [ 66%] 391s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_msgidcomments PASSED [ 66%] 391s tests/translate/storage/test_po.py::TestPOFile::test_multiline_obsolete PASSED [ 66%] 392s tests/translate/storage/test_po.py::TestPOFile::test_merge_duplicates PASSED [ 66%] 392s tests/translate/storage/test_po.py::TestPOFile::test_merge_mixed_sources PASSED [ 66%] 392s tests/translate/storage/test_po.py::TestPOFile::test_parse_context PASSED [ 66%] 392s tests/translate/storage/test_po.py::TestPOFile::test_parse_advanced_context PASSED [ 66%] 392s tests/translate/storage/test_po.py::TestPOFile::test_kde_context PASSED [ 66%] 392s tests/translate/storage/test_po.py::TestPOFile::test_broken_kde_context PASSED [ 66%] 392s tests/translate/storage/test_po.py::TestPOFile::test_id PASSED [ 66%] 392s tests/translate/storage/test_po.py::TestPOFile::test_non_ascii_header_comments PASSED [ 66%] 392s tests/translate/storage/test_po.py::TestPOFile::test_non_ascii_header_comments_2 PASSED [ 66%] 392s tests/translate/storage/test_po.py::TestPOFile::test_final_slash PASSED [ 66%] 392s tests/translate/storage/test_po.py::TestPOFile::test_unfinished_lines PASSED [ 66%] 392s tests/translate/storage/test_po.py::TestPOFile::test_encoding_change PASSED [ 67%] 392s tests/translate/storage/test_po.py::TestPOFile::test_istranslated PASSED [ 67%] 392s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_spaces PASSED [ 67%] 392s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long PASSED [ 67%] 392s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_fit PASSED [ 67%] 392s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_overflow PASSED [ 67%] 392s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_multiline PASSED [ 67%] 392s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_escapes PASSED [ 67%] 392s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_cjk PASSED [ 67%] 392s tests/translate/storage/test_po.py::TestPOFile::test_wrap_emoji PASSED [ 67%] 392s tests/translate/storage/test_po.py::TestPOFile::test_wrap_parenthesis PASSED [ 67%] 392s tests/translate/storage/test_po.py::TestPOFile::test_wrap_escape_line PASSED [ 67%] 392s tests/translate/storage/test_po.py::TestPOFile::test_wrap_parenthesis_long PASSED [ 67%] 392s tests/translate/storage/test_po.py::TestPOFile::test_wrap_gettext PASSED [ 67%] 392s tests/translate/storage/test_po.py::TestPOFile::test_wrap_wide_stop PASSED [ 67%] 392s tests/translate/storage/test_po.py::TestPOFile::test_wrap_escape PASSED [ 67%] 392s tests/translate/storage/test_po.py::TestPOFile::test_msgidcomments PASSED [ 67%] 392s tests/translate/storage/test_po.py::TestPOFile::test_unicode_ids PASSED [ 67%] 392s tests/translate/storage/test_po.py::TestPOFile::test_syntax_error PASSED [ 67%] 392s tests/translate/storage/test_po.py::TestPOFile::test_invalid PASSED [ 67%] 392s tests/translate/storage/test_po.py::TestPOFile::test_c_style_comment_error_reporting PASSED [ 67%] 392s tests/translate/storage/test_po.py::TestPOFile::test_wrapped_msgid PASSED [ 67%] 392s tests/translate/storage/test_po.py::TestPOFile::test_missing_plural PASSED [ 67%] 392s tests/translate/storage/test_po.py::TestPOFile::test_unusual_line_endings PASSED [ 67%] 392s tests/translate/storage/test_po.py::TestPOFile::test_charset_with_space PASSED [ 67%] 392s tests/translate/storage/test_po.py::TestPOFile::test_duplicate_msgid_error PASSED [ 67%] 392s tests/translate/storage/test_pocommon.py::test_roundtrip_quote_plus PASSED [ 67%] 392s tests/translate/storage/test_poheader.py::test_parseheaderstring PASSED [ 67%] 392s tests/translate/storage/test_poheader.py::test_update PASSED [ 67%] 392s tests/translate/storage/test_poheader.py::test_po_dates PASSED [ 67%] 392s tests/translate/storage/test_poheader.py::test_timezones PASSED [ 67%] 392s tests/translate/storage/test_poheader.py::test_header_blank PASSED [ 67%] 392s tests/translate/storage/test_poheader.py::test_plural_equation PASSED [ 67%] 392s tests/translate/storage/test_poheader.py::test_plural_equation_across_lines PASSED [ 67%] 392s tests/translate/storage/test_poheader.py::test_updatecontributor PASSED [ 67%] 392s tests/translate/storage/test_poheader.py::test_updatecontributor_header PASSED [ 67%] 392s tests/translate/storage/test_poheader.py::test_language PASSED [ 67%] 392s tests/translate/storage/test_poheader.py::test_project PASSED [ 67%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_isfuzzy PASSED [ 67%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_create PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_eq PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_target PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_escapes PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_difficult_escapes PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_note_sanity PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_line_number_default PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_rich_get PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_rich_set PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_markreview PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_errors PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_accepted_control_chars PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_unaccepted_control_chars PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_plurals PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_ids PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_create_blank PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_remove PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_find PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_translate PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_files PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_save PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_markup PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_nonascii PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_extensions PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_mimetypes PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_basic PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_namespace PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_rich_source PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_rich_target PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_source PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_target PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_sourcelanguage PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_targetlanguage PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_targetlanguage_multi PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_alttrans PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_fuzzy PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_xml_space PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parsing PASSED [ 68%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_marktranslatable PASSED [ 69%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_entities PASSED [ 69%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_multiple_filenodes PASSED [ 69%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_groups_when_adding_units PASSED [ 69%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_multiple_files_and_groups PASSED [ 69%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_unit_to_existing_group PASSED [ 69%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_unit_to_different_file PASSED [ 69%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_mixed_groups_and_body PASSED [ 69%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_addunit_with_new_false PASSED [ 69%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_namespace_preservation_across_versions PASSED [ 69%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_units_between_different_files PASSED [ 69%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_group_preservation_across_different_namespaces PASSED [ 69%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_cross_namespace_group_and_file_preservation PASSED [ 69%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_indent PASSED [ 69%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_target PASSED [ 69%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve PASSED [ 69%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_closing_tags PASSED [ 69%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_context_groups PASSED [ 69%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_getlocations PASSED [ 69%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_addlocation PASSED [ 69%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_huge PASSED [ 69%] 392s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_add PASSED [ 69%] 393s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parse PASSED [ 69%] 393s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parse_plural_alpha_id PASSED [ 69%] 393s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_notes PASSED [ 69%] 393s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_plural PASSED [ 69%] 393s tests/translate/storage/test_properties.py::test_find_delimiter_pos_simple PASSED [ 69%] 393s tests/translate/storage/test_properties.py::test_find_delimiter_pos_multiple PASSED [ 69%] 393s tests/translate/storage/test_properties.py::test_find_delimiter_pos_none PASSED [ 69%] 393s tests/translate/storage/test_properties.py::test_find_delimiter_pos_whitespace PASSED [ 69%] 393s tests/translate/storage/test_properties.py::test_find_delimiter_pos_escapes PASSED [ 69%] 393s tests/translate/storage/test_properties.py::test_find_delimiter_pos_empty_and_whitespace PASSED [ 69%] 393s tests/translate/storage/test_properties.py::test_find_delimiter_pos_tabs PASSED [ 69%] 393s tests/translate/storage/test_properties.py::test_is_line_continuation PASSED [ 69%] 393s tests/translate/storage/test_properties.py::test_key_strip PASSED [ 69%] 393s tests/translate/storage/test_properties.py::test_get_comment_one_line PASSED [ 69%] 393s tests/translate/storage/test_properties.py::test_get_comment_start PASSED [ 69%] 393s tests/translate/storage/test_properties.py::test_get_comment_end PASSED [ 69%] 393s tests/translate/storage/test_properties.py::TestPropUnit::test_isfuzzy PASSED [ 69%] 393s tests/translate/storage/test_properties.py::TestPropUnit::test_create PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestPropUnit::test_eq PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestPropUnit::test_escapes PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestPropUnit::test_difficult_escapes PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestPropUnit::test_note_sanity PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestPropUnit::test_line_number_default PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestPropUnit::test_target PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestPropUnit::test_rich_get PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestPropUnit::test_rich_set PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestGwtProp::test_create_blank PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestGwtProp::test_add PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestGwtProp::test_remove PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestGwtProp::test_find PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestGwtProp::test_parse PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestGwtProp::test_files PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestGwtProp::test_save PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestGwtProp::test_extensions PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestGwtProp::test_mimetypes PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestGwtProp::test_translate PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestGwtProp::test_markup PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestGwtProp::test_nonascii PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestGwtProp::test_quotes PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestGwtProp::test_simpledefinition PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestGwtProp::test_doubledefinition PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestGwtProp::test_doubledefinition_source PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestGwtProp::test_reduce PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestGwtProp::test_increase PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestGwtProp::test_extra_plurals PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestGwtProp::test_non_plurals PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestGwtProp::test_encoding PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestGwtProp::test_other_plurals PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestProp::test_create_blank PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestProp::test_add PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestProp::test_remove PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestProp::test_find PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestProp::test_parse PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestProp::test_files PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestProp::test_save PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestProp::test_extensions PASSED [ 70%] 393s tests/translate/storage/test_properties.py::TestProp::test_mimetypes PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_translate PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_markup PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_nonascii PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_simpledefinition PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_simpledefinition_source PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_controlutf8_source PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_control_source PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_unicode_escaping PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_newlines_startend PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_space PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_whitespace_handling PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_key_value_delimiters_simple PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_tab_delimiter_parsing PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_comments PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_latin1 PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_fullspec_delimiters PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_fullspec_escaped_key PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_fullspec_line_continuation PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_fullspec_key_without_value PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_mac_strings PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_utf_16_save PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_mac_multiline_strings PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_unicode PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_utf8 PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_newlines PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comments PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_multilines_comments PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comments_dropping PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_inline_comments PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_inline_comments_nested PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_inline_comment_with_spaces PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_before_entry PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_between_key_and_equals PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_between_equals_and_value PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_after_value_before_semicolon PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_multiple_inline_comments PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_nested_comment PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_inside_value PASSED [ 71%] 393s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_trailing_whitespace_after_semicolon PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_quotes PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_equals PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_serialization PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_double_backslashes PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestProp::test_override_encoding PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestProp::test_trailing_comments PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestProp::test_utf16_byte_order_mark PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestProp::test_raise_ioerror_if_cannot_detect_encoding PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestProp::test_utf8_byte_order_mark PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestProp::test_utf16_bom_no_warning PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestProp::test_joomla_set_target PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestProp::test_joomla PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestProp::test_joomla_escape PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestProp::test_serialize_missing_delimiter PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestProp::test_serialize_missing_value PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestProp::test_multi_comments PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestProp::test_serialize_note PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestProp::test_serialize_long_note PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestProp::test_trailing_newlines PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestXWiki::test_create_blank PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestXWiki::test_add PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestXWiki::test_remove PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestXWiki::test_find PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestXWiki::test_parse PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestXWiki::test_files PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestXWiki::test_save PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestXWiki::test_extensions PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestXWiki::test_mimetypes PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestXWiki::test_translate PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestXWiki::test_markup PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestXWiki::test_nonascii PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestXWiki::test_simpledefinition PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestXWiki::test_missing_definition PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestXWiki::test_missing_definition_source PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestXWiki::test_definition_with_simple_quote PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestXWiki::test_definition_with_simple_quote_and_argument PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestXWiki::test_header_preserved PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestXWiki::test_blank_line_before_comment_preserved PASSED [ 72%] 393s tests/translate/storage/test_properties.py::TestXWiki::test_deprecated_comments_preserved PASSED [ 73%] 393s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_create_blank PASSED [ 73%] 393s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_add PASSED [ 73%] 393s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_remove PASSED [ 73%] 393s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_find PASSED [ 73%] 393s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_parse PASSED [ 73%] 393s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_files PASSED [ 73%] 393s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_save PASSED [ 73%] 393s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_extensions PASSED [ 73%] 393s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_mimetypes PASSED [ 73%] 393s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_translate PASSED [ 73%] 393s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_markup PASSED [ 73%] 393s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_nonascii PASSED [ 73%] 393s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_simpledefinition PASSED [ 73%] 393s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_missing_definition PASSED [ 73%] 393s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_missing_definition_source PASSED [ 73%] 393s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_simple_quote PASSED [ 73%] 393s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_simple_quote_and_argument PASSED [ 73%] 393s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_encoded_html PASSED [ 73%] 393s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_cleaning_attributes PASSED [ 73%] 393s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_translate_source PASSED [ 73%] 393s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_create_blank PASSED [ 73%] 393s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_add PASSED [ 73%] 393s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_find PASSED [ 73%] 393s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_extensions PASSED [ 73%] 393s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_mimetypes PASSED [ 73%] 393s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_translate PASSED [ 73%] 393s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_markup PASSED [ 73%] 393s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_nonascii PASSED [ 73%] 393s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_simpledefinition PASSED [ 73%] 393s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_parse PASSED [ 73%] 393s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_files PASSED [ 73%] 393s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_save PASSED [ 73%] 393s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_cleaning_attributes PASSED [ 73%] 393s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_remove XFAIL [ 73%] 393s tests/translate/storage/test_pypo.py::TestHelpers::test_unescape PASSED [ 73%] 393s tests/translate/storage/test_pypo.py::TestHelpers::test_quoteforpo PASSED [ 73%] 393s tests/translate/storage/test_pypo.py::TestHelpers::test_quoteforpo_escaped_quotes PASSED [ 73%] 393s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_isfuzzy PASSED [ 73%] 393s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_create PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_eq PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_target PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_escapes PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_difficult_escapes PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_note_sanity PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_line_number_default PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_rich_get PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_rich_set PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_istranslatable PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_locations PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_nongettext_location PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_adding_empty_note PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_markreview PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_errors PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_no_plural_settarget PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrapping_bug PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_extract_msgidcomments_from_text PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_isheader PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_buildfromunit PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_plurals PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_plural_reduction PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes_withcomments PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes_with_blank_lines PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_firstlines PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_newlines PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_max_line_length PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_slash PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_spacing_max_line PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_create_blank PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_add PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_remove PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_find PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_translate PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_files PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_save PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_markup PASSED [ 74%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_nonascii PASSED [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_extensions PASSED [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mimetypes PASSED [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_context_only PASSED [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_simpleentry PASSED [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_copy PASSED [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_source_string PASSED [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_file PASSED [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode PASSED [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_plurals PASSED [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_plural_unicode PASSED [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_nongettext_location PASSED [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_percent_location PASSED [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_plurals XFAIL [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_empty_lines_notes PASSED [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_fuzzy PASSED [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_untranslated XFAIL [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merging_automaticcomments PASSED [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_malformed_units PASSED [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_invalid_keyword PASSED [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_malformed_obsolete_units PASSED [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_uniforum_po PASSED [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_obsolete PASSED [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_obsolete_with_prev_msgid PASSED [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_header_escapes PASSED [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete PASSED [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_plural PASSED [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_msgctxt PASSED [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_msgidcomments PASSED [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_multiline_obsolete PASSED [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_duplicates PASSED [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_mixed_sources PASSED [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_context PASSED [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_advanced_context PASSED [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_context PASSED [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_broken_kde_context PASSED [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_id PASSED [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_non_ascii_header_comments PASSED [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_non_ascii_header_comments_2 PASSED [ 75%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_final_slash PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unfinished_lines PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_encoding_change PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_istranslated PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_spaces PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_fit PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_overflow PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_multiline PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_escapes PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_cjk PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_emoji PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_parenthesis PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_escape_line PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_parenthesis_long PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_gettext PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_wide_stop PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_escape PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_msgidcomments PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode_ids PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_syntax_error PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_c_style_comment_error_reporting PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapped_msgid PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_missing_plural PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unusual_line_endings PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_charset_with_space PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_duplicate_msgid_error PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_combine_msgidcomments PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_duplicates_msgctxt PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_blanks PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_output_str_unicode PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_posections PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_typecomments PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_future_flags PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unassociated_comments PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode_header PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_prevmsgid_parse PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_newlines PASSED [ 76%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unix_newlines PASSED [ 77%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines PASSED [ 77%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mac_newlines PASSED [ 77%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines PASSED [ 77%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_header PASSED [ 77%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_comment PASSED [ 77%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_bom PASSED [ 77%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_long_msgidcomments PASSED [ 77%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_incomplete PASSED [ 77%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_invalid PASSED [ 77%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines_write PASSED [ 77%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_typecomment XFAIL [ 77%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines_typecomment PASSED [ 77%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_custom PASSED [ 77%] 393s tests/translate/storage/test_pypo.py::TestPYPOFile::test_line_number PASSED [ 77%] 393s tests/translate/storage/test_qm.py::TestQtUnit::test_isfuzzy PASSED [ 77%] 393s tests/translate/storage/test_qm.py::TestQtUnit::test_create PASSED [ 77%] 393s tests/translate/storage/test_qm.py::TestQtUnit::test_eq PASSED [ 77%] 393s tests/translate/storage/test_qm.py::TestQtUnit::test_target PASSED [ 77%] 393s tests/translate/storage/test_qm.py::TestQtUnit::test_escapes PASSED [ 77%] 393s tests/translate/storage/test_qm.py::TestQtUnit::test_difficult_escapes PASSED [ 77%] 393s tests/translate/storage/test_qm.py::TestQtUnit::test_note_sanity PASSED [ 77%] 393s tests/translate/storage/test_qm.py::TestQtUnit::test_line_number_default PASSED [ 77%] 393s tests/translate/storage/test_qm.py::TestQtUnit::test_rich_get PASSED [ 77%] 393s tests/translate/storage/test_qm.py::TestQtUnit::test_rich_set PASSED [ 77%] 393s tests/translate/storage/test_qm.py::TestQtFile::test_create_blank PASSED [ 77%] 393s tests/translate/storage/test_qm.py::TestQtFile::test_find PASSED [ 77%] 393s tests/translate/storage/test_qm.py::TestQtFile::test_translate PASSED [ 77%] 393s tests/translate/storage/test_qm.py::TestQtFile::test_markup PASSED [ 77%] 393s tests/translate/storage/test_qm.py::TestQtFile::test_extensions PASSED [ 77%] 393s tests/translate/storage/test_qm.py::TestQtFile::test_mimetypes PASSED [ 77%] 393s tests/translate/storage/test_qm.py::TestQtFile::test_parse PASSED [ 77%] 393s tests/translate/storage/test_qm.py::TestQtFile::test_save PASSED [ 77%] 393s tests/translate/storage/test_qm.py::TestQtFile::test_files PASSED [ 77%] 393s tests/translate/storage/test_qm.py::TestQtFile::test_nonascii PASSED [ 77%] 393s tests/translate/storage/test_qm.py::TestQtFile::test_add PASSED [ 77%] 393s tests/translate/storage/test_qm.py::TestQtFile::test_remove PASSED [ 77%] 393s tests/translate/storage/test_qph.py::TestQphUnit::test_isfuzzy PASSED [ 77%] 393s tests/translate/storage/test_qph.py::TestQphUnit::test_create PASSED [ 77%] 393s tests/translate/storage/test_qph.py::TestQphUnit::test_eq PASSED [ 78%] 393s tests/translate/storage/test_qph.py::TestQphUnit::test_target PASSED [ 78%] 393s tests/translate/storage/test_qph.py::TestQphUnit::test_escapes PASSED [ 78%] 393s tests/translate/storage/test_qph.py::TestQphUnit::test_difficult_escapes PASSED [ 78%] 393s tests/translate/storage/test_qph.py::TestQphUnit::test_note_sanity PASSED [ 78%] 393s tests/translate/storage/test_qph.py::TestQphUnit::test_line_number_default PASSED [ 78%] 393s tests/translate/storage/test_qph.py::TestQphUnit::test_rich_get PASSED [ 78%] 393s tests/translate/storage/test_qph.py::TestQphUnit::test_rich_set PASSED [ 78%] 393s tests/translate/storage/test_qph.py::TestQphFile::test_create_blank PASSED [ 78%] 393s tests/translate/storage/test_qph.py::TestQphFile::test_add PASSED [ 78%] 393s tests/translate/storage/test_qph.py::TestQphFile::test_remove PASSED [ 78%] 393s tests/translate/storage/test_qph.py::TestQphFile::test_find PASSED [ 78%] 393s tests/translate/storage/test_qph.py::TestQphFile::test_translate PASSED [ 78%] 393s tests/translate/storage/test_qph.py::TestQphFile::test_parse PASSED [ 78%] 393s tests/translate/storage/test_qph.py::TestQphFile::test_files PASSED [ 78%] 393s tests/translate/storage/test_qph.py::TestQphFile::test_save PASSED [ 78%] 393s tests/translate/storage/test_qph.py::TestQphFile::test_markup PASSED [ 78%] 393s tests/translate/storage/test_qph.py::TestQphFile::test_nonascii PASSED [ 78%] 393s tests/translate/storage/test_qph.py::TestQphFile::test_extensions PASSED [ 78%] 393s tests/translate/storage/test_qph.py::TestQphFile::test_mimetypes PASSED [ 78%] 393s tests/translate/storage/test_qph.py::TestQphFile::test_basic PASSED [ 78%] 393s tests/translate/storage/test_qph.py::TestQphFile::test_source PASSED [ 78%] 393s tests/translate/storage/test_qph.py::TestQphFile::test_target PASSED [ 78%] 393s tests/translate/storage/test_qph.py::TestQphFile::test_language PASSED [ 78%] 393s tests/translate/storage/test_rc.py::test_escaping PASSED [ 78%] 393s tests/translate/storage/test_rc.py::TestRcFile::test_parse_only_comments PASSED [ 78%] 393s tests/translate/storage/test_rc.py::TestRcFile::test_parse_only_textinclude PASSED [ 78%] 393s tests/translate/storage/test_rc.py::TestRcFile::test_parse_dialog PASSED [ 78%] 393s tests/translate/storage/test_rc.py::TestRcFile::test_parse_stringtable PASSED [ 78%] 393s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_lf PASSED [ 78%] 393s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_crlf PASSED [ 78%] 393s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_cr PASSED [ 78%] 393s tests/translate/storage/test_rc.py::TestRcFile::test_parse_no_language PASSED [ 78%] 393s tests/translate/storage/test_rc.py::TestRcFile::test_textinclude PASSED [ 78%] 393s tests/translate/storage/test_rc.py::TestRcFile::test_multiline PASSED [ 78%] 393s tests/translate/storage/test_rc.py::TestRcFile::test_str PASSED [ 78%] 393s tests/translate/storage/test_rc.py::TestRcFile::test_empty PASSED [ 78%] 393s tests/translate/storage/test_rc.py::TestRcFile::test_utf_8 PASSED [ 78%] 393s tests/translate/storage/test_rc.py::TestRcFile::test_utf_16 PASSED [ 78%] 393s tests/translate/storage/test_rc.py::TestRcFile::test_comment PASSED [ 79%] 393s tests/translate/storage/test_rc.py::TestRcFile::test_stringtables PASSED [ 79%] 393s tests/translate/storage/test_rc.py::TestRcFile::test_textinclude_appstudio PASSED [ 79%] 393s tests/translate/storage/test_rc.py::TestRcFile::test_id_whitespace PASSED [ 79%] 393s tests/translate/storage/test_rc.py::TestRcFile::test_menu_comment PASSED [ 79%] 393s tests/translate/storage/test_rc.py::TestRcFile::test_decompiled PASSED [ 79%] 393s tests/translate/storage/test_rc.py::TestRcFile::test_quotes PASSED [ 79%] 393s tests/translate/storage/test_rc.py::TestRcFile::test_utf16_pragma_code_page PASSED [ 79%] 393s tests/translate/storage/test_rc.py::TestRcFile::test_utf8_pragma_code_page PASSED [ 79%] 393s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_isfuzzy PASSED [ 79%] 393s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_create PASSED [ 79%] 393s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_eq PASSED [ 79%] 393s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_escapes PASSED [ 79%] 393s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_difficult_escapes PASSED [ 79%] 393s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_note_sanity PASSED [ 79%] 393s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_line_number_default PASSED [ 79%] 393s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_target PASSED [ 79%] 393s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_rich_get PASSED [ 79%] 393s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_rich_set PASSED [ 79%] 393s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_create_blank PASSED [ 79%] 393s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_add PASSED [ 79%] 393s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_remove PASSED [ 79%] 393s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_find PASSED [ 79%] 393s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_parse PASSED [ 79%] 393s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_files PASSED [ 79%] 393s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_save PASSED [ 79%] 393s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_extensions PASSED [ 79%] 393s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_mimetypes PASSED [ 79%] 393s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_translate PASSED [ 79%] 393s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_markup PASSED [ 79%] 393s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_nonascii PASSED [ 79%] 393s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_roundtrip PASSED [ 79%] 393s tests/translate/storage/test_resx.py::TestRESXUnit::test_isfuzzy PASSED [ 79%] 393s tests/translate/storage/test_resx.py::TestRESXUnit::test_create PASSED [ 79%] 393s tests/translate/storage/test_resx.py::TestRESXUnit::test_eq PASSED [ 79%] 393s tests/translate/storage/test_resx.py::TestRESXUnit::test_escapes PASSED [ 79%] 393s tests/translate/storage/test_resx.py::TestRESXUnit::test_difficult_escapes PASSED [ 79%] 393s tests/translate/storage/test_resx.py::TestRESXUnit::test_note_sanity PASSED [ 79%] 393s tests/translate/storage/test_resx.py::TestRESXUnit::test_line_number_default PASSED [ 79%] 393s tests/translate/storage/test_resx.py::TestRESXUnit::test_target PASSED [ 80%] 393s tests/translate/storage/test_resx.py::TestRESXUnit::test_rich_get PASSED [ 80%] 393s tests/translate/storage/test_resx.py::TestRESXUnit::test_rich_set PASSED [ 80%] 393s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_isfuzzy PASSED [ 80%] 393s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_create PASSED [ 80%] 393s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_eq PASSED [ 80%] 393s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_escapes PASSED [ 80%] 393s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_difficult_escapes PASSED [ 80%] 393s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_note_sanity PASSED [ 80%] 393s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_line_number_default PASSED [ 80%] 393s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_target PASSED [ 80%] 393s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_rich_get PASSED [ 80%] 393s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_rich_set PASSED [ 80%] 393s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_newunit PASSED [ 80%] 393s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_newunit_comment PASSED [ 80%] 393s tests/translate/storage/test_resx.py::TestRESXfile::test_create_blank PASSED [ 80%] 393s tests/translate/storage/test_resx.py::TestRESXfile::test_add PASSED [ 80%] 393s tests/translate/storage/test_resx.py::TestRESXfile::test_remove PASSED [ 80%] 393s tests/translate/storage/test_resx.py::TestRESXfile::test_find PASSED [ 80%] 393s tests/translate/storage/test_resx.py::TestRESXfile::test_parse PASSED [ 80%] 393s tests/translate/storage/test_resx.py::TestRESXfile::test_files PASSED [ 80%] 393s tests/translate/storage/test_resx.py::TestRESXfile::test_save PASSED [ 80%] 393s tests/translate/storage/test_resx.py::TestRESXfile::test_extensions PASSED [ 80%] 393s tests/translate/storage/test_resx.py::TestRESXfile::test_mimetypes PASSED [ 80%] 393s tests/translate/storage/test_resx.py::TestRESXfile::test_translate PASSED [ 80%] 393s tests/translate/storage/test_resx.py::TestRESXfile::test_markup PASSED [ 80%] 393s tests/translate/storage/test_resx.py::TestRESXfile::test_nonascii PASSED [ 80%] 393s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_isfuzzy PASSED [ 80%] 393s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_create PASSED [ 80%] 393s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_eq PASSED [ 80%] 393s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_escapes PASSED [ 80%] 393s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_difficult_escapes PASSED [ 80%] 393s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_note_sanity PASSED [ 80%] 393s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_line_number_default PASSED [ 80%] 393s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_target PASSED [ 80%] 393s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_rich_get PASSED [ 80%] 393s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_rich_set PASSED [ 80%] 393s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_source PASSED [ 80%] 393s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_eq_formatvaluetype PASSED [ 80%] 393s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_innerkey PASSED [ 81%] 393s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_create_blank PASSED [ 81%] 393s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_add PASSED [ 81%] 393s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_remove PASSED [ 81%] 393s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_find PASSED [ 81%] 393s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_parse PASSED [ 81%] 393s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_files PASSED [ 81%] 393s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_save PASSED [ 81%] 393s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_extensions PASSED [ 81%] 393s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_mimetypes PASSED [ 81%] 393s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_translate PASSED [ 81%] 393s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_markup PASSED [ 81%] 393s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_nonascii PASSED [ 81%] 393s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_serialize PASSED [ 81%] 393s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_default_handlings PASSED [ 81%] 393s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_filename PASSED [ 81%] 393s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_base_filename PASSED [ 81%] 393s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_filename_default_language PASSED [ 81%] 393s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_plural_zero_always_set PASSED [ 81%] 393s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_add_unit PASSED [ 81%] 393s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_create_blank PASSED [ 81%] 393s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_add PASSED [ 81%] 393s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_remove PASSED [ 81%] 393s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_find PASSED [ 81%] 393s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_parse PASSED [ 81%] 393s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_files PASSED [ 81%] 393s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_save PASSED [ 81%] 393s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_extensions PASSED [ 81%] 393s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_mimetypes PASSED [ 81%] 393s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_translate PASSED [ 81%] 393s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_markup PASSED [ 81%] 393s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_nonascii PASSED [ 81%] 393s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_ordering PASSED [ 81%] 393s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_create_blank PASSED [ 81%] 393s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_add PASSED [ 81%] 393s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_remove PASSED [ 81%] 393s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_find PASSED [ 81%] 393s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_parse PASSED [ 81%] 393s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_files PASSED [ 81%] 393s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_save PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_extensions PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_mimetypes PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_translate PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_markup PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_nonascii PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_ordering PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_note_sanity XFAIL [ 82%] 393s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_create_blank PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_add PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_remove PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_find PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_parse PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_files PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_save PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_extensions PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_mimetypes PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_translate PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_markup PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_nonascii PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_ordering PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_create_blank PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_add PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_remove PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_find PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_parse PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_files PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_save PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_extensions PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_mimetypes PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_translate PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_markup PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_nonascii PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_ordering PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_style_preservation PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_create_blank PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_add PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_remove PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_find PASSED [ 82%] 393s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_parse PASSED [ 83%] 393s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_files PASSED [ 83%] 393s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_save PASSED [ 83%] 393s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_extensions PASSED [ 83%] 393s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_mimetypes PASSED [ 83%] 393s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_translate PASSED [ 83%] 393s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_markup PASSED [ 83%] 393s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_nonascii PASSED [ 83%] 393s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_ordering PASSED [ 83%] 393s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_style_preservation PASSED [ 83%] 393s tests/translate/storage/test_tbx.py::TestTBXUnit::test_isfuzzy PASSED [ 83%] 393s tests/translate/storage/test_tbx.py::TestTBXUnit::test_create PASSED [ 83%] 393s tests/translate/storage/test_tbx.py::TestTBXUnit::test_eq PASSED [ 83%] 393s tests/translate/storage/test_tbx.py::TestTBXUnit::test_target PASSED [ 83%] 393s tests/translate/storage/test_tbx.py::TestTBXUnit::test_escapes PASSED [ 83%] 393s tests/translate/storage/test_tbx.py::TestTBXUnit::test_difficult_escapes PASSED [ 83%] 393s tests/translate/storage/test_tbx.py::TestTBXUnit::test_note_sanity PASSED [ 83%] 393s tests/translate/storage/test_tbx.py::TestTBXUnit::test_line_number_default PASSED [ 83%] 393s tests/translate/storage/test_tbx.py::TestTBXUnit::test_rich_get PASSED [ 83%] 393s tests/translate/storage/test_tbx.py::TestTBXUnit::test_rich_set PASSED [ 83%] 393s tests/translate/storage/test_tbx.py::TestTBXfile::test_create_blank PASSED [ 83%] 393s tests/translate/storage/test_tbx.py::TestTBXfile::test_add PASSED [ 83%] 393s tests/translate/storage/test_tbx.py::TestTBXfile::test_remove PASSED [ 83%] 393s tests/translate/storage/test_tbx.py::TestTBXfile::test_find PASSED [ 83%] 393s tests/translate/storage/test_tbx.py::TestTBXfile::test_translate PASSED [ 83%] 393s tests/translate/storage/test_tbx.py::TestTBXfile::test_parse PASSED [ 83%] 393s tests/translate/storage/test_tbx.py::TestTBXfile::test_files PASSED [ 83%] 394s tests/translate/storage/test_tbx.py::TestTBXfile::test_save PASSED [ 83%] 394s tests/translate/storage/test_tbx.py::TestTBXfile::test_markup PASSED [ 83%] 394s tests/translate/storage/test_tbx.py::TestTBXfile::test_nonascii PASSED [ 83%] 394s tests/translate/storage/test_tbx.py::TestTBXfile::test_extensions PASSED [ 83%] 394s tests/translate/storage/test_tbx.py::TestTBXfile::test_mimetypes PASSED [ 83%] 394s tests/translate/storage/test_tbx.py::TestTBXfile::test_basic PASSED [ 83%] 394s tests/translate/storage/test_tbx.py::TestTBXfile::test_source PASSED [ 83%] 394s tests/translate/storage/test_tbx.py::TestTBXfile::test_target PASSED [ 83%] 394s tests/translate/storage/test_tbx.py::TestTBXfile::test_setid PASSED [ 83%] 394s tests/translate/storage/test_tbx.py::TestTBXfile::test_indent PASSED [ 83%] 394s tests/translate/storage/test_tbx.py::TestTBXfile::test_descrip PASSED [ 83%] 394s tests/translate/storage/test_tbx.py::TestTBXfile::test_note_from PASSED [ 83%] 394s tests/translate/storage/test_tbx.py::TestTBXfile::test_administrative_status_and_translation_needed PASSED [ 84%] 394s tests/translate/storage/test_tiki.py::TestTikiUnit::test_locations PASSED [ 84%] 394s tests/translate/storage/test_tiki.py::TestTikiUnit::test_to_unicode PASSED [ 84%] 394s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_simple PASSED [ 84%] 394s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_encode PASSED [ 84%] 394s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_locations PASSED [ 84%] 394s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_ignore_extras PASSED [ 84%] 394s tests/translate/storage/test_tmx.py::TestTMXUnit::test_isfuzzy PASSED [ 84%] 394s tests/translate/storage/test_tmx.py::TestTMXUnit::test_create PASSED [ 84%] 394s tests/translate/storage/test_tmx.py::TestTMXUnit::test_eq PASSED [ 84%] 394s tests/translate/storage/test_tmx.py::TestTMXUnit::test_target PASSED [ 84%] 394s tests/translate/storage/test_tmx.py::TestTMXUnit::test_escapes PASSED [ 84%] 394s tests/translate/storage/test_tmx.py::TestTMXUnit::test_difficult_escapes PASSED [ 84%] 394s tests/translate/storage/test_tmx.py::TestTMXUnit::test_note_sanity PASSED [ 84%] 394s tests/translate/storage/test_tmx.py::TestTMXUnit::test_line_number_default PASSED [ 84%] 394s tests/translate/storage/test_tmx.py::TestTMXUnit::test_rich_get PASSED [ 84%] 394s tests/translate/storage/test_tmx.py::TestTMXUnit::test_rich_set PASSED [ 84%] 394s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_isfuzzy PASSED [ 84%] 394s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_create PASSED [ 84%] 394s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_eq PASSED [ 84%] 394s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_target PASSED [ 84%] 394s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_escapes PASSED [ 84%] 394s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_difficult_escapes PASSED [ 84%] 394s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_note_sanity PASSED [ 84%] 394s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_line_number_default PASSED [ 84%] 394s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_rich_get PASSED [ 84%] 394s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_rich_set PASSED [ 84%] 394s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_context PASSED [ 84%] 394s tests/translate/storage/test_tmx.py::TestTMXfile::test_create_blank PASSED [ 84%] 394s tests/translate/storage/test_tmx.py::TestTMXfile::test_add PASSED [ 84%] 394s tests/translate/storage/test_tmx.py::TestTMXfile::test_remove PASSED [ 84%] 394s tests/translate/storage/test_tmx.py::TestTMXfile::test_find PASSED [ 84%] 394s tests/translate/storage/test_tmx.py::TestTMXfile::test_parse PASSED [ 84%] 394s tests/translate/storage/test_tmx.py::TestTMXfile::test_files PASSED [ 84%] 394s tests/translate/storage/test_tmx.py::TestTMXfile::test_save PASSED [ 84%] 394s tests/translate/storage/test_tmx.py::TestTMXfile::test_markup PASSED [ 84%] 394s tests/translate/storage/test_tmx.py::TestTMXfile::test_nonascii PASSED [ 84%] 394s tests/translate/storage/test_tmx.py::TestTMXfile::test_extensions PASSED [ 84%] 394s tests/translate/storage/test_tmx.py::TestTMXfile::test_mimetypes PASSED [ 84%] 394s tests/translate/storage/test_tmx.py::TestTMXfile::test_translate PASSED [ 85%] 394s tests/translate/storage/test_tmx.py::TestTMXfile::test_addtranslation PASSED [ 85%] 394s tests/translate/storage/test_tmx.py::TestTMXfile::test_withcomment PASSED [ 85%] 394s tests/translate/storage/test_tmx.py::TestTMXfile::test_withnewlines PASSED [ 85%] 394s tests/translate/storage/test_tmx.py::TestTMXfile::test_xmlentities PASSED [ 85%] 394s tests/translate/storage/test_tmx.py::TestTMXfile::test_controls_cleaning PASSED [ 85%] 394s tests/translate/storage/test_tmx.py::TestTMXfile::test_context PASSED [ 85%] 394s tests/translate/storage/test_tmx.py::TestTMXfile::test_note_order PASSED [ 85%] 394s tests/translate/storage/test_tmx.py::TestTMXfile::test_prop_and_note_order PASSED [ 85%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_isfuzzy PASSED [ 85%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_create PASSED [ 85%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_eq PASSED [ 85%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_escapes PASSED [ 85%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_difficult_escapes PASSED [ 85%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_note_sanity PASSED [ 85%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_line_number_default PASSED [ 85%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_target PASSED [ 85%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_rich_get PASSED [ 85%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_rich_set PASSED [ 85%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_getlocations PASSED [ 85%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_create_blank PASSED [ 85%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_add PASSED [ 85%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_find PASSED [ 85%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_parse PASSED [ 85%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_files PASSED [ 85%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_save PASSED [ 85%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_extensions PASSED [ 85%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_mimetypes PASSED [ 85%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_translate PASSED [ 85%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_markup PASSED [ 85%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_nonascii PASSED [ 85%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_serialize PASSED [ 85%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_empty PASSED [ 85%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_edit PASSED [ 85%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_edit_unicode PASSED [ 85%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_parse_unicode_list PASSED [ 85%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_ordering PASSED [ 85%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_nested PASSED [ 85%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_multiline PASSED [ 85%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_boolean PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_integer PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_no_quote_strings PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_double_quote_strings PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_single_quote_strings PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_escaped_double_quotes PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_newlines PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_list PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_inline_table PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_key_nesting PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_add_to_empty PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_dict_in_list PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_remove PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_special PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_extraction_simple PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_extraction_multiline PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_no_comment_backwards_compat PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_simple PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_multiline PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_nested PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_with_modification PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_literal_string PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_multiline_basic_string PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_multiline_literal_string PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_create_blank PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_add PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_remove PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_find PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_parse PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_files PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_save PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_extensions PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_mimetypes PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_translate PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_markup PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_nonascii PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_simple_plural PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_plural_with_other_keys PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_full_plural_forms PASSED [ 86%] 394s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_roundtrip_plural PASSED [ 87%] 394s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_mixed_content PASSED [ 87%] 394s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_letsencrypt_style PASSED [ 87%] 394s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_comment_preservation_goi18n PASSED [ 87%] 394s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_comment_preservation_goi18n_plural PASSED [ 87%] 394s tests/translate/storage/test_trados.py::test_unescape PASSED [ 87%] 394s tests/translate/storage/test_trados.py::test_escape PASSED [ 87%] 394s tests/translate/storage/test_ts.py::TestTS::test_construct PASSED [ 87%] 394s tests/translate/storage/test_ts2.py::TestTSUnit::test_isfuzzy PASSED [ 87%] 394s tests/translate/storage/test_ts2.py::TestTSUnit::test_create PASSED [ 87%] 394s tests/translate/storage/test_ts2.py::TestTSUnit::test_eq PASSED [ 87%] 394s tests/translate/storage/test_ts2.py::TestTSUnit::test_target PASSED [ 87%] 394s tests/translate/storage/test_ts2.py::TestTSUnit::test_escapes PASSED [ 87%] 394s tests/translate/storage/test_ts2.py::TestTSUnit::test_difficult_escapes PASSED [ 87%] 394s tests/translate/storage/test_ts2.py::TestTSUnit::test_note_sanity PASSED [ 87%] 394s tests/translate/storage/test_ts2.py::TestTSUnit::test_line_number_default PASSED [ 87%] 394s tests/translate/storage/test_ts2.py::TestTSUnit::test_rich_get PASSED [ 87%] 394s tests/translate/storage/test_ts2.py::TestTSUnit::test_rich_set PASSED [ 87%] 394s tests/translate/storage/test_ts2.py::TestTSfile::test_create_blank PASSED [ 87%] 394s tests/translate/storage/test_ts2.py::TestTSfile::test_add PASSED [ 87%] 394s tests/translate/storage/test_ts2.py::TestTSfile::test_remove PASSED [ 87%] 394s tests/translate/storage/test_ts2.py::TestTSfile::test_find PASSED [ 87%] 394s tests/translate/storage/test_ts2.py::TestTSfile::test_translate PASSED [ 87%] 394s tests/translate/storage/test_ts2.py::TestTSfile::test_parse PASSED [ 87%] 394s tests/translate/storage/test_ts2.py::TestTSfile::test_files PASSED [ 87%] 394s tests/translate/storage/test_ts2.py::TestTSfile::test_save PASSED [ 87%] 394s tests/translate/storage/test_ts2.py::TestTSfile::test_markup PASSED [ 87%] 394s tests/translate/storage/test_ts2.py::TestTSfile::test_nonascii PASSED [ 87%] 394s tests/translate/storage/test_ts2.py::TestTSfile::test_extensions PASSED [ 87%] 394s tests/translate/storage/test_ts2.py::TestTSfile::test_mimetypes PASSED [ 87%] 394s tests/translate/storage/test_ts2.py::TestTSfile::test_basic PASSED [ 87%] 394s tests/translate/storage/test_ts2.py::TestTSfile::test_source PASSED [ 87%] 394s tests/translate/storage/test_ts2.py::TestTSfile::test_target PASSED [ 87%] 394s tests/translate/storage/test_ts2.py::TestTSfile::test_plurals PASSED [ 87%] 394s tests/translate/storage/test_ts2.py::TestTSfile::test_nplural PASSED [ 87%] 394s tests/translate/storage/test_ts2.py::TestTSfile::test_language PASSED [ 87%] 394s tests/translate/storage/test_ts2.py::TestTSfile::test_edit PASSED [ 87%] 394s tests/translate/storage/test_ts2.py::TestTSfile::test_obsolete PASSED [ 87%] 394s tests/translate/storage/test_ts2.py::TestTSfile::test_locations PASSED [ 87%] 394s tests/translate/storage/test_ts2.py::TestTSfile::test_merge_with_fuzzies PASSED [ 88%] 394s tests/translate/storage/test_ts2.py::TestTSfile::test_getid PASSED [ 88%] 394s tests/translate/storage/test_ts2.py::TestTSfile::test_backnforth PASSED [ 88%] 394s tests/translate/storage/test_ts2.py::TestTSfile::test_context PASSED [ 88%] 394s tests/translate/storage/test_ts2.py::TestTSfile::test_roundtrip_context PASSED [ 88%] 394s tests/translate/storage/test_ts2.py::TestTSfile::test_edit_missing_translation PASSED [ 88%] 394s tests/translate/storage/test_ts2.py::TestTSfile::test_missing_source PASSED [ 88%] 394s tests/translate/storage/test_txt.py::TestTxtUnit::test_isfuzzy PASSED [ 88%] 394s tests/translate/storage/test_txt.py::TestTxtUnit::test_create PASSED [ 88%] 394s tests/translate/storage/test_txt.py::TestTxtUnit::test_eq PASSED [ 88%] 394s tests/translate/storage/test_txt.py::TestTxtUnit::test_escapes PASSED [ 88%] 394s tests/translate/storage/test_txt.py::TestTxtUnit::test_difficult_escapes PASSED [ 88%] 394s tests/translate/storage/test_txt.py::TestTxtUnit::test_note_sanity PASSED [ 88%] 394s tests/translate/storage/test_txt.py::TestTxtUnit::test_line_number_default PASSED [ 88%] 394s tests/translate/storage/test_txt.py::TestTxtUnit::test_target PASSED [ 88%] 394s tests/translate/storage/test_txt.py::TestTxtUnit::test_rich_get PASSED [ 88%] 394s tests/translate/storage/test_txt.py::TestTxtUnit::test_rich_set PASSED [ 88%] 394s tests/translate/storage/test_txt.py::TestTxtFile::test_create_blank PASSED [ 88%] 394s tests/translate/storage/test_txt.py::TestTxtFile::test_add PASSED [ 88%] 394s tests/translate/storage/test_txt.py::TestTxtFile::test_remove PASSED [ 88%] 394s tests/translate/storage/test_txt.py::TestTxtFile::test_find PASSED [ 88%] 394s tests/translate/storage/test_txt.py::TestTxtFile::test_parse PASSED [ 88%] 394s tests/translate/storage/test_txt.py::TestTxtFile::test_files PASSED [ 88%] 394s tests/translate/storage/test_txt.py::TestTxtFile::test_save PASSED [ 88%] 394s tests/translate/storage/test_txt.py::TestTxtFile::test_extensions PASSED [ 88%] 394s tests/translate/storage/test_txt.py::TestTxtFile::test_mimetypes PASSED [ 88%] 394s tests/translate/storage/test_txt.py::TestTxtFile::test_translate PASSED [ 88%] 394s tests/translate/storage/test_txt.py::TestTxtFile::test_markup PASSED [ 88%] 394s tests/translate/storage/test_txt.py::TestTxtFile::test_nonascii PASSED [ 88%] 394s tests/translate/storage/test_txt.py::TestTxtFile::test_simpleblock PASSED [ 88%] 394s tests/translate/storage/test_txt.py::TestTxtFile::test_multipleblocks PASSED [ 88%] 394s tests/translate/storage/test_txt.py::TestTxtFile::test_no_segmentation PASSED [ 88%] 394s tests/translate/storage/test_utx.py::TestUtxUnit::test_isfuzzy PASSED [ 88%] 394s tests/translate/storage/test_utx.py::TestUtxUnit::test_create PASSED [ 88%] 394s tests/translate/storage/test_utx.py::TestUtxUnit::test_eq PASSED [ 88%] 394s tests/translate/storage/test_utx.py::TestUtxUnit::test_target PASSED [ 88%] 394s tests/translate/storage/test_utx.py::TestUtxUnit::test_escapes PASSED [ 88%] 394s tests/translate/storage/test_utx.py::TestUtxUnit::test_difficult_escapes PASSED [ 88%] 394s tests/translate/storage/test_utx.py::TestUtxUnit::test_note_sanity PASSED [ 88%] 394s tests/translate/storage/test_utx.py::TestUtxUnit::test_line_number_default PASSED [ 89%] 394s tests/translate/storage/test_utx.py::TestUtxUnit::test_rich_get PASSED [ 89%] 394s tests/translate/storage/test_utx.py::TestUtxUnit::test_rich_set PASSED [ 89%] 394s tests/translate/storage/test_utx.py::TestUtxFile::test_create_blank PASSED [ 89%] 394s tests/translate/storage/test_utx.py::TestUtxFile::test_add PASSED [ 89%] 394s tests/translate/storage/test_utx.py::TestUtxFile::test_remove PASSED [ 89%] 394s tests/translate/storage/test_utx.py::TestUtxFile::test_find PASSED [ 89%] 394s tests/translate/storage/test_utx.py::TestUtxFile::test_translate PASSED [ 89%] 394s tests/translate/storage/test_utx.py::TestUtxFile::test_parse PASSED [ 89%] 394s tests/translate/storage/test_utx.py::TestUtxFile::test_files PASSED [ 89%] 394s tests/translate/storage/test_utx.py::TestUtxFile::test_save PASSED [ 89%] 394s tests/translate/storage/test_utx.py::TestUtxFile::test_markup PASSED [ 89%] 394s tests/translate/storage/test_utx.py::TestUtxFile::test_nonascii PASSED [ 89%] 394s tests/translate/storage/test_utx.py::TestUtxFile::test_extensions PASSED [ 89%] 394s tests/translate/storage/test_utx.py::TestUtxFile::test_mimetypes PASSED [ 89%] 394s tests/translate/storage/test_wordfast.py::TestWFTime::test_timestring PASSED [ 89%] 394s tests/translate/storage/test_wordfast.py::TestWFTime::test_time PASSED [ 89%] 394s tests/translate/storage/test_wordfast.py::TestWFUnit::test_isfuzzy PASSED [ 89%] 394s tests/translate/storage/test_wordfast.py::TestWFUnit::test_create PASSED [ 89%] 394s tests/translate/storage/test_wordfast.py::TestWFUnit::test_eq PASSED [ 89%] 394s tests/translate/storage/test_wordfast.py::TestWFUnit::test_target PASSED [ 89%] 394s tests/translate/storage/test_wordfast.py::TestWFUnit::test_escapes PASSED [ 89%] 394s tests/translate/storage/test_wordfast.py::TestWFUnit::test_note_sanity PASSED [ 89%] 394s tests/translate/storage/test_wordfast.py::TestWFUnit::test_line_number_default PASSED [ 89%] 394s tests/translate/storage/test_wordfast.py::TestWFUnit::test_rich_get PASSED [ 89%] 394s tests/translate/storage/test_wordfast.py::TestWFUnit::test_rich_set PASSED [ 89%] 394s tests/translate/storage/test_wordfast.py::TestWFUnit::test_difficult_escapes PASSED [ 89%] 394s tests/translate/storage/test_wordfast.py::TestWFUnit::test_wordfast_escaping PASSED [ 89%] 394s tests/translate/storage/test_wordfast.py::TestWFUnit::test_newlines PASSED [ 89%] 394s tests/translate/storage/test_wordfast.py::TestWFUnit::test_language_setting PASSED [ 89%] 394s tests/translate/storage/test_wordfast.py::TestWFUnit::test_istranslated PASSED [ 89%] 394s tests/translate/storage/test_wordfast.py::TestWFFile::test_create_blank PASSED [ 89%] 394s tests/translate/storage/test_wordfast.py::TestWFFile::test_add PASSED [ 89%] 394s tests/translate/storage/test_wordfast.py::TestWFFile::test_remove PASSED [ 89%] 394s tests/translate/storage/test_wordfast.py::TestWFFile::test_find PASSED [ 89%] 394s tests/translate/storage/test_wordfast.py::TestWFFile::test_translate PASSED [ 89%] 394s tests/translate/storage/test_wordfast.py::TestWFFile::test_parse PASSED [ 89%] 394s tests/translate/storage/test_wordfast.py::TestWFFile::test_files PASSED [ 89%] 394s tests/translate/storage/test_wordfast.py::TestWFFile::test_save PASSED [ 89%] 394s tests/translate/storage/test_wordfast.py::TestWFFile::test_markup PASSED [ 90%] 394s tests/translate/storage/test_wordfast.py::TestWFFile::test_nonascii PASSED [ 90%] 394s tests/translate/storage/test_wordfast.py::TestWFFile::test_extensions PASSED [ 90%] 394s tests/translate/storage/test_wordfast.py::TestWFFile::test_mimetypes PASSED [ 90%] 394s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_isfuzzy PASSED [ 90%] 394s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_create PASSED [ 90%] 394s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_eq PASSED [ 90%] 394s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_target PASSED [ 90%] 394s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_escapes PASSED [ 90%] 394s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_difficult_escapes PASSED [ 90%] 394s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_note_sanity PASSED [ 90%] 394s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_line_number_default PASSED [ 90%] 394s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_rich_get PASSED [ 90%] 394s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_rich_set PASSED [ 90%] 394s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_markreview PASSED [ 90%] 394s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_errors PASSED [ 90%] 394s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_accepted_control_chars PASSED [ 90%] 394s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_unaccepted_control_chars PASSED [ 90%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_create_blank PASSED [ 90%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add PASSED [ 90%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_remove PASSED [ 90%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_find PASSED [ 90%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_translate PASSED [ 90%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_parse PASSED [ 90%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_files PASSED [ 90%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_save PASSED [ 90%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_markup PASSED [ 90%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_nonascii PASSED [ 90%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_extensions PASSED [ 90%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_mimetypes PASSED [ 90%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_basic PASSED [ 90%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_namespace PASSED [ 90%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_rich_source PASSED [ 90%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_rich_target PASSED [ 90%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_source PASSED [ 90%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_target PASSED [ 90%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_sourcelanguage PASSED [ 90%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_targetlanguage PASSED [ 90%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_targetlanguage_multi PASSED [ 90%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_notes PASSED [ 91%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_alttrans PASSED [ 91%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_fuzzy PASSED [ 91%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_xml_space PASSED [ 91%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_parsing PASSED [ 91%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_marktranslatable PASSED [ 91%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_entities PASSED [ 91%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_multiple_filenodes PASSED [ 91%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_groups_when_adding_units PASSED [ 91%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_multiple_files_and_groups PASSED [ 91%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_unit_to_existing_group PASSED [ 91%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_unit_to_different_file PASSED [ 91%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_mixed_groups_and_body PASSED [ 91%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_addunit_with_new_false PASSED [ 91%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_namespace_preservation_across_versions PASSED [ 91%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_units_between_different_files PASSED [ 91%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_group_preservation_across_different_namespaces PASSED [ 91%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_cross_namespace_group_and_file_preservation PASSED [ 91%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_indent PASSED [ 91%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_target PASSED [ 91%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve PASSED [ 91%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_closing_tags PASSED [ 91%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_context_groups PASSED [ 91%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_getlocations PASSED [ 91%] 394s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_addlocation PASSED [ 91%] 395s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_huge PASSED [ 91%] 395s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_add PASSED [ 91%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_isfuzzy PASSED [ 91%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_create PASSED [ 91%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_eq PASSED [ 91%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_target PASSED [ 91%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_escapes PASSED [ 91%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_difficult_escapes PASSED [ 91%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_note_sanity PASSED [ 91%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_line_number_default PASSED [ 91%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_rich_get PASSED [ 91%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_rich_set PASSED [ 91%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_notes PASSED [ 91%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_id_management PASSED [ 91%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_marktranslatable PASSED [ 92%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_create_blank PASSED [ 92%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_add PASSED [ 92%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_remove PASSED [ 92%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_find PASSED [ 92%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_translate PASSED [ 92%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_parse PASSED [ 92%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_files PASSED [ 92%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_save PASSED [ 92%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_markup PASSED [ 92%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_nonascii PASSED [ 92%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_extensions PASSED [ 92%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_mimetypes PASSED [ 92%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_basic PASSED [ 92%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_source_target PASSED [ 92%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_language_attributes PASSED [ 92%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_namespace PASSED [ 92%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_unit_structure PASSED [ 92%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_multiple_units PASSED [ 92%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_parse_xliff2 PASSED [ 92%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_parse_translate_attribute PASSED [ 92%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_multiple_segments_per_unit PASSED [ 92%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_mixed_single_and_multiple_segments PASSED [ 92%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_segments_without_ids PASSED [ 92%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_escaped_inline_tags PASSED [ 92%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_simple_source_target_pairs PASSED [ 92%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_malformed_xml_declaration PASSED [ 92%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_variable_placeholders PASSED [ 92%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_add_unit PASSED [ 92%] 395s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_states PASSED [ 92%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_isfuzzy PASSED [ 92%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_create PASSED [ 92%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_eq PASSED [ 92%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_escapes PASSED [ 92%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_difficult_escapes PASSED [ 92%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_note_sanity PASSED [ 92%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_line_number_default PASSED [ 92%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_target PASSED [ 92%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_rich_get PASSED [ 92%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_rich_set PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_getlocations PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_create_blank PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_add PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_find PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_parse PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_files PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_save PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_extensions PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_mimetypes PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_translate PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_markup PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_nonascii PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_serialize PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_empty PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_edit PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_edit_unicode PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_parse_unicode_list PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_ordering PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_initial_comments PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_string_key PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_nested PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_multiline PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_boolean PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_integer PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_no_quote_strings PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_double_quote_strings PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_single_quote_strings PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_avoid_escaping_double_quote_strings PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_avoid_escaping_single_quote_strings PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_escaped_double_quotes PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_newlines PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_abbreviated_list PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_abbreviated_dictionary PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_key_nesting PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_add_to_mepty PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_empty_key PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_dict_in_list PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_dump_args PASSED [ 93%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_anchors PASSED [ 94%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_tagged_scalar PASSED [ 94%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_numeric PASSED [ 94%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_remove PASSED [ 94%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_special PASSED [ 94%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_quotes_roundtrip PASSED [ 94%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_simple PASSED [ 94%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_multiline PASSED [ 94%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_nested PASSED [ 94%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_mixed PASSED [ 94%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_no_comment_backwards_compat PASSED [ 94%] 395s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_multiline_literal_format PASSED [ 94%] 395s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_create_blank PASSED [ 94%] 395s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_remove PASSED [ 94%] 395s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_find PASSED [ 94%] 395s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_parse PASSED [ 94%] 395s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_files PASSED [ 94%] 395s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_save PASSED [ 94%] 395s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_extensions PASSED [ 94%] 395s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_mimetypes PASSED [ 94%] 395s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_translate PASSED [ 94%] 395s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_markup PASSED [ 94%] 395s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_nonascii PASSED [ 94%] 395s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_list PASSED [ 94%] 395s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby PASSED [ 94%] 395s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_wrong PASSED [ 94%] 395s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_invalid_value PASSED [ 94%] 395s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural PASSED [ 94%] 395s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_empty PASSED [ 94%] 395s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_anchors PASSED [ 94%] 395s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_type_change PASSED [ 94%] 395s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_add PASSED [ 94%] 395s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_blank PASSED [ 94%] 395s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_partial PASSED [ 94%] 395s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_pt_br PASSED [ 94%] 395s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_bug_ruby_remove_zero_few_and_mix_others PASSED [ 94%] 395s tests/translate/storage/xml_extract/test_misc.py::test_reduce_tree PASSED [ 94%] 395s tests/translate/storage/xml_extract/test_misc.py::test_compose_mappings PASSED [ 94%] 395s tests/translate/storage/xml_extract/test_misc.py::test_parse_tag PASSED [ 94%] 395s tests/translate/storage/xml_extract/test_unit_tree.py::test__split_xpath_component PASSED [ 95%] 395s tests/translate/storage/xml_extract/test_unit_tree.py::test__split_xpath PASSED [ 95%] 395s tests/translate/storage/xml_extract/test_unit_tree.py::test__add_unit_to_tree PASSED [ 95%] 395s tests/translate/storage/xml_extract/test_xpath_breadcrumb.py::test_breadcrumb PASSED [ 95%] 395s tests/translate/tools/test_help.py::test_help[build_tmdb] PASSED [ 95%] 395s tests/translate/tools/test_help.py::test_help[phppo2pypo] PASSED [ 95%] 395s tests/translate/tools/test_help.py::test_help[poclean] PASSED [ 95%] 395s tests/translate/tools/test_help.py::test_help[pocompile] PASSED [ 95%] 395s tests/translate/tools/test_help.py::test_help[poconflicts] PASSED [ 95%] 395s tests/translate/tools/test_help.py::test_help[pocount] PASSED [ 95%] 396s tests/translate/tools/test_help.py::test_help[podebug] PASSED [ 95%] 396s tests/translate/tools/test_help.py::test_help[pogrep] PASSED [ 95%] 396s tests/translate/tools/test_help.py::test_help[pomerge] PASSED [ 95%] 396s tests/translate/tools/test_help.py::test_help[porestructure] PASSED [ 95%] 396s tests/translate/tools/test_help.py::test_help[posegment] PASSED [ 95%] 396s tests/translate/tools/test_help.py::test_help[poswap] PASSED [ 95%] 396s tests/translate/tools/test_help.py::test_help[poterminology] PASSED [ 95%] 396s tests/translate/tools/test_help.py::test_help[pretranslate] PASSED [ 95%] 396s tests/translate/tools/test_help.py::test_help[pydiff] PASSED [ 95%] 396s tests/translate/tools/test_help.py::test_help[pypo2phppo] PASSED [ 95%] 396s tests/translate/tools/test_junitmsgfmt.py::test_output[failure] PASSED [ 95%] 396s tests/translate/tools/test_junitmsgfmt.py::test_output[untranslated] PASSED [ 95%] 396s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPo::test_single_po PASSED [ 95%] 396s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPo::test_plural_po PASSED [ 95%] 396s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_single_po PASSED [ 95%] 396s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_plural_po PASSED [ 95%] 396s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_help PASSED [ 95%] 396s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_zero PASSED [ 95%] 396s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_one PASSED [ 95%] 396s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_two PASSED [ 95%] 396s tests/translate/tools/test_pocount.py::TestCount::test_punctuation_divides_words PASSED [ 95%] 396s tests/translate/tools/test_pocount.py::TestCount::test_xml_tags PASSED [ 95%] 396s tests/translate/tools/test_pocount.py::TestCount::test_newlines PASSED [ 95%] 396s tests/translate/tools/test_pocount.py::TestCount::test_variables_are_words PASSED [ 95%] 396s tests/translate/tools/test_pocount.py::TestCount::test_plurals PASSED [ 95%] 396s tests/translate/tools/test_pocount.py::TestCount::test_plurals_kde XFAIL [ 95%] 396s tests/translate/tools/test_pocount.py::TestCount::test_msgid_blank PASSED [ 95%] 396s tests/translate/tools/test_pocount.py::TestPOCount::test_translated PASSED [ 95%] 396s tests/translate/tools/test_pocount.py::TestPOCount::test_fuzzy PASSED [ 95%] 396s tests/translate/tools/test_pocount.py::TestPOCount::test_untranslated PASSED [ 96%] 396s tests/translate/tools/test_pocount.py::TestPOCount::test_total PASSED [ 96%] 396s tests/translate/tools/test_pocount.py::TestPOCount::test_translatedsourcewords PASSED [ 96%] 396s tests/translate/tools/test_pocount.py::TestPOCount::test_fuzzysourcewords PASSED [ 96%] 396s tests/translate/tools/test_pocount.py::TestPOCount::test_untranslatedsourcewords PASSED [ 96%] 396s tests/translate/tools/test_pocount.py::TestPOCount::test_totalsourcewords PASSED [ 96%] 396s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-csv] PASSED [ 96%] 396s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-full] PASSED [ 96%] 396s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-short-strings] PASSED [ 96%] 396s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-short-words] PASSED [ 96%] 396s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-csv] PASSED [ 96%] 396s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-full] PASSED [ 96%] 396s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-short-strings] PASSED [ 96%] 396s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-short-words] PASSED [ 96%] 396s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-csv] PASSED [ 96%] 396s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-full] PASSED [ 96%] 396s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-short-strings] PASSED [ 96%] 396s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-short-words] PASSED [ 96%] 396s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-csv] PASSED [ 96%] 396s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-full] PASSED [ 96%] 396s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-short-strings] PASSED [ 96%] 396s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-short-words] PASSED [ 96%] 396s tests/translate/tools/test_pocount.py::test_cases[po-file] PASSED [ 96%] 396s tests/translate/tools/test_pocount.py::test_cases[po-file-fuzzy] PASSED [ 96%] 396s tests/translate/tools/test_pocount.py::test_cases[po-file-csv] PASSED [ 96%] 396s tests/translate/tools/test_pocount.py::test_cases[xliff-states-yes] PASSED [ 96%] 396s tests/translate/tools/test_pocount.py::test_cases[xliff-states-no] PASSED [ 96%] 396s tests/translate/tools/test_pocount.py::test_error_cases[mutually-exclusive] PASSED [ 96%] 396s tests/translate/tools/test_pocount.py::test_error_cases[missing-file] PASSED [ 96%] 397s tests/translate/tools/test_pocount.py::test_error_cases[no-args] PASSED [ 96%] 397s tests/translate/tools/test_pocount.py::test_csv_line_terminator PASSED [ 96%] 397s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_fuzzy_with_target PASSED [ 96%] 397s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_fuzzy_without_target PASSED [ 96%] 397s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_translated_not_fuzzy PASSED [ 96%] 397s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_untranslated_empty_target PASSED [ 96%] 397s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_categorization_mutually_exclusive PASSED [ 96%] 397s tests/translate/tools/test_pocount.py::TestPOCountLineEndings::test_unusual_line_endings PASSED [ 96%] 397s tests/translate/tools/test_podebug.py::TestPODebug::test_ignore_gtk PASSED [ 96%] 397s tests/translate/tools/test_podebug.py::TestPODebug::test_keep_target PASSED [ 96%] 397s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank PASSED [ 97%] 397s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank_clears_fuzzy PASSED [ 97%] 397s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank_with_plurals PASSED [ 97%] 397s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_en PASSED [ 97%] 397s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_xxx PASSED [ 97%] 397s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_bracket PASSED [ 97%] 397s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode PASSED [ 97%] 397s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_at_placeholders PASSED [ 97%] 397s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_single_brace_placeholders PASSED [ 97%] 397s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_double_brace_placeholders PASSED [ 97%] 397s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_html PASSED [ 97%] 397s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_multiple_styles_of_placeholder PASSED [ 97%] 397s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped PASSED [ 97%] 397s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_at_placeholders PASSED [ 97%] 397s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_single_brace_placeholders PASSED [ 97%] 397s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_double_brace_placeholders PASSED [ 97%] 397s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_html PASSED [ 97%] 397s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_multiple_styles_of_placeholder PASSED [ 97%] 397s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified PASSED [ 97%] 397s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_at_placeholders PASSED [ 97%] 397s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_single_brace_placeholders PASSED [ 97%] 397s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_double_brace_placeholders PASSED [ 97%] 397s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_html PASSED [ 97%] 397s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_multiple_styles_of_placeholder PASSED [ 97%] 397s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_chef PASSED [ 97%] 397s tests/translate/tools/test_podebug.py::TestPODebug::test_po_variables PASSED [ 97%] 397s tests/translate/tools/test_podebug.py::TestPODebug::test_xliff_rewrite PASSED [ 97%] 397s tests/translate/tools/test_podebug.py::TestPODebug::test_hash PASSED [ 97%] 397s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_msgid PASSED [ 97%] 397s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_msgstr PASSED [ 97%] 397s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_locations PASSED [ 97%] 397s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_comments PASSED [ 97%] 397s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_locations_with_comment_enabled PASSED [ 97%] 397s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_message_searchstring PASSED [ 97%] 397s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_message_regex_searchstring PASSED [ 97%] 397s tests/translate/tools/test_pogrep.py::TestPOGrep::test_keep_translations PASSED [ 97%] 397s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_normalise PASSED [ 97%] 397s tests/translate/tools/test_pogrep.py::TestXLiffGrep::test_simplegrep PASSED [ 97%] 397s tests/translate/tools/test_pomerge.py::test_str2bool PASSED [ 97%] 397s tests/translate/tools/test_pomerge.py::TestPOMerge::test_mergesore_bad_data PASSED [ 98%] 397s tests/translate/tools/test_pomerge.py::TestPOMerge::test_simplemerge PASSED [ 98%] 397s tests/translate/tools/test_pomerge.py::TestPOMerge::test_simplemerge_no_locations PASSED [ 98%] 397s tests/translate/tools/test_pomerge.py::TestPOMerge::test_replacemerge PASSED [ 98%] 397s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_blanks PASSED [ 98%] 397s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_fuzzies PASSED [ 98%] 397s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_locations PASSED [ 98%] 397s tests/translate/tools/test_pomerge.py::TestPOMerge::test_unit_missing_in_template_with_locations PASSED [ 98%] 397s tests/translate/tools/test_pomerge.py::TestPOMerge::test_unit_missing_in_template_no_locations PASSED [ 98%] 397s tests/translate/tools/test_pomerge.py::TestPOMerge::test_reflowed_source_comments PASSED [ 98%] 397s tests/translate/tools/test_pomerge.py::TestPOMerge::test_comments_with_blank_lines PASSED [ 98%] 397s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merge_dont_delete_unassociated_comments PASSED [ 98%] 397s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_trailing_newlines PASSED [ 98%] 397s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_minor_start_and_end_of_sentence_changes PASSED [ 98%] 397s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_last_entry_in_a_file PASSED [ 98%] 397s tests/translate/tools/test_pomerge.py::TestPOMerge::test_escape_tabs XFAIL [ 98%] 397s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_comments_layout PASSED [ 98%] 397s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merge_dos2unix PASSED [ 98%] 397s tests/translate/tools/test_pomerge.py::TestPOMerge::test_xliff_into_xliff PASSED [ 98%] 397s tests/translate/tools/test_pomerge.py::TestPOMerge::test_po_into_xliff PASSED [ 98%] 397s tests/translate/tools/test_pomerge.py::TestPOMerge::test_xliff_into_po PASSED [ 98%] 397s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_dont_merge_kde_comments_found_in_translation PASSED [ 98%] 397s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_untranslated_with_kde_disambiguation PASSED [ 98%] 397s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_header_entries PASSED [ 98%] 397s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_different_locations PASSED [ 98%] 397s tests/translate/tools/test_posegment.py::TestPOSegment::test_en_ja_simple PASSED [ 98%] 397s tests/translate/tools/test_posegment.py::TestPOSegment::test_en_ja_punctuation PASSED [ 98%] 397s tests/translate/tools/test_posegment.py::TestPOSegment::test_transifex_po PASSED [ 98%] 397s tests/translate/tools/test_posegment.py::TestXLIFFSegment::test_xliff_en_simple PASSED [ 98%] 397s tests/translate/tools/test_posegment.py::TestXLIFFSegment::test_xliff_untranslated PASSED [ 98%] 397s tests/translate/tools/test_posegment.py::TestTMXSegment::test_tmx_en_simple PASSED [ 98%] 397s tests/translate/tools/test_poterminology.py::TestPOTerminology::test_term_extraction PASSED [ 98%] 397s tests/translate/tools/test_poterminology.py::TestPOTerminology::test_unitinfo_stores_minimal_data PASSED [ 98%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_pretranslatepo_blank PASSED [ 98%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_simple PASSED [ 98%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_messages_marked_fuzzy PASSED [ 98%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_plurals_with_fuzzy_matching PASSED [ 98%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgid_change XFAIL [ 98%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_location_change PASSED [ 98%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_location_and_whitespace_change PASSED [ 99%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_accelerator_changes XFAIL [ 99%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_lines_cut_differently XFAIL [ 99%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_automatic_comments_dont_duplicate PASSED [ 99%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_automatic_comments_new_overrides_old PASSED [ 99%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_comments_with_blank_comment_lines PASSED [ 99%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_empty_commentlines PASSED [ 99%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgidcomments PASSED [ 99%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_plurals PASSED [ 99%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_resurrect_obsolete_messages PASSED [ 99%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_comments PASSED [ 99%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_typecomments PASSED [ 99%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_xliff_states PASSED [ 99%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_pretranslatepo_blank PASSED [ 99%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_simple PASSED [ 99%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_messages_marked_fuzzy PASSED [ 99%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_plurals_with_fuzzy_matching PASSED [ 99%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgid_change XFAIL [ 99%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_location_change PASSED [ 99%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_location_and_whitespace_change PASSED [ 99%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_accelerator_changes XFAIL [ 99%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_lines_cut_differently XFAIL [ 99%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_automatic_comments_dont_duplicate PASSED [ 99%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_automatic_comments_new_overrides_old PASSED [ 99%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_comments_with_blank_comment_lines PASSED [ 99%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_empty_commentlines PASSED [ 99%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgidcomments PASSED [ 99%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_plurals PASSED [ 99%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_resurrect_obsolete_messages PASSED [ 99%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_comments PASSED [ 99%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_typecomments PASSED [ 99%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_xliff_states PASSED [ 99%] 397s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_help PASSED [ 99%] 397s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPo::test_single_po PASSED [ 99%] 397s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPo::test_plural_po PASSED [ 99%] 397s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_single_po PASSED [ 99%] 397s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_plural_po PASSED [ 99%] 397s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_help PASSED [ 99%] 397s tests/xliff_conformance/test_xliff_conformance.py::test_open_office_to_xliff PASSED [ 99%] 397s tests/xliff_conformance/test_xliff_conformance.py::test_po_to_xliff PASSED [100%] 397s 397s =============================== warnings summary =============================== 397s tests/odf_xliff/test_odf_xliff.py::test_roundtrip 397s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.g1gmkF/autopkgtest_tmp/tests/odf_xliff/test_2.odt'> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_convertandroid 397s Warning: unclosed file <_io.TextIOWrapper name='TestAndroid2POCommand_test_convertandroid/en.po' mode='r' encoding='UTF-8'> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder 397s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder 397s Warning: unclosed file <_io.TextIOWrapper name='TestCSV2POCommand_test_columnorder/test.po' mode='r' encoding='UTF-8'> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_pot 397s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_pot/simple.pot'> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_po 397s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_po 397s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_po/simple.po'> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_remove_duplicates 397s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_remove_duplicates/simple.po'> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_xlf 397s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_xlf/simple.xlf'> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder 397s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder 397s Warning: unclosed file <_io.TextIOWrapper name='TestPO2CSVCommand_test_columnorder/test.csv' mode='r' encoding='UTF-8'> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_context 397s Warning: unclosed file <_io.TextIOWrapper name='TestPO2CSVCommand_test_context/test.csv' mode='r' encoding='UTF-8'> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing 397s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey 397s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey 397s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing 397s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey 397s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_amp_no_accesskey 397s Warning: Could not find accesskey for key.accesskey 397s 397s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified 397s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file 397s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file_and_templates_overwritten 397s Warning: unclosed file <_io.BufferedReader name='translation/file1.po'> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified 397s Warning: unclosed file <_io.BufferedWriter name='translated/file1.html'> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_convert 397s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.g1gmkF/autopkgtest_tmp/tests/translate/convert/test.idml'> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_with_single_po 397s Warning: unclosed file <_io.BufferedReader name='translation.po'> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert 397s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert_with_multiple_units 397s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert 397s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.g1gmkF/autopkgtest_tmp/tests/translate/convert/test.odt'> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_simple 397s Warning: unclosed file <_io.FileIO name='input.oo' mode='rb' closefd=True> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_simple 397s Warning: unclosed file <_io.FileIO name='output.oo' mode='wb' closefd=True> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey 397s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys_missing_accesskey 397s Warning: Could not find accesskey for prop.accesskey 397s 397s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_context 397s Warning: unclosed file <_io.BufferedReader name='test.po'> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_context 397s Warning: unclosed file <_io.TextIOWrapper name='TestPO2TMXCommand_test_context/test.tmx' mode='r' encoding='UTF-8'> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert 397s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert/simple.po'> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf16 397s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_utf16/simple.po'> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 397s Warning: unclosed file <_io.BufferedWriter name='simple.po'> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 397s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 397s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_wrong/simple.po'> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf8 397s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_utf8/simple.po'> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_menuex 397s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_menuex/simple.po'> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_pot 397s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_simple_pot/simple.pot'> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_po 397s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_simple_po/simple.po'> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_remove_duplicates 397s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_remove_duplicates/simple.po'> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_preserve_filename 397s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_preserve_filename/snippet.xlf'> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_pot 397s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_simple_pot/simple.pot'> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_po 397s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_simple_po/simple.po'> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_remove_duplicates 397s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_remove_duplicates/simple.po'> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers 397s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers 397s tests/translate/filters/test_checks.py::test_noaccelerators_only_in_mozilla_checker 397s tests/translate/filters/test_checks.py::test_ensure_accelerators_not_in_target_if_not_in_source 397s Warning: The 'u' type code is deprecated and will be removed in Python 3.16 397s 397s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_save_bundle 397s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_save_bundle 397s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpdu63komt_test.txt'> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_cross_device_save 397s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_cross_device_save 397s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpzlsplakd_crossdevice.txt'> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_replace_project_zip 397s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_replace_project_zip 397s Warning: unclosed file <_io.BufferedReader name='/tmp/tmprnszfsk3_initial.txt'> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 397s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 397s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpycsmphd1_load_test.txt'> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 397s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 397s Warning: unclosed file <_io.BufferedReader name='/tmp/tmps9p0c_hi_load_test.txt'> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 397s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 397s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpz_wklcbp_file0.txt'> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 397s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 397s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpoygw6480_file1.txt'> 397s Enable tracemalloc to get traceback where the object was allocated. 397s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 397s 397s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 397s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 397s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpbpit291a_file2.txt'> 397s Enable tracemalloc to get traceback where the object was allocated. 398s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 398s 398s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting 398s Warning: DTD parse error: :1:35:FATAL:PARSER:ERR_ENTITY_NOT_FINISHED: xmlParseEntityDecl: entity test.me not terminated 398s :1:35:FATAL:PARSER:ERR_EXT_SUBSET_NOT_FINISHED: Content error in the external subset 398s 398s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting 398s Warning: DTD file '' does not validate 398s 398s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 398s --------------------------- snapshot report summary ---------------------------- 398s 23 snapshots passed. 398s =========================== short test summary info ============================ 398s SKIPPED [1] tests/translate/storage/test_cpo.py:15: could not import 'translate.storage.cpo': gettext PO library not found 398s SKIPPED [1] tests/translate/storage/test_fluent.py:29: could not import 'translate.storage.fluent': No module named 'fluent' 398s SKIPPED [1] tests/translate/filters/test_checks.py:1429: Spell checking for af is not available 398s XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accelerator_keys_not_in_sentence - Not Implemented 398s XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accelerator_keys_not_in_sentence - Not Implemented 398s XFAIL tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_table - https://github.com/miyuchina/mistletoe/issues/244 398s XFAIL tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_propertyless_template - Need to review if we want this behaviour 398s XFAIL tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_propertyless_template - Need to review if we want this behaviour 398s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_change - Not implemented - review if this is even correct 398s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_accelerator_changes - Not Implemented - needs review 398s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_lines_cut_differently - Not Implemented - review if this is even correct 398s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_change - Not implemented - review if this is even correct 398s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_accelerator_changes - Not Implemented - needs review 398s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_lines_cut_differently - Not Implemented - review if this is even correct 398s XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_no_duplicates - This is invalid YAML document 398s XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_no_duplicates - This is invalid YAML document 398s XFAIL tests/translate/filters/test_checks.py::test_acceleratedvariables - Accelerated variables needs a better implementation 398s XFAIL tests/translate/filters/test_checks.py::test_musttranslatewords - FIXME: All fails() tests are not working 398s XFAIL tests/translate/filters/test_checks.py::test_persian_single_and_double_quote_fail_at_the_same_time - Bug #3408 398s XFAIL tests/translate/filters/test_checks.py::test_bengali_mozilla_inverted_xmltags - Bug #3506 398s XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_general_placeables - Test needs fixing, disabled for now 398s XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_xliff_placeables - Test needs fixing, disabled for now 398s XFAIL tests/translate/storage/test_dtd.py::test_quotefordtd_unimplemented_cases - Not Implemented 398s XFAIL tests/translate/storage/test_dtd.py::test_unquotefromdtd_unimplemented_cases - Not Implemented 398s XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_comment_following - Not Implemented 398s XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting - Not Implemented 398s 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 398s XFAIL tests/translate/storage/test_po.py::TestPOFile::test_kde_plurals - Not Implemented 398s XFAIL tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo 398s XFAIL tests/translate/storage/test_properties.py::TestXWikiFullPage::test_remove - removal not working in full page 398s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_plurals - Not Implemented 398s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo 398s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_typecomment - Not sure if this can not be parsed gracefully 398s XFAIL tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_note_sanity - Not Implemented 398s XFAIL tests/translate/tools/test_pocount.py::TestCount::test_plurals_kde - Support commented out pending removal 398s XFAIL tests/translate/tools/test_pomerge.py::TestPOMerge::test_escape_tabs - Not Implemented 398s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgid_change - Not Implemented 398s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_accelerator_changes - Not Implemented 398s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_lines_cut_differently - Not Implemented 398s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgid_change - Not Implemented 398s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_accelerator_changes - Not Implemented 398s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_lines_cut_differently - Not Implemented 398s ========== 3862 passed, 3 skipped, 39 xfailed, 69 warnings in 18.72s =========== 399s autopkgtest [05:44:40]: test python3-translate-commands: -----------------------] 400s autopkgtest [05:44:41]: test python3-translate-commands: - - - - - - - - - - results - - - - - - - - - - 400s python3-translate-commands PASS 400s autopkgtest [05:44:41]: @@@@@@@@@@@@@@@@@@@@ summary 400s translate-toolkit PASS 400s python3-translate PASS 400s python3-translate-commands PASS