0s autopkgtest [18:43:06]: starting date and time: 2024-11-13 18:43:06+0000 0s autopkgtest [18:43:06]: git checkout: 0acbae0a WIP show VirtSubproc stderr in real-time 0s autopkgtest [18:43:06]: host juju-7f2275-prod-proposed-migration-environment-2; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.r5uv_clk/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:python3-defaults,src:python3-stdlib-extensions --apt-upgrade mwparserfromhell --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 '--env=ADT_TEST_TRIGGERS=python3-defaults/3.12.7-1 python3-stdlib-extensions/3.12.7-1' -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest-ppc64el --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-2@bos03-ppc64el-39.secgroup --name adt-plucky-ppc64el-mwparserfromhell-20241113-184306-juju-7f2275-prod-proposed-migration-environment-2-a0df3ed6-eb33-4575-b4a1-b42665828348 --image adt/ubuntu-plucky-ppc64el-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-2 --net-id=net_prod-proposed-migration-ppc64el -e TERM=linux -e ''"'"'http_proxy=http://squid.internal:3128'"'"'' -e ''"'"'https_proxy=http://squid.internal:3128'"'"'' -e ''"'"'no_proxy=127.0.0.1,127.0.1.1,login.ubuntu.com,localhost,localdomain,novalocal,internal,archive.ubuntu.com,ports.ubuntu.com,security.ubuntu.com,ddebs.ubuntu.com,changelogs.ubuntu.com,keyserver.ubuntu.com,launchpadlibrarian.net,launchpadcontent.net,launchpad.net,10.24.0.0/24,keystone.ps5.canonical.com,objectstorage.prodstack5.canonical.com'"'"'' --mirror=http://ftpmaster.internal/ubuntu/ 92s autopkgtest [18:44:38]: testbed dpkg architecture: ppc64el 92s autopkgtest [18:44:38]: testbed apt version: 2.9.8 92s autopkgtest [18:44:38]: @@@@@@@@@@@@@@@@@@@@ test bed setup 93s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease [73.9 kB] 93s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/main Sources [104 kB] 94s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse Sources [17.2 kB] 94s Get:4 http://ftpmaster.internal/ubuntu plucky-proposed/restricted Sources [7016 B] 94s Get:5 http://ftpmaster.internal/ubuntu plucky-proposed/universe Sources [971 kB] 94s Get:6 http://ftpmaster.internal/ubuntu plucky-proposed/main ppc64el Packages [113 kB] 94s Get:7 http://ftpmaster.internal/ubuntu plucky-proposed/universe ppc64el Packages [672 kB] 94s Get:8 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse ppc64el Packages [20.8 kB] 94s Fetched 1978 kB in 1s (2058 kB/s) 94s Reading package lists... 97s Reading package lists... 97s Building dependency tree... 97s Reading state information... 97s Calculating upgrade... 97s The following NEW packages will be installed: 97s python3.13-gdbm 97s The following packages will be upgraded: 97s libgnutls30t64 libjson-glib-1.0-0 libjson-glib-1.0-common libpython3-stdlib 97s libutempter0 python3 python3-gdbm python3-minimal 97s 8 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. 97s Need to get 1265 kB of archives. 97s After this operation, 141 kB of additional disk space will be used. 97s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed/main ppc64el python3-minimal ppc64el 3.12.7-1 [27.4 kB] 97s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/main ppc64el python3 ppc64el 3.12.7-1 [24.0 kB] 97s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/main ppc64el libpython3-stdlib ppc64el 3.12.7-1 [10.0 kB] 97s Get:4 http://ftpmaster.internal/ubuntu plucky/main ppc64el libgnutls30t64 ppc64el 3.8.8-2ubuntu1 [1072 kB] 98s Get:5 http://ftpmaster.internal/ubuntu plucky/main ppc64el python3.13-gdbm ppc64el 3.13.0-2 [31.5 kB] 98s Get:6 http://ftpmaster.internal/ubuntu plucky-proposed/main ppc64el python3-gdbm ppc64el 3.12.7-1 [8640 B] 98s Get:7 http://ftpmaster.internal/ubuntu plucky/main ppc64el libjson-glib-1.0-common all 1.10.0+ds-3 [5586 B] 98s Get:8 http://ftpmaster.internal/ubuntu plucky/main ppc64el libjson-glib-1.0-0 ppc64el 1.10.0+ds-3 [76.0 kB] 98s Get:9 http://ftpmaster.internal/ubuntu plucky/main ppc64el libutempter0 ppc64el 1.2.1-4 [9850 B] 98s Fetched 1265 kB in 1s (1974 kB/s) 98s (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 ... 73767 files and directories currently installed.) 98s Preparing to unpack .../python3-minimal_3.12.7-1_ppc64el.deb ... 98s Unpacking python3-minimal (3.12.7-1) over (3.12.6-0ubuntu1) ... 98s Setting up python3-minimal (3.12.7-1) ... 99s (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 ... 73767 files and directories currently installed.) 99s Preparing to unpack .../python3_3.12.7-1_ppc64el.deb ... 99s Unpacking python3 (3.12.7-1) over (3.12.6-0ubuntu1) ... 99s Preparing to unpack .../libpython3-stdlib_3.12.7-1_ppc64el.deb ... 99s Unpacking libpython3-stdlib:ppc64el (3.12.7-1) over (3.12.6-0ubuntu1) ... 99s Preparing to unpack .../libgnutls30t64_3.8.8-2ubuntu1_ppc64el.deb ... 99s Unpacking libgnutls30t64:ppc64el (3.8.8-2ubuntu1) over (3.8.6-2ubuntu1) ... 99s Setting up libgnutls30t64:ppc64el (3.8.8-2ubuntu1) ... 99s Selecting previously unselected package python3.13-gdbm. 99s (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 ... 73767 files and directories currently installed.) 99s Preparing to unpack .../python3.13-gdbm_3.13.0-2_ppc64el.deb ... 99s Unpacking python3.13-gdbm (3.13.0-2) ... 99s Preparing to unpack .../python3-gdbm_3.12.7-1_ppc64el.deb ... 99s Unpacking python3-gdbm:ppc64el (3.12.7-1) over (3.12.6-1ubuntu1) ... 99s Preparing to unpack .../libjson-glib-1.0-common_1.10.0+ds-3_all.deb ... 99s Unpacking libjson-glib-1.0-common (1.10.0+ds-3) over (1.10.0+ds-2) ... 99s Preparing to unpack .../libjson-glib-1.0-0_1.10.0+ds-3_ppc64el.deb ... 99s Unpacking libjson-glib-1.0-0:ppc64el (1.10.0+ds-3) over (1.10.0+ds-2) ... 99s Preparing to unpack .../libutempter0_1.2.1-4_ppc64el.deb ... 99s Unpacking libutempter0:ppc64el (1.2.1-4) over (1.2.1-3build1) ... 99s Setting up libutempter0:ppc64el (1.2.1-4) ... 99s Setting up libjson-glib-1.0-common (1.10.0+ds-3) ... 99s Setting up python3.13-gdbm (3.13.0-2) ... 99s Setting up libpython3-stdlib:ppc64el (3.12.7-1) ... 99s Setting up python3 (3.12.7-1) ... 99s Setting up libjson-glib-1.0-0:ppc64el (1.10.0+ds-3) ... 99s Setting up python3-gdbm:ppc64el (3.12.7-1) ... 99s Processing triggers for man-db (2.12.1-3) ... 100s Processing triggers for libc-bin (2.40-1ubuntu3) ... 100s Reading package lists... 100s Building dependency tree... 100s Reading state information... 101s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 101s Hit:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease 101s Hit:2 http://ftpmaster.internal/ubuntu plucky InRelease 101s Hit:3 http://ftpmaster.internal/ubuntu plucky-updates InRelease 101s Hit:4 http://ftpmaster.internal/ubuntu plucky-security InRelease 102s Reading package lists... 102s Reading package lists... 102s Building dependency tree... 102s Reading state information... 103s Calculating upgrade... 103s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 103s Reading package lists... 103s Building dependency tree... 103s Reading state information... 103s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 106s autopkgtest [18:44:52]: testbed running kernel: Linux 6.11.0-8-generic #8-Ubuntu SMP Mon Sep 16 13:49:23 UTC 2024 106s autopkgtest [18:44:52]: @@@@@@@@@@@@@@@@@@@@ apt-source mwparserfromhell 108s Get:1 http://ftpmaster.internal/ubuntu plucky/universe mwparserfromhell 0.6.6-1 (dsc) [2100 B] 108s Get:2 http://ftpmaster.internal/ubuntu plucky/universe mwparserfromhell 0.6.6-1 (tar) [155 kB] 108s Get:3 http://ftpmaster.internal/ubuntu plucky/universe mwparserfromhell 0.6.6-1 (diff) [3008 B] 108s gpgv: Signature made Sun Mar 24 01:00:12 2024 UTC 108s gpgv: using RSA key D8CB59F05DBB9E0538C4819DF105F8101B05269B 108s gpgv: issuer "legoktm@riseup.net" 108s gpgv: Can't check signature: No public key 108s dpkg-source: warning: cannot verify inline signature for ./mwparserfromhell_0.6.6-1.dsc: no acceptable signature found 108s autopkgtest [18:44:54]: testing package mwparserfromhell version 0.6.6-1 108s autopkgtest [18:44:54]: build not needed 109s autopkgtest [18:44:55]: test unittest: preparing testbed 110s Reading package lists... 110s Building dependency tree... 110s Reading state information... 110s Starting pkgProblemResolver with broken count: 0 110s Starting 2 pkgProblemResolver with broken count: 0 110s Done 111s The following additional packages will be installed: 111s libpython3.13-minimal libpython3.13-stdlib python3-all python3-iniconfig 111s python3-mwparserfromhell python3-packaging python3-pluggy python3-pytest 111s python3.13 python3.13-minimal 111s Suggested packages: 111s python3.13-venv python3.13-doc binfmt-support 111s The following NEW packages will be installed: 111s autopkgtest-satdep libpython3.13-minimal libpython3.13-stdlib python3-all 111s python3-iniconfig python3-mwparserfromhell python3-packaging python3-pluggy 111s python3-pytest python3.13 python3.13-minimal 111s 0 upgraded, 11 newly installed, 0 to remove and 0 not upgraded. 111s Need to get 6441 kB/6442 kB of archives. 111s After this operation, 27.7 MB of additional disk space will be used. 111s Get:1 /tmp/autopkgtest.yUsqZG/1-autopkgtest-satdep.deb autopkgtest-satdep ppc64el 0 [728 B] 111s Get:2 http://ftpmaster.internal/ubuntu plucky/main ppc64el libpython3.13-minimal ppc64el 3.13.0-2 [881 kB] 111s Get:3 http://ftpmaster.internal/ubuntu plucky/main ppc64el python3.13-minimal ppc64el 3.13.0-2 [2302 kB] 112s Get:4 http://ftpmaster.internal/ubuntu plucky/main ppc64el libpython3.13-stdlib ppc64el 3.13.0-2 [2148 kB] 112s Get:5 http://ftpmaster.internal/ubuntu plucky/main ppc64el python3.13 ppc64el 3.13.0-2 [719 kB] 112s Get:6 http://ftpmaster.internal/ubuntu plucky-proposed/main ppc64el python3-all ppc64el 3.12.7-1 [888 B] 112s Get:7 http://ftpmaster.internal/ubuntu plucky/universe ppc64el python3-iniconfig all 1.1.1-2 [6024 B] 112s Get:8 http://ftpmaster.internal/ubuntu plucky/universe ppc64el python3-mwparserfromhell ppc64el 0.6.6-1 [70.6 kB] 112s Get:9 http://ftpmaster.internal/ubuntu plucky/main ppc64el python3-packaging all 24.1-1 [41.4 kB] 112s Get:10 http://ftpmaster.internal/ubuntu plucky/universe ppc64el python3-pluggy all 1.5.0-1 [21.0 kB] 112s Get:11 http://ftpmaster.internal/ubuntu plucky/universe ppc64el python3-pytest all 8.3.3-1 [251 kB] 112s Fetched 6441 kB in 1s (6123 kB/s) 112s Selecting previously unselected package libpython3.13-minimal:ppc64el. 112s (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 ... 73774 files and directories currently installed.) 112s Preparing to unpack .../00-libpython3.13-minimal_3.13.0-2_ppc64el.deb ... 112s Unpacking libpython3.13-minimal:ppc64el (3.13.0-2) ... 112s Selecting previously unselected package python3.13-minimal. 112s Preparing to unpack .../01-python3.13-minimal_3.13.0-2_ppc64el.deb ... 112s Unpacking python3.13-minimal (3.13.0-2) ... 112s Selecting previously unselected package libpython3.13-stdlib:ppc64el. 112s Preparing to unpack .../02-libpython3.13-stdlib_3.13.0-2_ppc64el.deb ... 112s Unpacking libpython3.13-stdlib:ppc64el (3.13.0-2) ... 112s Selecting previously unselected package python3.13. 112s Preparing to unpack .../03-python3.13_3.13.0-2_ppc64el.deb ... 112s Unpacking python3.13 (3.13.0-2) ... 112s Selecting previously unselected package python3-all. 112s Preparing to unpack .../04-python3-all_3.12.7-1_ppc64el.deb ... 112s Unpacking python3-all (3.12.7-1) ... 112s Selecting previously unselected package python3-iniconfig. 112s Preparing to unpack .../05-python3-iniconfig_1.1.1-2_all.deb ... 112s Unpacking python3-iniconfig (1.1.1-2) ... 112s Selecting previously unselected package python3-mwparserfromhell. 112s Preparing to unpack .../06-python3-mwparserfromhell_0.6.6-1_ppc64el.deb ... 112s Unpacking python3-mwparserfromhell (0.6.6-1) ... 112s Selecting previously unselected package python3-packaging. 112s Preparing to unpack .../07-python3-packaging_24.1-1_all.deb ... 112s Unpacking python3-packaging (24.1-1) ... 112s Selecting previously unselected package python3-pluggy. 112s Preparing to unpack .../08-python3-pluggy_1.5.0-1_all.deb ... 112s Unpacking python3-pluggy (1.5.0-1) ... 112s Selecting previously unselected package python3-pytest. 112s Preparing to unpack .../09-python3-pytest_8.3.3-1_all.deb ... 112s Unpacking python3-pytest (8.3.3-1) ... 113s Selecting previously unselected package autopkgtest-satdep. 113s Preparing to unpack .../10-1-autopkgtest-satdep.deb ... 113s Unpacking autopkgtest-satdep (0) ... 113s Setting up python3-iniconfig (1.1.1-2) ... 113s Setting up python3-mwparserfromhell (0.6.6-1) ... 113s Setting up libpython3.13-minimal:ppc64el (3.13.0-2) ... 113s Setting up python3-packaging (24.1-1) ... 113s Setting up python3-pluggy (1.5.0-1) ... 114s Setting up python3.13-minimal (3.13.0-2) ... 114s Setting up libpython3.13-stdlib:ppc64el (3.13.0-2) ... 114s Setting up python3.13 (3.13.0-2) ... 116s Setting up python3-pytest (8.3.3-1) ... 116s Setting up python3-all (3.12.7-1) ... 116s Setting up autopkgtest-satdep (0) ... 116s Processing triggers for man-db (2.12.1-3) ... 117s Processing triggers for systemd (256.5-2ubuntu4) ... 119s (Reading database ... 74715 files and directories currently installed.) 119s Removing autopkgtest-satdep (0) ... 120s autopkgtest [18:45:06]: test unittest: [----------------------- 120s ============================= test session starts ============================== 120s platform linux -- Python 3.13.0, pytest-8.3.3, pluggy-1.5.0 -- /usr/bin/python3.13 120s cachedir: .pytest_cache 120s rootdir: /tmp/autopkgtest.yUsqZG/build.62U/src 120s plugins: typeguard-4.4.1 121s collecting ... collected 1432 items 121s 121s tests/test_argument.py::test_str PASSED [ 0%] 121s tests/test_argument.py::test_children PASSED [ 0%] 121s tests/test_argument.py::test_strip PASSED [ 0%] 121s tests/test_argument.py::test_showtree PASSED [ 0%] 121s tests/test_argument.py::test_name PASSED [ 0%] 121s tests/test_argument.py::test_default PASSED [ 0%] 121s tests/test_attribute.py::test_str PASSED [ 0%] 121s tests/test_attribute.py::test_name PASSED [ 0%] 121s tests/test_attribute.py::test_value PASSED [ 0%] 121s tests/test_attribute.py::test_quotes PASSED [ 0%] 122s tests/test_attribute.py::test_padding PASSED [ 0%] 122s tests/test_builder.py::test_text[test0-valid0] PASSED [ 0%] 122s tests/test_builder.py::test_text[test1-valid1] PASSED [ 0%] 122s tests/test_builder.py::test_text[test2-valid2] PASSED [ 0%] 122s tests/test_builder.py::test_template[test0-valid0] PASSED [ 1%] 122s tests/test_builder.py::test_template[test1-valid1] PASSED [ 1%] 122s tests/test_builder.py::test_template[test2-valid2] PASSED [ 1%] 122s tests/test_builder.py::test_template[test3-valid3] PASSED [ 1%] 122s tests/test_builder.py::test_template[test4-valid4] PASSED [ 1%] 122s tests/test_builder.py::test_template[test5-valid5] PASSED [ 1%] 122s tests/test_builder.py::test_argument[test0-valid0] PASSED [ 1%] 122s tests/test_builder.py::test_argument[test1-valid1] PASSED [ 1%] 122s tests/test_builder.py::test_argument[test2-valid2] PASSED [ 1%] 122s tests/test_builder.py::test_argument[test3-valid3] PASSED [ 1%] 122s tests/test_builder.py::test_wikilink[test0-valid0] PASSED [ 1%] 122s tests/test_builder.py::test_wikilink[test1-valid1] PASSED [ 1%] 122s tests/test_builder.py::test_wikilink[test2-valid2] PASSED [ 1%] 122s tests/test_builder.py::test_wikilink[test3-valid3] PASSED [ 1%] 122s tests/test_builder.py::test_external_link[test0-valid0] PASSED [ 2%] 122s tests/test_builder.py::test_external_link[test1-valid1] PASSED [ 2%] 122s tests/test_builder.py::test_external_link[test2-valid2] PASSED [ 2%] 122s tests/test_builder.py::test_external_link[test3-valid3] PASSED [ 2%] 122s tests/test_builder.py::test_external_link[test4-valid4] PASSED [ 2%] 122s tests/test_builder.py::test_external_link[test5-valid5] PASSED [ 2%] 122s tests/test_builder.py::test_html_entity[test0-valid0] PASSED [ 2%] 122s tests/test_builder.py::test_html_entity[test1-valid1] PASSED [ 2%] 122s tests/test_builder.py::test_html_entity[test2-valid2] PASSED [ 2%] 122s tests/test_builder.py::test_heading[test0-valid0] PASSED [ 2%] 122s tests/test_builder.py::test_heading[test1-valid1] PASSED [ 2%] 122s tests/test_builder.py::test_comment[test0-valid0] PASSED [ 2%] 122s tests/test_builder.py::test_comment[test1-valid1] PASSED [ 2%] 122s tests/test_builder.py::test_tag[test0-valid0] PASSED [ 2%] 122s tests/test_builder.py::test_tag[test1-valid1] PASSED [ 3%] 122s tests/test_builder.py::test_tag[test2-valid2] PASSED [ 3%] 122s tests/test_builder.py::test_tag[test3-valid3] PASSED [ 3%] 122s tests/test_builder.py::test_tag[test4-valid4] PASSED [ 3%] 122s tests/test_builder.py::test_tag[test5-valid5] PASSED [ 3%] 122s tests/test_builder.py::test_tag[test6-valid6] PASSED [ 3%] 122s tests/test_builder.py::test_tag[test7-valid7] PASSED [ 3%] 122s tests/test_builder.py::test_tag[test8-valid8] PASSED [ 3%] 122s tests/test_builder.py::test_tag[test9-valid9] PASSED [ 3%] 122s tests/test_builder.py::test_integration PASSED [ 3%] 122s tests/test_builder.py::test_integration2 PASSED [ 3%] 122s tests/test_builder.py::test_parser_errors[tokens0] PASSED [ 3%] 122s tests/test_builder.py::test_parser_errors[tokens1] PASSED [ 3%] 122s tests/test_builder.py::test_parser_errors[tokens2] PASSED [ 3%] 122s tests/test_builder.py::test_parser_errors[tokens3] PASSED [ 3%] 122s tests/test_builder.py::test_parser_errors[tokens4] PASSED [ 4%] 122s tests/test_builder.py::test_parser_errors[tokens5] PASSED [ 4%] 122s tests/test_builder.py::test_parser_errors[tokens6] PASSED [ 4%] 122s tests/test_builder.py::test_parser_errors[tokens7] PASSED [ 4%] 122s tests/test_builder.py::test_parser_errors[tokens8] PASSED [ 4%] 122s tests/test_builder.py::test_parser_errors_templateclose PASSED [ 4%] 122s tests/test_comment.py::test_str PASSED [ 4%] 122s tests/test_comment.py::test_children PASSED [ 4%] 122s tests/test_comment.py::test_strip PASSED [ 4%] 122s tests/test_comment.py::test_showtree PASSED [ 4%] 122s tests/test_comment.py::test_contents PASSED [ 4%] 122s tests/test_docs.py::test_readme_1 PASSED [ 4%] 122s tests/test_docs.py::test_readme_2 PASSED [ 4%] 122s tests/test_docs.py::test_readme_3 PASSED [ 4%] 122s tests/test_docs.py::test_readme_4 PASSED [ 5%] 122s tests/test_docs.py::test_readme_5 SKIPPED (web test disabled by envi...) [ 5%] 122s tests/test_external_link.py::test_str PASSED [ 5%] 122s tests/test_external_link.py::test_children PASSED [ 5%] 122s tests/test_external_link.py::test_strip PASSED [ 5%] 122s tests/test_external_link.py::test_showtree PASSED [ 5%] 122s tests/test_external_link.py::test_url PASSED [ 5%] 122s tests/test_external_link.py::test_title PASSED [ 5%] 122s tests/test_external_link.py::test_brackets PASSED [ 5%] 122s tests/test_heading.py::test_str PASSED [ 5%] 122s tests/test_heading.py::test_children PASSED [ 5%] 122s tests/test_heading.py::test_strip PASSED [ 5%] 122s tests/test_heading.py::test_showtree PASSED [ 5%] 122s tests/test_heading.py::test_title PASSED [ 5%] 122s tests/test_heading.py::test_level PASSED [ 6%] 122s tests/test_html_entity.py::test_str PASSED [ 6%] 122s tests/test_html_entity.py::test_children PASSED [ 6%] 122s tests/test_html_entity.py::test_strip PASSED [ 6%] 122s tests/test_html_entity.py::test_showtree PASSED [ 6%] 122s tests/test_html_entity.py::test_value PASSED [ 6%] 122s tests/test_html_entity.py::test_named PASSED [ 6%] 122s tests/test_html_entity.py::test_hexadecimal PASSED [ 6%] 122s tests/test_html_entity.py::test_hex_char PASSED [ 6%] 122s tests/test_html_entity.py::test_normalize PASSED [ 6%] 122s tests/test_parameter.py::test_str PASSED [ 6%] 122s tests/test_parameter.py::test_name PASSED [ 6%] 122s tests/test_parameter.py::test_value PASSED [ 6%] 122s tests/test_parameter.py::test_showkey PASSED [ 6%] 122s tests/test_parser.py::test_use_c PASSED [ 6%] 122s tests/test_parser.py::test_parsing PASSED [ 7%] 122s tests/test_parser.py::test_skip_style_tags PASSED [ 7%] 122s tests/test_smart_list.py::test_docs PASSED [ 7%] 122s tests/test_smart_list.py::test_doctest PASSED [ 7%] 122s tests/test_smart_list.py::test_parent_get_set_del PASSED [ 7%] 122s tests/test_smart_list.py::test_parent_add PASSED [ 7%] 122s tests/test_smart_list.py::test_parent_other_magics PASSED [ 7%] 122s tests/test_smart_list.py::test_parent_methods PASSED [ 7%] 122s tests/test_smart_list.py::test_child_get_set_del PASSED [ 7%] 122s tests/test_smart_list.py::test_child_add PASSED [ 7%] 122s tests/test_smart_list.py::test_child_other_magics PASSED [ 7%] 122s tests/test_smart_list.py::test_child_methods PASSED [ 7%] 122s tests/test_smart_list.py::test_influence PASSED [ 7%] 122s tests/test_smart_list.py::test_pickling[0] PASSED [ 7%] 122s tests/test_smart_list.py::test_pickling[1] PASSED [ 8%] 122s tests/test_smart_list.py::test_pickling[2] PASSED [ 8%] 122s tests/test_smart_list.py::test_pickling[3] PASSED [ 8%] 122s tests/test_smart_list.py::test_pickling[4] PASSED [ 8%] 122s tests/test_smart_list.py::test_pickling[5] PASSED [ 8%] 122s tests/test_string_mixin.py::test_docs[capitalize] PASSED [ 8%] 122s tests/test_string_mixin.py::test_docs[casefold] PASSED [ 8%] 122s tests/test_string_mixin.py::test_docs[center] PASSED [ 8%] 122s tests/test_string_mixin.py::test_docs[count] PASSED [ 8%] 122s tests/test_string_mixin.py::test_docs[encode] PASSED [ 8%] 122s tests/test_string_mixin.py::test_docs[endswith] PASSED [ 8%] 122s tests/test_string_mixin.py::test_docs[expandtabs] PASSED [ 8%] 122s tests/test_string_mixin.py::test_docs[find] PASSED [ 8%] 122s tests/test_string_mixin.py::test_docs[format] PASSED [ 8%] 122s tests/test_string_mixin.py::test_docs[format_map] PASSED [ 9%] 122s tests/test_string_mixin.py::test_docs[index] PASSED [ 9%] 122s tests/test_string_mixin.py::test_docs[isalnum] PASSED [ 9%] 122s tests/test_string_mixin.py::test_docs[isalpha] PASSED [ 9%] 122s tests/test_string_mixin.py::test_docs[isdecimal] PASSED [ 9%] 122s tests/test_string_mixin.py::test_docs[isdigit] PASSED [ 9%] 122s tests/test_string_mixin.py::test_docs[isidentifier] PASSED [ 9%] 122s tests/test_string_mixin.py::test_docs[islower] PASSED [ 9%] 122s tests/test_string_mixin.py::test_docs[isnumeric] PASSED [ 9%] 122s tests/test_string_mixin.py::test_docs[isprintable] PASSED [ 9%] 122s tests/test_string_mixin.py::test_docs[isspace] PASSED [ 9%] 122s tests/test_string_mixin.py::test_docs[istitle] PASSED [ 9%] 122s tests/test_string_mixin.py::test_docs[isupper] PASSED [ 9%] 122s tests/test_string_mixin.py::test_docs[join] PASSED [ 9%] 122s tests/test_string_mixin.py::test_docs[ljust] PASSED [ 9%] 122s tests/test_string_mixin.py::test_docs[lower] PASSED [ 10%] 122s tests/test_string_mixin.py::test_docs[lstrip] PASSED [ 10%] 122s tests/test_string_mixin.py::test_docs[maketrans] PASSED [ 10%] 122s tests/test_string_mixin.py::test_docs[partition] PASSED [ 10%] 122s tests/test_string_mixin.py::test_docs[replace] PASSED [ 10%] 122s tests/test_string_mixin.py::test_docs[rfind] PASSED [ 10%] 122s tests/test_string_mixin.py::test_docs[rindex] PASSED [ 10%] 122s tests/test_string_mixin.py::test_docs[rjust] PASSED [ 10%] 122s tests/test_string_mixin.py::test_docs[rpartition] PASSED [ 10%] 122s tests/test_string_mixin.py::test_docs[rsplit] PASSED [ 10%] 122s tests/test_string_mixin.py::test_docs[rstrip] PASSED [ 10%] 122s tests/test_string_mixin.py::test_docs[split] PASSED [ 10%] 122s tests/test_string_mixin.py::test_docs[splitlines] PASSED [ 10%] 122s tests/test_string_mixin.py::test_docs[startswith] PASSED [ 10%] 122s tests/test_string_mixin.py::test_docs[strip] PASSED [ 11%] 122s tests/test_string_mixin.py::test_docs[swapcase] PASSED [ 11%] 122s tests/test_string_mixin.py::test_docs[title] PASSED [ 11%] 122s tests/test_string_mixin.py::test_docs[translate] PASSED [ 11%] 122s tests/test_string_mixin.py::test_docs[upper] PASSED [ 11%] 122s tests/test_string_mixin.py::test_docs[zfill] PASSED [ 11%] 122s tests/test_string_mixin.py::test_types PASSED [ 11%] 122s tests/test_string_mixin.py::test_comparisons PASSED [ 11%] 122s tests/test_string_mixin.py::test_other_magics PASSED [ 11%] 122s tests/test_string_mixin.py::test_other_methods PASSED [ 11%] 122s tests/test_tag.py::test_str PASSED [ 11%] 122s tests/test_tag.py::test_children PASSED [ 11%] 122s tests/test_tag.py::test_strip PASSED [ 11%] 122s tests/test_tag.py::test_showtree PASSED [ 11%] 122s tests/test_tag.py::test_tag PASSED [ 12%] 122s tests/test_tag.py::test_contents PASSED [ 12%] 122s tests/test_tag.py::test_attributes PASSED [ 12%] 122s tests/test_tag.py::test_wiki_markup PASSED [ 12%] 122s tests/test_tag.py::test_self_closing PASSED [ 12%] 122s tests/test_tag.py::test_invalid PASSED [ 12%] 122s tests/test_tag.py::test_implicit PASSED [ 12%] 122s tests/test_tag.py::test_padding PASSED [ 12%] 122s tests/test_tag.py::test_closing_tag PASSED [ 12%] 122s tests/test_tag.py::test_wiki_style_separator PASSED [ 12%] 122s tests/test_tag.py::test_closing_wiki_markup PASSED [ 12%] 122s tests/test_tag.py::test_has PASSED [ 12%] 122s tests/test_tag.py::test_get PASSED [ 12%] 122s tests/test_tag.py::test_add PASSED [ 12%] 122s tests/test_tag.py::test_remove PASSED [ 12%] 122s tests/test_template.py::test_str PASSED [ 13%] 122s tests/test_template.py::test_children PASSED [ 13%] 122s tests/test_template.py::test_strip PASSED [ 13%] 122s tests/test_template.py::test_showtree PASSED [ 13%] 122s tests/test_template.py::test_name PASSED [ 13%] 122s tests/test_template.py::test_params PASSED [ 13%] 122s tests/test_template.py::test_has PASSED [ 13%] 122s tests/test_template.py::test_get PASSED [ 13%] 122s tests/test_template.py::test_add PASSED [ 13%] 122s tests/test_template.py::test_remove PASSED [ 13%] 122s tests/test_template.py::test_formatting PASSED [ 13%] 122s tests/test_text.py::test_str PASSED [ 13%] 122s tests/test_text.py::test_children PASSED [ 13%] 122s tests/test_text.py::test_strip PASSED [ 13%] 122s tests/test_text.py::test_showtree PASSED [ 14%] 122s tests/test_text.py::test_value PASSED [ 14%] 122s tests/test_tokenizer.py::test_tokenizer[wikilinks:blank-PyTokenizer] PASSED [ 14%] 122s tests/test_tokenizer.py::test_tokenizer[wikilinks:blank_with_text-PyTokenizer] PASSED [ 14%] 122s tests/test_tokenizer.py::test_tokenizer[wikilinks:basic-PyTokenizer] PASSED [ 14%] 122s tests/test_tokenizer.py::test_tokenizer[wikilinks:with_text-PyTokenizer] PASSED [ 14%] 122s tests/test_tokenizer.py::test_tokenizer[wikilinks:blank_with_multiple_texts-PyTokenizer] PASSED [ 14%] 122s tests/test_tokenizer.py::test_tokenizer[wikilinks:multiple_texts-PyTokenizer] PASSED [ 14%] 122s tests/test_tokenizer.py::test_tokenizer[wikilinks:newline_text-PyTokenizer] PASSED [ 14%] 122s tests/test_tokenizer.py::test_tokenizer[wikilinks:bracket_text-PyTokenizer] PASSED [ 14%] 122s tests/test_tokenizer.py::test_tokenizer[wikilinks:nested-PyTokenizer] PASSED [ 14%] 122s tests/test_tokenizer.py::test_tokenizer[wikilinks:nested_padding-PyTokenizer] PASSED [ 14%] 122s tests/test_tokenizer.py::test_tokenizer[wikilinks:invalid_newline-PyTokenizer] PASSED [ 14%] 122s tests/test_tokenizer.py::test_tokenizer[wikilinks:invalid_right_brace-PyTokenizer] PASSED [ 14%] 122s tests/test_tokenizer.py::test_tokenizer[wikilinks:invalid_left_brace-PyTokenizer] PASSED [ 15%] 122s tests/test_tokenizer.py::test_tokenizer[wikilinks:invalid_right_bracket-PyTokenizer] PASSED [ 15%] 122s tests/test_tokenizer.py::test_tokenizer[wikilinks:invalid_left_bracket-PyTokenizer] PASSED [ 15%] 122s tests/test_tokenizer.py::test_tokenizer[wikilinks:invalid_nested_title-PyTokenizer] PASSED [ 15%] 122s tests/test_tokenizer.py::test_tokenizer[wikilinks:invalid_nested_title_and_text-PyTokenizer] PASSED [ 15%] 122s tests/test_tokenizer.py::test_tokenizer[wikilinks:invalid_nested_no_close-PyTokenizer] PASSED [ 15%] 122s tests/test_tokenizer.py::test_tokenizer[wikilinks:invalid_left_angle_bracket-PyTokenizer] PASSED [ 15%] 122s tests/test_tokenizer.py::test_tokenizer[wikilinks:invalid_right_angle_bracket-PyTokenizer] PASSED [ 15%] 122s tests/test_tokenizer.py::test_tokenizer[wikilinks:invalid_newline_at_start-PyTokenizer] PASSED [ 15%] 122s tests/test_tokenizer.py::test_tokenizer[wikilinks:invalid_newline_at_end-PyTokenizer] PASSED [ 15%] 122s tests/test_tokenizer.py::test_tokenizer[wikilinks:incomplete_open_only-PyTokenizer] PASSED [ 15%] 122s tests/test_tokenizer.py::test_tokenizer[wikilinks:incomplete_open_text-PyTokenizer] PASSED [ 15%] 122s tests/test_tokenizer.py::test_tokenizer[wikilinks:incomplete_open_text_pipe-PyTokenizer] PASSED [ 15%] 122s tests/test_tokenizer.py::test_tokenizer[wikilinks:incomplete_open_pipe-PyTokenizer] PASSED [ 15%] 122s tests/test_tokenizer.py::test_tokenizer[wikilinks:incomplete_open_pipe_text-PyTokenizer] PASSED [ 15%] 122s tests/test_tokenizer.py::test_tokenizer[wikilinks:incomplete_open_pipes_text-PyTokenizer] PASSED [ 16%] 122s tests/test_tokenizer.py::test_tokenizer[wikilinks:incomplete_open_partial_close-PyTokenizer] PASSED [ 16%] 122s tests/test_tokenizer.py::test_tokenizer[wikilinks:incomplete_preserve_previous-PyTokenizer] PASSED [ 16%] 122s tests/test_tokenizer.py::test_tokenizer[tags:basic-PyTokenizer] PASSED [ 16%] 122s tests/test_tokenizer.py::test_tokenizer[tags:basic_selfclosing-PyTokenizer] PASSED [ 16%] 122s tests/test_tokenizer.py::test_tokenizer[tags:content-PyTokenizer] PASSED [ 16%] 122s tests/test_tokenizer.py::test_tokenizer[tags:padded_open-PyTokenizer] PASSED [ 16%] 122s tests/test_tokenizer.py::test_tokenizer[tags:padded_close-PyTokenizer] PASSED [ 16%] 122s tests/test_tokenizer.py::test_tokenizer[tags:padded_selfclosing-PyTokenizer] PASSED [ 16%] 122s tests/test_tokenizer.py::test_tokenizer[tags:attribute-PyTokenizer] PASSED [ 16%] 122s tests/test_tokenizer.py::test_tokenizer[tags:attribute_value-PyTokenizer] PASSED [ 16%] 122s tests/test_tokenizer.py::test_tokenizer[tags:attribute_quoted-PyTokenizer] PASSED [ 16%] 122s tests/test_tokenizer.py::test_tokenizer[tags:attribute_single_quoted-PyTokenizer] PASSED [ 16%] 122s tests/test_tokenizer.py::test_tokenizer[tags:attribute_hyphen-PyTokenizer] PASSED [ 16%] 122s tests/test_tokenizer.py::test_tokenizer[tags:attribute_quoted_hyphen-PyTokenizer] PASSED [ 17%] 122s tests/test_tokenizer.py::test_tokenizer[tags:attribute_selfclosing-PyTokenizer] PASSED [ 17%] 122s tests/test_tokenizer.py::test_tokenizer[tags:attribute_selfclosing_value-PyTokenizer] PASSED [ 17%] 122s tests/test_tokenizer.py::test_tokenizer[tags:attribute_selfclosing_value_quoted-PyTokenizer] PASSED [ 17%] 122s tests/test_tokenizer.py::test_tokenizer[tags:nested_tag-PyTokenizer] PASSED [ 17%] 122s tests/test_tokenizer.py::test_tokenizer[tags:nested_tag_quoted-PyTokenizer] PASSED [ 17%] 122s tests/test_tokenizer.py::test_tokenizer[tags:nested_troll_tag-PyTokenizer] PASSED [ 17%] 122s tests/test_tokenizer.py::test_tokenizer[tags:nested_troll_tag_quoted-PyTokenizer] PASSED [ 17%] 122s tests/test_tokenizer.py::test_tokenizer[tags:nested_tag_selfclosing-PyTokenizer] PASSED [ 17%] 122s tests/test_tokenizer.py::test_tokenizer[tags:invalid_space_begin_open-PyTokenizer] PASSED [ 17%] 122s tests/test_tokenizer.py::test_tokenizer[tags:invalid_space_begin_close-PyTokenizer] PASSED [ 17%] 122s tests/test_tokenizer.py::test_tokenizer[tags:valid_space_end-PyTokenizer] PASSED [ 17%] 122s tests/test_tokenizer.py::test_tokenizer[tags:invalid_template_ends-PyTokenizer] PASSED [ 17%] 122s tests/test_tokenizer.py::test_tokenizer[tags:invalid_template_ends_nospace-PyTokenizer] PASSED [ 17%] 122s tests/test_tokenizer.py::test_tokenizer[tags:valid_template_end_open-PyTokenizer] PASSED [ 18%] 122s tests/test_tokenizer.py::test_tokenizer[tags:valid_template_end_open_space_end_close-PyTokenizer] PASSED [ 18%] 122s tests/test_tokenizer.py::test_tokenizer[tags:invalid_template_end_open_nospace-PyTokenizer] PASSED [ 18%] 122s tests/test_tokenizer.py::test_tokenizer[tags:invalid_template_start_close-PyTokenizer] PASSED [ 18%] 122s tests/test_tokenizer.py::test_tokenizer[tags:invalid_template_start_open-PyTokenizer] PASSED [ 18%] 122s tests/test_tokenizer.py::test_tokenizer[tags:unclosed_quote-PyTokenizer] PASSED [ 18%] 122s tests/test_tokenizer.py::test_tokenizer[tags:fake_quote-PyTokenizer] PASSED [ 18%] 122s tests/test_tokenizer.py::test_tokenizer[tags:fake_quote_complex-PyTokenizer] PASSED [ 18%] 122s tests/test_tokenizer.py::test_tokenizer[tags:quotes_in_quotes-PyTokenizer] PASSED [ 18%] 122s tests/test_tokenizer.py::test_tokenizer[tags:quotes_in_quotes_2-PyTokenizer] PASSED [ 18%] 122s tests/test_tokenizer.py::test_tokenizer[tags:quotes_in_quotes_3-PyTokenizer] PASSED [ 18%] 122s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_lbracket-PyTokenizer] PASSED [ 18%] 122s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_lbracket_junk-PyTokenizer] PASSED [ 18%] 122s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_unclosed_open-PyTokenizer] PASSED [ 18%] 122s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_unclosed_open_space-PyTokenizer] PASSED [ 18%] 122s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_unclosed_open_unnamed_attr-PyTokenizer] PASSED [ 19%] 122s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_unclosed_open_attr_equals-PyTokenizer] PASSED [ 19%] 122s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_unclosed_open_attr_equals_quoted-PyTokenizer] PASSED [ 19%] 122s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_unclosed_open_attr-PyTokenizer] PASSED [ 19%] 122s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_unclosed_open_attr_quoted-PyTokenizer] PASSED [ 19%] 122s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_open-PyTokenizer] PASSED [ 19%] 122s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_open_unnamed_attr-PyTokenizer] PASSED [ 19%] 122s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_open_attr_equals-PyTokenizer] PASSED [ 19%] 122s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_open_attr-PyTokenizer] PASSED [ 19%] 122s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_open_attr_quoted-PyTokenizer] PASSED [ 19%] 122s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_open_text-PyTokenizer] PASSED [ 19%] 122s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_open_attr_text-PyTokenizer] PASSED [ 19%] 122s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_open_text_lbracket-PyTokenizer] PASSED [ 19%] 122s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_open_text_lbracket_slash-PyTokenizer] PASSED [ 19%] 122s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_open_text_unclosed_close-PyTokenizer] PASSED [ 20%] 122s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_open_text_wrong_close-PyTokenizer] PASSED [ 20%] 122s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_unclosed_close-PyTokenizer] PASSED [ 20%] 122s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_unclosed_close_text-PyTokenizer] PASSED [ 20%] 122s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_close-PyTokenizer] PASSED [ 20%] 122s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_no_tag_name_open-PyTokenizer] PASSED [ 20%] 122s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_no_tag_name_selfclosing-PyTokenizer] PASSED [ 20%] 122s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_no_tag_name_open_close-PyTokenizer] PASSED [ 20%] 122s tests/test_tokenizer.py::test_tokenizer[tags:backslash_premature_before-PyTokenizer] PASSED [ 20%] 122s tests/test_tokenizer.py::test_tokenizer[tags:backslash_premature_after-PyTokenizer] PASSED [ 20%] 122s tests/test_tokenizer.py::test_tokenizer[tags:backslash_premature_middle-PyTokenizer] PASSED [ 20%] 122s tests/test_tokenizer.py::test_tokenizer[tags:backslash_adjacent-PyTokenizer] PASSED [ 20%] 122s tests/test_tokenizer.py::test_tokenizer[tags:backslash_endquote-PyTokenizer] PASSED [ 20%] 122s tests/test_tokenizer.py::test_tokenizer[tags:backslash_double-PyTokenizer] PASSED [ 20%] 122s tests/test_tokenizer.py::test_tokenizer[tags:backslash_triple-PyTokenizer] PASSED [ 21%] 122s tests/test_tokenizer.py::test_tokenizer[tags:backslash_unaffecting-PyTokenizer] PASSED [ 21%] 122s tests/test_tokenizer.py::test_tokenizer[tags:unparsable-PyTokenizer] PASSED [ 21%] 122s tests/test_tokenizer.py::test_tokenizer[tags:unparsable_complex-PyTokenizer] PASSED [ 21%] 122s tests/test_tokenizer.py::test_tokenizer[tags:unparsable_attributed-PyTokenizer] PASSED [ 21%] 122s tests/test_tokenizer.py::test_tokenizer[tags:unparsable_incomplete-PyTokenizer] PASSED [ 21%] 122s tests/test_tokenizer.py::test_tokenizer[tags:unparsable_entity-PyTokenizer] PASSED [ 21%] 122s tests/test_tokenizer.py::test_tokenizer[tags:unparsable_entity_incomplete-PyTokenizer] PASSED [ 21%] 122s tests/test_tokenizer.py::test_tokenizer[tags:unparsable_entity_incomplete_2-PyTokenizer] PASSED [ 21%] 122s tests/test_tokenizer.py::test_tokenizer[tags:single_open_close-PyTokenizer] PASSED [ 21%] 122s tests/test_tokenizer.py::test_tokenizer[tags:single_open-PyTokenizer] PASSED [ 21%] 122s tests/test_tokenizer.py::test_tokenizer[tags:single_selfclose-PyTokenizer] PASSED [ 21%] 122s tests/test_tokenizer.py::test_tokenizer[tags:single_close-PyTokenizer] PASSED [ 21%] 122s tests/test_tokenizer.py::test_tokenizer[tags:single_only_open_close-PyTokenizer] PASSED [ 21%] 122s tests/test_tokenizer.py::test_tokenizer[tags:single_only_open-PyTokenizer] PASSED [ 21%] 122s tests/test_tokenizer.py::test_tokenizer[tags:single_only_selfclose-PyTokenizer] PASSED [ 22%] 122s tests/test_tokenizer.py::test_tokenizer[tags:single_only_close-PyTokenizer] PASSED [ 22%] 122s tests/test_tokenizer.py::test_tokenizer[tags:single_only_double-PyTokenizer] PASSED [ 22%] 122s tests/test_tokenizer.py::test_tokenizer[tags:single_only_close_attribute-PyTokenizer] PASSED [ 22%] 122s tests/test_tokenizer.py::test_tokenizer[tags:capitalization-PyTokenizer] PASSED [ 22%] 122s tests/test_tokenizer.py::test_tokenizer[tags:unparsable_incomplete_close-PyTokenizer] PASSED [ 22%] 122s tests/test_tokenizer.py::test_tokenizer[tags:unparsable_with_intermediates-PyTokenizer] PASSED [ 22%] 122s tests/test_tokenizer.py::test_tokenizer[tags:unparsable_with_intermediates_normalize-PyTokenizer] PASSED [ 22%] 122s tests/test_tokenizer.py::test_tokenizer[tags:non_ascii_open-PyTokenizer] PASSED [ 22%] 122s tests/test_tokenizer.py::test_tokenizer[tags:non_ascii_full-PyTokenizer] PASSED [ 22%] 122s tests/test_tokenizer.py::test_tokenizer[tags:single_nested_selfclosing-PyTokenizer] PASSED [ 22%] 122s tests/test_tokenizer.py::test_tokenizer[html_entities:named-PyTokenizer] PASSED [ 22%] 122s tests/test_tokenizer.py::test_tokenizer[html_entities:numeric_decimal-PyTokenizer] PASSED [ 22%] 122s tests/test_tokenizer.py::test_tokenizer[html_entities:numeric_hexadecimal_x-PyTokenizer] PASSED [ 22%] 122s tests/test_tokenizer.py::test_tokenizer[html_entities:numeric_hexadecimal_X-PyTokenizer] PASSED [ 23%] 122s tests/test_tokenizer.py::test_tokenizer[html_entities:numeric_decimal_max-PyTokenizer] PASSED [ 23%] 122s tests/test_tokenizer.py::test_tokenizer[html_entities:numeric_hex_max-PyTokenizer] PASSED [ 23%] 122s tests/test_tokenizer.py::test_tokenizer[html_entities:numeric_zeros-PyTokenizer] PASSED [ 23%] 122s tests/test_tokenizer.py::test_tokenizer[html_entities:numeric_hex_zeros-PyTokenizer] PASSED [ 23%] 122s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_named_too_long-PyTokenizer] PASSED [ 23%] 122s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_named_undefined-PyTokenizer] PASSED [ 23%] 122s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_named_nonascii-PyTokenizer] PASSED [ 23%] 122s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_numeric_out_of_range_1-PyTokenizer] PASSED [ 23%] 122s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_numeric_out_of_range_2-PyTokenizer] PASSED [ 23%] 122s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_numeric_out_of_range_3-PyTokenizer] PASSED [ 23%] 122s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_numeric_out_of_range_4-PyTokenizer] PASSED [ 23%] 122s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_partial_amp-PyTokenizer] PASSED [ 23%] 122s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_partial_amp_semicolon-PyTokenizer] PASSED [ 23%] 122s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_partial_amp_pound-PyTokenizer] PASSED [ 24%] 122s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_partial_amp_pound_x-PyTokenizer] PASSED [ 24%] 122s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_partial_amp_pound_semicolon-PyTokenizer] PASSED [ 24%] 122s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_partial_amp_pound_x_semicolon0-PyTokenizer] PASSED [ 24%] 122s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_partial_amp_pound_numbers-PyTokenizer] PASSED [ 24%] 122s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_partial_amp_pound_x_semicolon1-PyTokenizer] PASSED [ 24%] 122s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_zeros_before_named-PyTokenizer] PASSED [ 24%] 122s tests/test_tokenizer.py::test_tokenizer[headings:level_1-PyTokenizer] PASSED [ 24%] 122s tests/test_tokenizer.py::test_tokenizer[headings:level_2-PyTokenizer] PASSED [ 24%] 122s tests/test_tokenizer.py::test_tokenizer[headings:level_3-PyTokenizer] PASSED [ 24%] 122s tests/test_tokenizer.py::test_tokenizer[headings:level_4-PyTokenizer] PASSED [ 24%] 122s tests/test_tokenizer.py::test_tokenizer[headings:level_5-PyTokenizer] PASSED [ 24%] 122s tests/test_tokenizer.py::test_tokenizer[headings:level_6-PyTokenizer] PASSED [ 24%] 122s tests/test_tokenizer.py::test_tokenizer[headings:level_7-PyTokenizer] PASSED [ 24%] 122s tests/test_tokenizer.py::test_tokenizer[headings:level_3_2-PyTokenizer] PASSED [ 25%] 122s tests/test_tokenizer.py::test_tokenizer[headings:level_4_6-PyTokenizer] PASSED [ 25%] 122s tests/test_tokenizer.py::test_tokenizer[headings:newline_before-PyTokenizer] PASSED [ 25%] 122s tests/test_tokenizer.py::test_tokenizer[headings:text_after-PyTokenizer] PASSED [ 25%] 122s tests/test_tokenizer.py::test_tokenizer[headings:invalid_text_before-PyTokenizer] PASSED [ 25%] 122s tests/test_tokenizer.py::test_tokenizer[headings:invalid_newline_middle-PyTokenizer] PASSED [ 25%] 122s tests/test_tokenizer.py::test_tokenizer[headings:invalid_newline_end-PyTokenizer] PASSED [ 25%] 122s tests/test_tokenizer.py::test_tokenizer[headings:invalid_nesting-PyTokenizer] PASSED [ 25%] 122s tests/test_tokenizer.py::test_tokenizer[headings:incomplete-PyTokenizer] PASSED [ 25%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:basic_italics-PyTokenizer] PASSED [ 25%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:basic_bold-PyTokenizer] PASSED [ 25%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:basic_ul-PyTokenizer] PASSED [ 25%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:basic_ol-PyTokenizer] PASSED [ 25%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:basic_dt-PyTokenizer] PASSED [ 25%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:basic_dd-PyTokenizer] PASSED [ 25%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:basic_hr-PyTokenizer] PASSED [ 26%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:complex_italics-PyTokenizer] PASSED [ 26%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:multiline_italics-PyTokenizer] PASSED [ 26%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:unending_italics-PyTokenizer] PASSED [ 26%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:misleading_italics_end-PyTokenizer] PASSED [ 26%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:italics_start_outside_end_inside-PyTokenizer] PASSED [ 26%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:italics_start_inside_end_outside-PyTokenizer] PASSED [ 26%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:complex_bold-PyTokenizer] PASSED [ 26%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:multiline_bold-PyTokenizer] PASSED [ 26%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:unending_bold-PyTokenizer] PASSED [ 26%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:misleading_bold_end-PyTokenizer] PASSED [ 26%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:bold_start_outside_end_inside-PyTokenizer] PASSED [ 26%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:bold_start_inside_end_outside-PyTokenizer] PASSED [ 26%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:bold_and_italics-PyTokenizer] PASSED [ 26%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:both_then_bold-PyTokenizer] PASSED [ 27%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:both_then_italics-PyTokenizer] PASSED [ 27%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:bold_then_both-PyTokenizer] PASSED [ 27%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:italics_then_both-PyTokenizer] PASSED [ 27%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:italics_then_bold-PyTokenizer] PASSED [ 27%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:bold_then_italics-PyTokenizer] PASSED [ 27%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:five_three-PyTokenizer] PASSED [ 27%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:five_two-PyTokenizer] PASSED [ 27%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:four-PyTokenizer] PASSED [ 27%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:four_two-PyTokenizer] PASSED [ 27%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:two_three-PyTokenizer] PASSED [ 27%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:two_four-PyTokenizer] PASSED [ 27%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:two_three_two-PyTokenizer] PASSED [ 27%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:two_four_four-PyTokenizer] PASSED [ 27%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:seven-PyTokenizer] PASSED [ 28%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:unending_bold_and_italics-PyTokenizer] PASSED [ 28%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:complex_ul-PyTokenizer] PASSED [ 28%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:ul_multiline_template-PyTokenizer] PASSED [ 28%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:ul_adjacent-PyTokenizer] PASSED [ 28%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:ul_depths-PyTokenizer] PASSED [ 28%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:ul_space_before-PyTokenizer] PASSED [ 28%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:ul_interruption-PyTokenizer] PASSED [ 28%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:complex_ol-PyTokenizer] PASSED [ 28%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:ol_multiline_template-PyTokenizer] PASSED [ 28%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:ol_adjacent-PyTokenizer] PASSED [ 28%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:ol_depths-PyTokenizer] PASSED [ 28%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:ol_space_before-PyTokenizer] PASSED [ 28%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:ol_interruption-PyTokenizer] PASSED [ 28%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:ul_ol_mix-PyTokenizer] PASSED [ 28%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:complex_dt-PyTokenizer] PASSED [ 29%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dt_multiline_template-PyTokenizer] PASSED [ 29%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dt_adjacent-PyTokenizer] PASSED [ 29%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dt_depths-PyTokenizer] PASSED [ 29%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dt_space_before-PyTokenizer] PASSED [ 29%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dt_interruption-PyTokenizer] PASSED [ 29%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:complex_dd-PyTokenizer] PASSED [ 29%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dd_multiline_template-PyTokenizer] PASSED [ 29%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dd_adjacent-PyTokenizer] PASSED [ 29%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dd_depths-PyTokenizer] PASSED [ 29%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dd_space_before-PyTokenizer] PASSED [ 29%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dd_interruption-PyTokenizer] PASSED [ 29%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dt_dd_mix-PyTokenizer] PASSED [ 29%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dt_dd_mix2-PyTokenizer] PASSED [ 29%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dt_dd_mix3-PyTokenizer] PASSED [ 30%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dt_dd_mix4-PyTokenizer] PASSED [ 30%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:ul_ol_dt_dd_mix-PyTokenizer] PASSED [ 30%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:hr_text_before-PyTokenizer] PASSED [ 30%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:hr_text_after-PyTokenizer] PASSED [ 30%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:hr_text_before_after-PyTokenizer] PASSED [ 30%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:hr_newlines-PyTokenizer] PASSED [ 30%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:hr_adjacent-PyTokenizer] PASSED [ 30%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:hr_adjacent_space-PyTokenizer] PASSED [ 30%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:hr_short-PyTokenizer] PASSED [ 30%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:hr_long-PyTokenizer] PASSED [ 30%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:hr_interruption_short-PyTokenizer] PASSED [ 30%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:hr_interruption_long-PyTokenizer] PASSED [ 30%] 122s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:nowiki_cancel-PyTokenizer] PASSED [ 30%] 122s tests/test_tokenizer.py::test_tokenizer[templates:no_params-PyTokenizer] PASSED [ 31%] 122s tests/test_tokenizer.py::test_tokenizer[templates:one_param_unnamed-PyTokenizer] PASSED [ 31%] 122s tests/test_tokenizer.py::test_tokenizer[templates:one_param_named-PyTokenizer] PASSED [ 31%] 122s tests/test_tokenizer.py::test_tokenizer[templates:multiple_unnamed_params-PyTokenizer] PASSED [ 31%] 122s tests/test_tokenizer.py::test_tokenizer[templates:multiple_named_params-PyTokenizer] PASSED [ 31%] 122s tests/test_tokenizer.py::test_tokenizer[templates:multiple_mixed_params-PyTokenizer] PASSED [ 31%] 122s tests/test_tokenizer.py::test_tokenizer[templates:multiple_mixed_params2-PyTokenizer] PASSED [ 31%] 122s tests/test_tokenizer.py::test_tokenizer[templates:blank_params-PyTokenizer] PASSED [ 31%] 122s tests/test_tokenizer.py::test_tokenizer[templates:nested_unnamed_param-PyTokenizer] PASSED [ 31%] 122s tests/test_tokenizer.py::test_tokenizer[templates:nested_named_param_value-PyTokenizer] PASSED [ 31%] 122s tests/test_tokenizer.py::test_tokenizer[templates:nested_named_param_name_and_value-PyTokenizer] PASSED [ 31%] 122s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_start-PyTokenizer] PASSED [ 31%] 122s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_start_unnamed_param-PyTokenizer] PASSED [ 31%] 122s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_start_named_param_value-PyTokenizer] PASSED [ 31%] 122s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_start_named_param_name_and_value-PyTokenizer] PASSED [ 31%] 122s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_end-PyTokenizer] PASSED [ 32%] 122s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_end_unnamed_param-PyTokenizer] PASSED [ 32%] 122s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_end_named_param_value-PyTokenizer] PASSED [ 32%] 122s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_end_named_param_name_and_value-PyTokenizer] PASSED [ 32%] 122s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_mid-PyTokenizer] PASSED [ 32%] 122s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_mid_unnamed_param-PyTokenizer] PASSED [ 32%] 122s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_mid_named_param_value-PyTokenizer] PASSED [ 32%] 122s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_mid_named_param_name_and_value-PyTokenizer] PASSED [ 32%] 122s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_start_end-PyTokenizer] PASSED [ 32%] 122s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_start_end_unnamed_param-PyTokenizer] PASSED [ 32%] 122s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_start_end_named_param_value-PyTokenizer] PASSED [ 32%] 122s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_start_end_named_param_name_and_value-PyTokenizer] PASSED [ 32%] 122s tests/test_tokenizer.py::test_tokenizer[templates:nested_names_multiple-PyTokenizer] PASSED [ 32%] 122s tests/test_tokenizer.py::test_tokenizer[templates:nested_names_multiple_unnamed_param-PyTokenizer] PASSED [ 32%] 122s tests/test_tokenizer.py::test_tokenizer[templates:nested_names_multiple_named_param_value-PyTokenizer] PASSED [ 33%] 122s tests/test_tokenizer.py::test_tokenizer[templates:nested_names_multiple_named_param_name_and_value-PyTokenizer] PASSED [ 33%] 122s tests/test_tokenizer.py::test_tokenizer[templates:mixed_nested_templates-PyTokenizer] PASSED [ 33%] 122s tests/test_tokenizer.py::test_tokenizer[templates:nested_two_args-PyTokenizer] PASSED [ 33%] 122s tests/test_tokenizer.py::test_tokenizer[templates:newlines_start-PyTokenizer] PASSED [ 33%] 122s tests/test_tokenizer.py::test_tokenizer[templates:newlines_end-PyTokenizer] PASSED [ 33%] 122s tests/test_tokenizer.py::test_tokenizer[templates:newlines_start_end-PyTokenizer] PASSED [ 33%] 122s tests/test_tokenizer.py::test_tokenizer[templates:newlines_mid-PyTokenizer] PASSED [ 33%] 122s tests/test_tokenizer.py::test_tokenizer[templates:newlines_start_mid-PyTokenizer] PASSED [ 33%] 122s tests/test_tokenizer.py::test_tokenizer[templates:newlines_mid_end-PyTokenizer] PASSED [ 33%] 122s tests/test_tokenizer.py::test_tokenizer[templates:newlines_start_mid_end-PyTokenizer] PASSED [ 33%] 122s tests/test_tokenizer.py::test_tokenizer[templates:newlines_unnamed_param-PyTokenizer] PASSED [ 33%] 122s tests/test_tokenizer.py::test_tokenizer[templates:newlines_enclose_template_name_unnamed_param-PyTokenizer] PASSED [ 33%] 122s tests/test_tokenizer.py::test_tokenizer[templates:newlines_within_template_name_unnamed_param-PyTokenizer] PASSED [ 33%] 122s tests/test_tokenizer.py::test_tokenizer[templates:newlines_enclose_template_name_named_param_value-PyTokenizer] PASSED [ 34%] 122s tests/test_tokenizer.py::test_tokenizer[templates:newlines_within_template_name_named_param_value-PyTokenizer] PASSED [ 34%] 122s tests/test_tokenizer.py::test_tokenizer[templates:newlines_named_param_name-PyTokenizer] PASSED [ 34%] 122s tests/test_tokenizer.py::test_tokenizer[templates:newlines_named_param_name_param_value-PyTokenizer] PASSED [ 34%] 122s tests/test_tokenizer.py::test_tokenizer[templates:newlines_enclose_template_name_named_param_name-PyTokenizer] PASSED [ 34%] 122s tests/test_tokenizer.py::test_tokenizer[templates:newlines_enclose_template_name_named_param_name_param_value-PyTokenizer] PASSED [ 34%] 122s tests/test_tokenizer.py::test_tokenizer[templates:newlines_within_template_name_named_param_name-PyTokenizer] PASSED [ 34%] 122s tests/test_tokenizer.py::test_tokenizer[templates:newlines_within_template_name_named_param_name_param_value-PyTokenizer] PASSED [ 34%] 122s tests/test_tokenizer.py::test_tokenizer[templates:newlines_wildcard-PyTokenizer] PASSED [ 34%] 122s tests/test_tokenizer.py::test_tokenizer[templates:newlines_wildcard_redux-PyTokenizer] PASSED [ 34%] 122s tests/test_tokenizer.py::test_tokenizer[templates:newlines_wildcard_redux_invalid-PyTokenizer] PASSED [ 34%] 122s tests/test_tokenizer.py::test_tokenizer[templates:newlines_spaces-PyTokenizer] PASSED [ 34%] 122s tests/test_tokenizer.py::test_tokenizer[templates:newlines_spaces_param-PyTokenizer] PASSED [ 34%] 122s tests/test_tokenizer.py::test_tokenizer[templates:invalid_blank-PyTokenizer] PASSED [ 34%] 122s tests/test_tokenizer.py::test_tokenizer[templates:invalid_blank_whitespace-PyTokenizer] PASSED [ 34%] 122s tests/test_tokenizer.py::test_tokenizer[templates:invalid_blank_pipe-PyTokenizer] PASSED [ 35%] 122s tests/test_tokenizer.py::test_tokenizer[templates:invalid_blank_whitespace_pipe-PyTokenizer] PASSED [ 35%] 122s tests/test_tokenizer.py::test_tokenizer[templates:invalid_name_left_brace_middle-PyTokenizer] PASSED [ 35%] 122s tests/test_tokenizer.py::test_tokenizer[templates:invalid_name_right_brace_middle-PyTokenizer] PASSED [ 35%] 122s tests/test_tokenizer.py::test_tokenizer[templates:invalid_name_left_braces-PyTokenizer] PASSED [ 35%] 122s tests/test_tokenizer.py::test_tokenizer[templates:invalid_name_left_bracket_middle-PyTokenizer] PASSED [ 35%] 122s tests/test_tokenizer.py::test_tokenizer[templates:invalid_name_right_bracket_middle-PyTokenizer] PASSED [ 35%] 122s tests/test_tokenizer.py::test_tokenizer[templates:invalid_name_left_bracket_start-PyTokenizer] PASSED [ 35%] 122s tests/test_tokenizer.py::test_tokenizer[templates:invalid_name_right_bracket_start-PyTokenizer] PASSED [ 35%] 122s tests/test_tokenizer.py::test_tokenizer[templates:valid_name_left_brace_start-PyTokenizer] PASSED [ 35%] 122s tests/test_tokenizer.py::test_tokenizer[templates:valid_unnamed_param_left_brace-PyTokenizer] PASSED [ 35%] 122s tests/test_tokenizer.py::test_tokenizer[templates:valid_unnamed_param_braces-PyTokenizer] PASSED [ 35%] 122s tests/test_tokenizer.py::test_tokenizer[templates:valid_param_name_braces-PyTokenizer] PASSED [ 35%] 122s tests/test_tokenizer.py::test_tokenizer[templates:valid_param_name_brackets-PyTokenizer] PASSED [ 35%] 122s tests/test_tokenizer.py::test_tokenizer[templates:valid_param_name_double_left_brackets-PyTokenizer] PASSED [ 36%] 122s tests/test_tokenizer.py::test_tokenizer[templates:valid_param_name_double_right_brackets-PyTokenizer] PASSED [ 36%] 122s tests/test_tokenizer.py::test_tokenizer[templates:valid_param_name_double_brackets-PyTokenizer] PASSED [ 36%] 122s tests/test_tokenizer.py::test_tokenizer[templates:invalid_param_name_double_left_braces-PyTokenizer] PASSED [ 36%] 122s tests/test_tokenizer.py::test_tokenizer[templates:invalid_param_name_double_braces-PyTokenizer] PASSED [ 36%] 122s tests/test_tokenizer.py::test_tokenizer[templates:invalid_left_angle_bracket-PyTokenizer] PASSED [ 36%] 122s tests/test_tokenizer.py::test_tokenizer[templates:invalid_right_angle_bracket-PyTokenizer] PASSED [ 36%] 122s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_stub-PyTokenizer] PASSED [ 36%] 122s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_plain-PyTokenizer] PASSED [ 36%] 122s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_right_brace-PyTokenizer] PASSED [ 36%] 122s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_pipe-PyTokenizer] PASSED [ 36%] 122s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_unnamed_param-PyTokenizer] PASSED [ 36%] 122s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_unnamed_param_pipe-PyTokenizer] PASSED [ 36%] 122s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_valueless_param-PyTokenizer] PASSED [ 36%] 122s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_valueless_param_pipe-PyTokenizer] PASSED [ 37%] 122s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_named_param-PyTokenizer] PASSED [ 37%] 122s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_named_param_pipe-PyTokenizer] PASSED [ 37%] 122s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_two_unnamed_params-PyTokenizer] PASSED [ 37%] 122s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_unnamed_param_valueless_param-PyTokenizer] PASSED [ 37%] 122s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_unnamed_param_named_param-PyTokenizer] PASSED [ 37%] 122s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_named_param_unnamed_param-PyTokenizer] PASSED [ 37%] 122s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_named_param_valueless_param-PyTokenizer] PASSED [ 37%] 122s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_two_named_params-PyTokenizer] PASSED [ 37%] 122s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_nested_template_as_unnamed_param-PyTokenizer] PASSED [ 37%] 122s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_nested_template_as_param_value-PyTokenizer] PASSED [ 37%] 122s tests/test_tokenizer.py::test_tokenizer[templates:recursion_five_hundred_opens-PyTokenizer] PASSED [ 37%] 122s tests/test_tokenizer.py::test_tokenizer[templates:recursion_one_hundred_opens-PyTokenizer] PASSED [ 37%] 122s tests/test_tokenizer.py::test_tokenizer[templates:recursion_opens_and_closes-PyTokenizer] PASSED [ 37%] 122s tests/test_tokenizer.py::test_tokenizer[templates:invalid_section_level_1-PyTokenizer] PASSED [ 37%] 122s tests/test_tokenizer.py::test_tokenizer[templates:section_level_2-PyTokenizer] PASSED [ 38%] 122s tests/test_tokenizer.py::test_tokenizer[templates:invalid_section_level_2-PyTokenizer] PASSED [ 38%] 122s tests/test_tokenizer.py::test_tokenizer[templates:section_level_2_after_template_parameter-PyTokenizer] PASSED [ 38%] 122s tests/test_tokenizer.py::test_tokenizer[text:basic-PyTokenizer] PASSED [ 38%] 122s tests/test_tokenizer.py::test_tokenizer[text:newlines-PyTokenizer] PASSED [ 38%] 122s tests/test_tokenizer.py::test_tokenizer[text:unicode-PyTokenizer] PASSED [ 38%] 122s tests/test_tokenizer.py::test_tokenizer[text:unicode2-PyTokenizer] PASSED [ 38%] 122s tests/test_tokenizer.py::test_tokenizer[text:large-PyTokenizer] PASSED [ 38%] 122s tests/test_tokenizer.py::test_tokenizer[tables:empty_table-PyTokenizer] PASSED [ 38%] 122s tests/test_tokenizer.py::test_tokenizer[tables:inline_table-PyTokenizer] PASSED [ 38%] 122s tests/test_tokenizer.py::test_tokenizer[tables:no_table_close_simple-PyTokenizer] PASSED [ 38%] 122s tests/test_tokenizer.py::test_tokenizer[tables:no_table_close_newline-PyTokenizer] PASSED [ 38%] 122s tests/test_tokenizer.py::test_tokenizer[tables:no_table_close_inside_cell-PyTokenizer] PASSED [ 38%] 122s tests/test_tokenizer.py::test_tokenizer[tables:no_table_close_inside_cell_after_newline-PyTokenizer] PASSED [ 38%] 122s tests/test_tokenizer.py::test_tokenizer[tables:no_table_close_inside_cell_with_attributes-PyTokenizer] PASSED [ 39%] 122s tests/test_tokenizer.py::test_tokenizer[tables:no_table_close_inside_row-PyTokenizer] PASSED [ 39%] 122s tests/test_tokenizer.py::test_tokenizer[tables:no_table_close_inside_row_after_newline-PyTokenizer] PASSED [ 39%] 122s tests/test_tokenizer.py::test_tokenizer[tables:no_table_close_row_and_cell-PyTokenizer] PASSED [ 39%] 122s tests/test_tokenizer.py::test_tokenizer[tables:no_table_close_attributes-PyTokenizer] PASSED [ 39%] 122s tests/test_tokenizer.py::test_tokenizer[tables:no_table_close_unclosed_attributes-PyTokenizer] PASSED [ 39%] 122s tests/test_tokenizer.py::test_tokenizer[tables:no_table_close_row_attributes-PyTokenizer] PASSED [ 39%] 122s tests/test_tokenizer.py::test_tokenizer[tables:no_table_close_cell-PyTokenizer] PASSED [ 39%] 122s tests/test_tokenizer.py::test_tokenizer[tables:crazy_no_table_close-PyTokenizer] PASSED [ 39%] 122s tests/test_tokenizer.py::test_tokenizer[tables:leading_whitespace_table-PyTokenizer] PASSED [ 39%] 122s tests/test_tokenizer.py::test_tokenizer[tables:whitespace_after_table-PyTokenizer] PASSED [ 39%] 122s tests/test_tokenizer.py::test_tokenizer[tables:different_whitespace_after_table-PyTokenizer] PASSED [ 39%] 122s tests/test_tokenizer.py::test_tokenizer[tables:characters_after_table-PyTokenizer] PASSED [ 39%] 122s tests/test_tokenizer.py::test_tokenizer[tables:characters_after_inline_table-PyTokenizer] PASSED [ 39%] 122s tests/test_tokenizer.py::test_tokenizer[tables:leading_characters_table-PyTokenizer] PASSED [ 40%] 122s tests/test_tokenizer.py::test_tokenizer[tables:table_row_simple-PyTokenizer] PASSED [ 40%] 122s tests/test_tokenizer.py::test_tokenizer[tables:table_row_multiple-PyTokenizer] PASSED [ 40%] 122s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_simple-PyTokenizer] PASSED [ 40%] 122s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_inline-PyTokenizer] PASSED [ 40%] 122s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_multiple-PyTokenizer] PASSED [ 40%] 122s tests/test_tokenizer.py::test_tokenizer[tables:table_header_simple-PyTokenizer] PASSED [ 40%] 122s tests/test_tokenizer.py::test_tokenizer[tables:table_header_inline-PyTokenizer] PASSED [ 40%] 122s tests/test_tokenizer.py::test_tokenizer[tables:table_header_multiple-PyTokenizer] PASSED [ 40%] 122s tests/test_tokenizer.py::test_tokenizer[tables:nested_cells_and_rows-PyTokenizer] PASSED [ 40%] 122s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_fake_close-PyTokenizer] PASSED [ 40%] 122s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_more_fake_close-PyTokenizer] PASSED [ 40%] 122s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_extra_close-PyTokenizer] PASSED [ 40%] 122s tests/test_tokenizer.py::test_tokenizer[tables:nowiki_inside_table-PyTokenizer] PASSED [ 40%] 122s tests/test_tokenizer.py::test_tokenizer[tables:table_text_outside_cell-PyTokenizer] PASSED [ 40%] 122s tests/test_tokenizer.py::test_tokenizer[tables:no_table_cell_with_leading_characters-PyTokenizer] PASSED [ 41%] 122s tests/test_tokenizer.py::test_tokenizer[tables:no_table_row_with_leading_characters-PyTokenizer] PASSED [ 41%] 122s tests/test_tokenizer.py::test_tokenizer[tables:template_inside_table_cell-PyTokenizer] PASSED [ 41%] 122s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_attributes-PyTokenizer] PASSED [ 41%] 122s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_empty_attributes-PyTokenizer] PASSED [ 41%] 122s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_with_dash-PyTokenizer] PASSED [ 41%] 122s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_attributes_quote_with_pipe-PyTokenizer] PASSED [ 41%] 122s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_attributes_name_with_pipe-PyTokenizer] PASSED [ 41%] 122s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_attributes_pipe_after_equals-PyTokenizer] PASSED [ 41%] 122s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_attributes_templates-PyTokenizer] PASSED [ 41%] 122s tests/test_tokenizer.py::test_tokenizer[tables:header_cell_attributes-PyTokenizer] PASSED [ 41%] 122s tests/test_tokenizer.py::test_tokenizer[tables:inline_cell_attributes-PyTokenizer] PASSED [ 41%] 122s tests/test_tokenizer.py::test_tokenizer[tables:table_row_attributes-PyTokenizer] PASSED [ 41%] 122s tests/test_tokenizer.py::test_tokenizer[tables:table_row_attributes_crazy_whitespace-PyTokenizer] PASSED [ 41%] 122s tests/test_tokenizer.py::test_tokenizer[tables:table_attributes-PyTokenizer] PASSED [ 42%] 122s tests/test_tokenizer.py::test_tokenizer[tables:inline_table_attributes-PyTokenizer] PASSED [ 42%] 122s tests/test_tokenizer.py::test_tokenizer[tables:table_incorrect_attributes-PyTokenizer] PASSED [ 42%] 122s tests/test_tokenizer.py::test_tokenizer[tables:templates_in_table_attribute-PyTokenizer] PASSED [ 42%] 122s tests/test_tokenizer.py::test_tokenizer[tables:templates_in_table_attribute_2-PyTokenizer] PASSED [ 42%] 122s tests/test_tokenizer.py::test_tokenizer[tables:inappropriate_marker_at_line_start-PyTokenizer] PASSED [ 42%] 122s tests/test_tokenizer.py::test_tokenizer[tables:fake_close_near_start-PyTokenizer] PASSED [ 42%] 122s tests/test_tokenizer.py::test_tokenizer[tables:fake_close_near_start_2-PyTokenizer] PASSED [ 42%] 122s tests/test_tokenizer.py::test_tokenizer[tables:junk_after_table_start-PyTokenizer] PASSED [ 42%] 122s tests/test_tokenizer.py::test_tokenizer[tables:junk_after_table_row-PyTokenizer] PASSED [ 42%] 122s tests/test_tokenizer.py::test_tokenizer[tables:incomplete_nested_open_only-PyTokenizer] PASSED [ 42%] 122s tests/test_tokenizer.py::test_tokenizer[tables:incomplete_nested_open_and_row-PyTokenizer] PASSED [ 42%] 122s tests/test_tokenizer.py::test_tokenizer[comments:blank-PyTokenizer] PASSED [ 42%] 122s tests/test_tokenizer.py::test_tokenizer[comments:basic-PyTokenizer] PASSED [ 42%] 122s tests/test_tokenizer.py::test_tokenizer[comments:tons_of_nonsense-PyTokenizer] PASSED [ 43%] 122s tests/test_tokenizer.py::test_tokenizer[comments:incomplete_blank-PyTokenizer] PASSED [ 43%] 122s tests/test_tokenizer.py::test_tokenizer[comments:incomplete_text-PyTokenizer] PASSED [ 43%] 122s tests/test_tokenizer.py::test_tokenizer[comments:incomplete_partial_close-PyTokenizer] PASSED [ 43%] 122s tests/test_tokenizer.py::test_tokenizer[comments:incomplete_part_only-PyTokenizer] PASSED [ 43%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:basic-PyTokenizer] PASSED [ 43%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:basic_brackets-PyTokenizer] PASSED [ 43%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_space-PyTokenizer] PASSED [ 43%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_title-PyTokenizer] PASSED [ 43%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_multiword_title-PyTokenizer] PASSED [ 43%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_adjacent-PyTokenizer] PASSED [ 43%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_newline_before-PyTokenizer] PASSED [ 43%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_newline_inside-PyTokenizer] PASSED [ 43%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_newline_after-PyTokenizer] PASSED [ 43%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_space_before-PyTokenizer] PASSED [ 43%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_title_like_url-PyTokenizer] PASSED [ 44%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_recursive-PyTokenizer] PASSED [ 44%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_recursive_2-PyTokenizer] PASSED [ 44%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:period_after-PyTokenizer] PASSED [ 44%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:colons_after-PyTokenizer] PASSED [ 44%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:close_paren_after_excluded-PyTokenizer] PASSED [ 44%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:close_paren_after_included-PyTokenizer] PASSED [ 44%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:open_bracket_inside-PyTokenizer] PASSED [ 44%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_period_after-PyTokenizer] PASSED [ 44%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_punct_after-PyTokenizer] PASSED [ 44%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_close_paren_after_included-PyTokenizer] PASSED [ 44%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_close_paren_after_included_2-PyTokenizer] PASSED [ 44%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_open_bracket_inside-PyTokenizer] PASSED [ 44%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:adjacent_space-PyTokenizer] PASSED [ 44%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:adjacent_newline-PyTokenizer] PASSED [ 45%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:adjacent_close_bracket-PyTokenizer] PASSED [ 45%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:html_entity_in_url-PyTokenizer] PASSED [ 45%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:template_in_url-PyTokenizer] PASSED [ 45%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:argument_in_url-PyTokenizer] PASSED [ 45%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:wikilink_in_url-PyTokenizer] PASSED [ 45%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:external_link_in_url-PyTokenizer] PASSED [ 45%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:spaces_padding-PyTokenizer] PASSED [ 45%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:text_and_spaces_padding-PyTokenizer] PASSED [ 45%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:template_before-PyTokenizer] PASSED [ 45%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:spaces_padding_no_slashes-PyTokenizer] PASSED [ 45%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:text_and_spaces_padding_no_slashes-PyTokenizer] PASSED [ 45%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:template_before_no_slashes-PyTokenizer] PASSED [ 45%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:no_slashes-PyTokenizer] PASSED [ 45%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:slashes_optional-PyTokenizer] PASSED [ 46%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:short-PyTokenizer] PASSED [ 46%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:slashes_missing-PyTokenizer] PASSED [ 46%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:no_scheme_but_slashes-PyTokenizer] PASSED [ 46%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:no_scheme_but_colon-PyTokenizer] PASSED [ 46%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:no_scheme_but_colon_and_slashes-PyTokenizer] PASSED [ 46%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:fake_scheme_no_slashes-PyTokenizer] PASSED [ 46%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:fake_scheme_slashes-PyTokenizer] PASSED [ 46%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:fake_scheme_brackets_no_slashes-PyTokenizer] PASSED [ 46%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:fake_scheme_brackets_slashes-PyTokenizer] PASSED [ 46%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:interrupted_scheme-PyTokenizer] PASSED [ 46%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:interrupted_scheme_brackets-PyTokenizer] PASSED [ 46%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:no_slashes_brackets-PyTokenizer] PASSED [ 46%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:space_before_no_slashes_brackets-PyTokenizer] PASSED [ 46%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:slashes_optional_brackets-PyTokenizer] PASSED [ 46%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:short_brackets-PyTokenizer] PASSED [ 47%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:slashes_missing_brackets-PyTokenizer] PASSED [ 47%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:protcol_relative-PyTokenizer] PASSED [ 47%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:scheme_missing_but_colon_brackets-PyTokenizer] PASSED [ 47%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:scheme_missing_but_colon_slashes_brackets-PyTokenizer] PASSED [ 47%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:unclosed_protocol_relative-PyTokenizer] PASSED [ 47%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:space_before_protcol_relative-PyTokenizer] PASSED [ 47%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:unclosed_just_scheme-PyTokenizer] PASSED [ 47%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:unclosed_scheme_colon-PyTokenizer] PASSED [ 47%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:unclosed_scheme_colon_slashes-PyTokenizer] PASSED [ 47%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:incomplete_bracket-PyTokenizer] PASSED [ 47%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:incomplete_scheme_colon-PyTokenizer] PASSED [ 47%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:incomplete_scheme_colon_slashes-PyTokenizer] PASSED [ 47%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_scheme_but_no_url-PyTokenizer] PASSED [ 47%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_scheme_slashes_but_no_url-PyTokenizer] PASSED [ 48%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_scheme_title_but_no_url-PyTokenizer] PASSED [ 48%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:url_preceded_by_non_word_character-PyTokenizer] PASSED [ 48%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:url_preceded_by_underscore-PyTokenizer] PASSED [ 48%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:url_terminated_by_double_quote-PyTokenizer] PASSED [ 48%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:url_not_terminated_by_single_quote-PyTokenizer] PASSED [ 48%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:url_terminated_by_two_single_quotes-PyTokenizer] PASSED [ 48%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:url_terminated_by_left_angle-PyTokenizer] PASSED [ 48%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:url_terminated_by_right_angle-PyTokenizer] PASSED [ 48%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_terminated_by_double_quote-PyTokenizer] PASSED [ 48%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_not_terminated_by_single_quote-PyTokenizer] PASSED [ 48%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_terminated_by_two_single_quotes-PyTokenizer] PASSED [ 48%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_terminated_by_left_angle-PyTokenizer] PASSED [ 48%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_terminated_by_right_angle-PyTokenizer] PASSED [ 48%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:scheme_case-PyTokenizer] PASSED [ 49%] 122s tests/test_tokenizer.py::test_tokenizer[external_links:bracket_scheme_case-PyTokenizer] PASSED [ 49%] 122s tests/test_tokenizer.py::test_tokenizer[integration:empty-PyTokenizer] PASSED [ 49%] 122s tests/test_tokenizer.py::test_tokenizer[integration:template_argument_mix-PyTokenizer] PASSED [ 49%] 122s tests/test_tokenizer.py::test_tokenizer[integration:link_in_template_name-PyTokenizer] PASSED [ 49%] 122s tests/test_tokenizer.py::test_tokenizer[integration:rich_heading-PyTokenizer] PASSED [ 49%] 122s tests/test_tokenizer.py::test_tokenizer[integration:html_entity_with_template-PyTokenizer] PASSED [ 49%] 122s tests/test_tokenizer.py::test_tokenizer[integration:html_entity_with_comment-PyTokenizer] PASSED [ 49%] 122s tests/test_tokenizer.py::test_tokenizer[integration:rich_tags-PyTokenizer] PASSED [ 49%] 122s tests/test_tokenizer.py::test_tokenizer[integration:wildcard-PyTokenizer] PASSED [ 49%] 122s tests/test_tokenizer.py::test_tokenizer[integration:wildcard_redux-PyTokenizer] PASSED [ 49%] 122s tests/test_tokenizer.py::test_tokenizer[integration:link_inside_dl-PyTokenizer] PASSED [ 49%] 122s tests/test_tokenizer.py::test_tokenizer[integration:link_inside_dl_2-PyTokenizer] PASSED [ 49%] 122s tests/test_tokenizer.py::test_tokenizer[integration:link_inside_template-PyTokenizer] PASSED [ 49%] 122s tests/test_tokenizer.py::test_tokenizer[integration:link_inside_template_2-PyTokenizer] PASSED [ 50%] 122s tests/test_tokenizer.py::test_tokenizer[integration:link_inside_template_3-PyTokenizer] PASSED [ 50%] 122s tests/test_tokenizer.py::test_tokenizer[integration:link_inside_argument-PyTokenizer] PASSED [ 50%] 122s tests/test_tokenizer.py::test_tokenizer[integration:link_inside_heading-PyTokenizer] PASSED [ 50%] 122s tests/test_tokenizer.py::test_tokenizer[integration:link_inside_tag_body-PyTokenizer] PASSED [ 50%] 122s tests/test_tokenizer.py::test_tokenizer[integration:link_inside_tag_style-PyTokenizer] PASSED [ 50%] 122s tests/test_tokenizer.py::test_tokenizer[integration:style_tag_inside_link-PyTokenizer] PASSED [ 50%] 122s tests/test_tokenizer.py::test_tokenizer[integration:comment_inside_link-PyTokenizer] PASSED [ 50%] 122s tests/test_tokenizer.py::test_tokenizer[integration:bracketed_link_inside_template-PyTokenizer] PASSED [ 50%] 122s tests/test_tokenizer.py::test_tokenizer[integration:comment_inside_bracketed_link-PyTokenizer] PASSED [ 50%] 122s tests/test_tokenizer.py::test_tokenizer[integration:wikilink_inside_external_link-PyTokenizer] PASSED [ 50%] 122s tests/test_tokenizer.py::test_tokenizer[integration:external_link_inside_wikilink-PyTokenizer] PASSED [ 50%] 122s tests/test_tokenizer.py::test_tokenizer[integration:external_link_inside_wikilink_brackets-PyTokenizer] PASSED [ 50%] 122s tests/test_tokenizer.py::test_tokenizer[integration:external_link_inside_wikilink_title-PyTokenizer] PASSED [ 50%] 122s tests/test_tokenizer.py::test_tokenizer[integration:italics_inside_external_link_inside_incomplete_list-PyTokenizer] PASSED [ 50%] 122s tests/test_tokenizer.py::test_tokenizer[integration:nodes_inside_external_link_after_punct-PyTokenizer] PASSED [ 51%] 122s tests/test_tokenizer.py::test_tokenizer[integration:newline_and_comment_in_template_name-PyTokenizer] PASSED [ 51%] 122s tests/test_tokenizer.py::test_tokenizer[integration:newline_and_comment_in_template_name_2-PyTokenizer] PASSED [ 51%] 122s tests/test_tokenizer.py::test_tokenizer[integration:newline_and_comment_in_template_name_3-PyTokenizer] PASSED [ 51%] 122s tests/test_tokenizer.py::test_tokenizer[integration:newline_and_comment_in_template_name_4-PyTokenizer] PASSED [ 51%] 122s tests/test_tokenizer.py::test_tokenizer[integration:newline_and_comment_in_template_name_5-PyTokenizer] PASSED [ 51%] 122s tests/test_tokenizer.py::test_tokenizer[integration:newline_and_comment_in_template_name_6-PyTokenizer] PASSED [ 51%] 122s tests/test_tokenizer.py::test_tokenizer[integration:newline_and_comment_in_template_name_7-PyTokenizer] PASSED [ 51%] 122s tests/test_tokenizer.py::test_tokenizer[integration:newline_and_comment_in_template_name_8-PyTokenizer] PASSED [ 51%] 122s tests/test_tokenizer.py::test_tokenizer[integration:tag_in_link_title-PyTokenizer] PASSED [ 51%] 122s tests/test_tokenizer.py::test_tokenizer[integration:tag_in_template_name-PyTokenizer] PASSED [ 51%] 122s tests/test_tokenizer.py::test_tokenizer[integration:tag_in_link_text-PyTokenizer] PASSED [ 51%] 122s tests/test_tokenizer.py::test_tokenizer[integration:comment_in_link_title-PyTokenizer] PASSED [ 51%] 122s tests/test_tokenizer.py::test_tokenizer[integration:incomplete_comment_in_link_title-PyTokenizer] PASSED [ 51%] 122s tests/test_tokenizer.py::test_tokenizer[integration:incomplete_comment_in_link_title_2-PyTokenizer] PASSED [ 52%] 122s tests/test_tokenizer.py::test_tokenizer[integration:incomplete_comment_in_link_title_3-PyTokenizer] PASSED [ 52%] 122s tests/test_tokenizer.py::test_tokenizer[integration:incomplete_comment_in_link_title_4-PyTokenizer] PASSED [ 52%] 122s tests/test_tokenizer.py::test_tokenizer[integration:incomplete_comment_in_link_title_5-PyTokenizer] PASSED [ 52%] 122s tests/test_tokenizer.py::test_tokenizer[integration:incomplete_comment_in_link_title_6-PyTokenizer] PASSED [ 52%] 122s tests/test_tokenizer.py::test_tokenizer[integration:wikilink_to_external_link_fallback-PyTokenizer] PASSED [ 52%] 122s tests/test_tokenizer.py::test_tokenizer[integration:wikilink_to_external_link_fallback_2-PyTokenizer] PASSED [ 52%] 122s tests/test_tokenizer.py::test_tokenizer[integration:tables_in_templates-PyTokenizer] PASSED [ 52%] 122s tests/test_tokenizer.py::test_tokenizer[integration:tables_in_templates_2-PyTokenizer] PASSED [ 52%] 122s tests/test_tokenizer.py::test_tokenizer[integration:many_invalid_nested_tags-PyTokenizer] PASSED [ 52%] 122s tests/test_tokenizer.py::test_tokenizer[integration:nested_templates_and_style_tags-PyTokenizer] PASSED [ 52%] 122s tests/test_tokenizer.py::test_tokenizer[integration:wikilink_nested_with_nowiki-PyTokenizer] PASSED [ 52%] 122s tests/test_tokenizer.py::test_tokenizer[arguments:blank-PyTokenizer] PASSED [ 52%] 122s tests/test_tokenizer.py::test_tokenizer[arguments:blank_with_default-PyTokenizer] PASSED [ 52%] 122s tests/test_tokenizer.py::test_tokenizer[arguments:basic-PyTokenizer] PASSED [ 53%] 122s tests/test_tokenizer.py::test_tokenizer[arguments:default-PyTokenizer] PASSED [ 53%] 122s tests/test_tokenizer.py::test_tokenizer[arguments:blank_with_multiple_defaults-PyTokenizer] PASSED [ 53%] 122s tests/test_tokenizer.py::test_tokenizer[arguments:multiple_defaults-PyTokenizer] PASSED [ 53%] 122s tests/test_tokenizer.py::test_tokenizer[arguments:newline-PyTokenizer] PASSED [ 53%] 122s tests/test_tokenizer.py::test_tokenizer[arguments:right_braces-PyTokenizer] PASSED [ 53%] 122s tests/test_tokenizer.py::test_tokenizer[arguments:right_braces_default-PyTokenizer] PASSED [ 53%] 122s tests/test_tokenizer.py::test_tokenizer[arguments:nested-PyTokenizer] PASSED [ 53%] 122s tests/test_tokenizer.py::test_tokenizer[arguments:invalid_braces-PyTokenizer] PASSED [ 53%] 122s tests/test_tokenizer.py::test_tokenizer[arguments:incomplete_open_only-PyTokenizer] PASSED [ 53%] 122s tests/test_tokenizer.py::test_tokenizer[arguments:incomplete_open_text-PyTokenizer] PASSED [ 53%] 122s tests/test_tokenizer.py::test_tokenizer[arguments:incomplete_open_text_pipe-PyTokenizer] PASSED [ 53%] 122s tests/test_tokenizer.py::test_tokenizer[arguments:incomplete_open_pipe-PyTokenizer] PASSED [ 53%] 122s tests/test_tokenizer.py::test_tokenizer[arguments:incomplete_open_pipe_text-PyTokenizer] PASSED [ 53%] 122s tests/test_tokenizer.py::test_tokenizer[arguments:incomplete_open_pipes_text-PyTokenizer] PASSED [ 53%] 122s tests/test_tokenizer.py::test_tokenizer[arguments:incomplete_open_partial_close-PyTokenizer] PASSED [ 54%] 122s tests/test_tokenizer.py::test_tokenizer[arguments:incomplete_preserve_previous-PyTokenizer] PASSED [ 54%] 122s tests/test_tokenizer.py::test_roundtrip[wikilinks:blank] PASSED [ 54%] 122s tests/test_tokenizer.py::test_roundtrip[wikilinks:blank_with_text] PASSED [ 54%] 122s tests/test_tokenizer.py::test_roundtrip[wikilinks:basic] PASSED [ 54%] 122s tests/test_tokenizer.py::test_roundtrip[wikilinks:with_text] PASSED [ 54%] 122s tests/test_tokenizer.py::test_roundtrip[wikilinks:blank_with_multiple_texts] PASSED [ 54%] 122s tests/test_tokenizer.py::test_roundtrip[wikilinks:multiple_texts] PASSED [ 54%] 122s tests/test_tokenizer.py::test_roundtrip[wikilinks:newline_text] PASSED [ 54%] 122s tests/test_tokenizer.py::test_roundtrip[wikilinks:bracket_text] PASSED [ 54%] 122s tests/test_tokenizer.py::test_roundtrip[wikilinks:nested] PASSED [ 54%] 122s tests/test_tokenizer.py::test_roundtrip[wikilinks:nested_padding] PASSED [ 54%] 122s tests/test_tokenizer.py::test_roundtrip[wikilinks:invalid_newline] PASSED [ 54%] 122s tests/test_tokenizer.py::test_roundtrip[wikilinks:invalid_right_brace] PASSED [ 54%] 122s tests/test_tokenizer.py::test_roundtrip[wikilinks:invalid_left_brace] PASSED [ 55%] 122s tests/test_tokenizer.py::test_roundtrip[wikilinks:invalid_right_bracket] PASSED [ 55%] 122s tests/test_tokenizer.py::test_roundtrip[wikilinks:invalid_left_bracket] PASSED [ 55%] 122s tests/test_tokenizer.py::test_roundtrip[wikilinks:invalid_nested_title] PASSED [ 55%] 122s tests/test_tokenizer.py::test_roundtrip[wikilinks:invalid_nested_title_and_text] PASSED [ 55%] 122s tests/test_tokenizer.py::test_roundtrip[wikilinks:invalid_nested_no_close] PASSED [ 55%] 122s tests/test_tokenizer.py::test_roundtrip[wikilinks:invalid_left_angle_bracket] PASSED [ 55%] 122s tests/test_tokenizer.py::test_roundtrip[wikilinks:invalid_right_angle_bracket] PASSED [ 55%] 122s tests/test_tokenizer.py::test_roundtrip[wikilinks:invalid_newline_at_start] PASSED [ 55%] 122s tests/test_tokenizer.py::test_roundtrip[wikilinks:invalid_newline_at_end] PASSED [ 55%] 122s tests/test_tokenizer.py::test_roundtrip[wikilinks:incomplete_open_only] PASSED [ 55%] 122s tests/test_tokenizer.py::test_roundtrip[wikilinks:incomplete_open_text] PASSED [ 55%] 122s tests/test_tokenizer.py::test_roundtrip[wikilinks:incomplete_open_text_pipe] PASSED [ 55%] 122s tests/test_tokenizer.py::test_roundtrip[wikilinks:incomplete_open_pipe] PASSED [ 55%] 122s tests/test_tokenizer.py::test_roundtrip[wikilinks:incomplete_open_pipe_text] PASSED [ 56%] 122s tests/test_tokenizer.py::test_roundtrip[wikilinks:incomplete_open_pipes_text] PASSED [ 56%] 122s tests/test_tokenizer.py::test_roundtrip[wikilinks:incomplete_open_partial_close] PASSED [ 56%] 122s tests/test_tokenizer.py::test_roundtrip[wikilinks:incomplete_preserve_previous] PASSED [ 56%] 122s tests/test_tokenizer.py::test_roundtrip[tags:basic] PASSED [ 56%] 122s tests/test_tokenizer.py::test_roundtrip[tags:basic_selfclosing] PASSED [ 56%] 122s tests/test_tokenizer.py::test_roundtrip[tags:content] PASSED [ 56%] 122s tests/test_tokenizer.py::test_roundtrip[tags:padded_open] PASSED [ 56%] 122s tests/test_tokenizer.py::test_roundtrip[tags:padded_close] PASSED [ 56%] 122s tests/test_tokenizer.py::test_roundtrip[tags:padded_selfclosing] PASSED [ 56%] 122s tests/test_tokenizer.py::test_roundtrip[tags:attribute] PASSED [ 56%] 122s tests/test_tokenizer.py::test_roundtrip[tags:attribute_value] PASSED [ 56%] 122s tests/test_tokenizer.py::test_roundtrip[tags:attribute_quoted] PASSED [ 56%] 122s tests/test_tokenizer.py::test_roundtrip[tags:attribute_single_quoted] PASSED [ 56%] 122s tests/test_tokenizer.py::test_roundtrip[tags:attribute_hyphen] PASSED [ 56%] 122s tests/test_tokenizer.py::test_roundtrip[tags:attribute_quoted_hyphen] PASSED [ 57%] 122s tests/test_tokenizer.py::test_roundtrip[tags:attribute_selfclosing] PASSED [ 57%] 122s tests/test_tokenizer.py::test_roundtrip[tags:attribute_selfclosing_value] PASSED [ 57%] 122s tests/test_tokenizer.py::test_roundtrip[tags:attribute_selfclosing_value_quoted] PASSED [ 57%] 122s tests/test_tokenizer.py::test_roundtrip[tags:nested_tag] PASSED [ 57%] 122s tests/test_tokenizer.py::test_roundtrip[tags:nested_tag_quoted] PASSED [ 57%] 122s tests/test_tokenizer.py::test_roundtrip[tags:nested_troll_tag] PASSED [ 57%] 122s tests/test_tokenizer.py::test_roundtrip[tags:nested_troll_tag_quoted] PASSED [ 57%] 122s tests/test_tokenizer.py::test_roundtrip[tags:nested_tag_selfclosing] PASSED [ 57%] 122s tests/test_tokenizer.py::test_roundtrip[tags:invalid_space_begin_open] PASSED [ 57%] 122s tests/test_tokenizer.py::test_roundtrip[tags:invalid_space_begin_close] PASSED [ 57%] 122s tests/test_tokenizer.py::test_roundtrip[tags:valid_space_end] PASSED [ 57%] 122s tests/test_tokenizer.py::test_roundtrip[tags:invalid_template_ends] PASSED [ 57%] 122s tests/test_tokenizer.py::test_roundtrip[tags:invalid_template_ends_nospace] PASSED [ 57%] 122s tests/test_tokenizer.py::test_roundtrip[tags:valid_template_end_open] PASSED [ 58%] 122s tests/test_tokenizer.py::test_roundtrip[tags:valid_template_end_open_space_end_close] PASSED [ 58%] 122s tests/test_tokenizer.py::test_roundtrip[tags:invalid_template_end_open_nospace] PASSED [ 58%] 122s tests/test_tokenizer.py::test_roundtrip[tags:invalid_template_start_close] PASSED [ 58%] 122s tests/test_tokenizer.py::test_roundtrip[tags:invalid_template_start_open] PASSED [ 58%] 122s tests/test_tokenizer.py::test_roundtrip[tags:unclosed_quote] PASSED [ 58%] 122s tests/test_tokenizer.py::test_roundtrip[tags:fake_quote] PASSED [ 58%] 122s tests/test_tokenizer.py::test_roundtrip[tags:fake_quote_complex] PASSED [ 58%] 122s tests/test_tokenizer.py::test_roundtrip[tags:quotes_in_quotes] PASSED [ 58%] 122s tests/test_tokenizer.py::test_roundtrip[tags:quotes_in_quotes_2] PASSED [ 58%] 122s tests/test_tokenizer.py::test_roundtrip[tags:quotes_in_quotes_3] PASSED [ 58%] 122s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_lbracket] PASSED [ 58%] 122s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_lbracket_junk] PASSED [ 58%] 122s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_unclosed_open] PASSED [ 58%] 122s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_unclosed_open_space] PASSED [ 59%] 122s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_unclosed_open_unnamed_attr] PASSED [ 59%] 122s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_unclosed_open_attr_equals] PASSED [ 59%] 122s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_unclosed_open_attr_equals_quoted] PASSED [ 59%] 122s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_unclosed_open_attr] PASSED [ 59%] 122s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_unclosed_open_attr_quoted] PASSED [ 59%] 122s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_open] PASSED [ 59%] 122s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_open_unnamed_attr] PASSED [ 59%] 122s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_open_attr_equals] PASSED [ 59%] 122s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_open_attr] PASSED [ 59%] 122s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_open_attr_quoted] PASSED [ 59%] 122s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_open_text] PASSED [ 59%] 122s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_open_attr_text] PASSED [ 59%] 122s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_open_text_lbracket] PASSED [ 59%] 122s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_open_text_lbracket_slash] PASSED [ 59%] 122s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_open_text_unclosed_close] PASSED [ 60%] 122s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_open_text_wrong_close] PASSED [ 60%] 122s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_unclosed_close] PASSED [ 60%] 122s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_unclosed_close_text] PASSED [ 60%] 122s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_close] PASSED [ 60%] 122s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_no_tag_name_open] PASSED [ 60%] 122s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_no_tag_name_selfclosing] PASSED [ 60%] 122s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_no_tag_name_open_close] PASSED [ 60%] 122s tests/test_tokenizer.py::test_roundtrip[tags:backslash_premature_before] PASSED [ 60%] 122s tests/test_tokenizer.py::test_roundtrip[tags:backslash_premature_after] PASSED [ 60%] 122s tests/test_tokenizer.py::test_roundtrip[tags:backslash_premature_middle] PASSED [ 60%] 122s tests/test_tokenizer.py::test_roundtrip[tags:backslash_adjacent] PASSED [ 60%] 122s tests/test_tokenizer.py::test_roundtrip[tags:backslash_endquote] PASSED [ 60%] 122s tests/test_tokenizer.py::test_roundtrip[tags:backslash_double] PASSED [ 60%] 122s tests/test_tokenizer.py::test_roundtrip[tags:backslash_triple] PASSED [ 61%] 122s tests/test_tokenizer.py::test_roundtrip[tags:backslash_unaffecting] PASSED [ 61%] 122s tests/test_tokenizer.py::test_roundtrip[tags:unparsable] PASSED [ 61%] 122s tests/test_tokenizer.py::test_roundtrip[tags:unparsable_complex] PASSED [ 61%] 122s tests/test_tokenizer.py::test_roundtrip[tags:unparsable_attributed] PASSED [ 61%] 122s tests/test_tokenizer.py::test_roundtrip[tags:unparsable_incomplete] PASSED [ 61%] 122s tests/test_tokenizer.py::test_roundtrip[tags:unparsable_entity] PASSED [ 61%] 122s tests/test_tokenizer.py::test_roundtrip[tags:unparsable_entity_incomplete] PASSED [ 61%] 122s tests/test_tokenizer.py::test_roundtrip[tags:unparsable_entity_incomplete_2] PASSED [ 61%] 122s tests/test_tokenizer.py::test_roundtrip[tags:single_open_close] PASSED [ 61%] 122s tests/test_tokenizer.py::test_roundtrip[tags:single_open] PASSED [ 61%] 122s tests/test_tokenizer.py::test_roundtrip[tags:single_selfclose] PASSED [ 61%] 122s tests/test_tokenizer.py::test_roundtrip[tags:single_close] PASSED [ 61%] 122s tests/test_tokenizer.py::test_roundtrip[tags:single_only_open_close] PASSED [ 61%] 122s tests/test_tokenizer.py::test_roundtrip[tags:single_only_open] PASSED [ 62%] 122s tests/test_tokenizer.py::test_roundtrip[tags:single_only_selfclose] PASSED [ 62%] 122s tests/test_tokenizer.py::test_roundtrip[tags:single_only_close] PASSED [ 62%] 122s tests/test_tokenizer.py::test_roundtrip[tags:single_only_double] PASSED [ 62%] 122s tests/test_tokenizer.py::test_roundtrip[tags:single_only_close_attribute] PASSED [ 62%] 122s tests/test_tokenizer.py::test_roundtrip[tags:capitalization] PASSED [ 62%] 122s tests/test_tokenizer.py::test_roundtrip[tags:unparsable_incomplete_close] PASSED [ 62%] 122s tests/test_tokenizer.py::test_roundtrip[tags:unparsable_with_intermediates] PASSED [ 62%] 122s tests/test_tokenizer.py::test_roundtrip[tags:unparsable_with_intermediates_normalize] PASSED [ 62%] 122s tests/test_tokenizer.py::test_roundtrip[tags:non_ascii_open] PASSED [ 62%] 122s tests/test_tokenizer.py::test_roundtrip[tags:non_ascii_full] PASSED [ 62%] 122s tests/test_tokenizer.py::test_roundtrip[tags:single_nested_selfclosing] PASSED [ 62%] 122s tests/test_tokenizer.py::test_roundtrip[html_entities:named] PASSED [ 62%] 122s tests/test_tokenizer.py::test_roundtrip[html_entities:numeric_decimal] PASSED [ 62%] 122s tests/test_tokenizer.py::test_roundtrip[html_entities:numeric_hexadecimal_x] PASSED [ 62%] 122s tests/test_tokenizer.py::test_roundtrip[html_entities:numeric_hexadecimal_X] PASSED [ 63%] 122s tests/test_tokenizer.py::test_roundtrip[html_entities:numeric_decimal_max] PASSED [ 63%] 122s tests/test_tokenizer.py::test_roundtrip[html_entities:numeric_hex_max] PASSED [ 63%] 122s tests/test_tokenizer.py::test_roundtrip[html_entities:numeric_zeros] PASSED [ 63%] 122s tests/test_tokenizer.py::test_roundtrip[html_entities:numeric_hex_zeros] PASSED [ 63%] 122s tests/test_tokenizer.py::test_roundtrip[html_entities:invalid_named_too_long] PASSED [ 63%] 122s tests/test_tokenizer.py::test_roundtrip[html_entities:invalid_named_undefined] PASSED [ 63%] 122s tests/test_tokenizer.py::test_roundtrip[html_entities:invalid_named_nonascii] PASSED [ 63%] 122s tests/test_tokenizer.py::test_roundtrip[html_entities:invalid_numeric_out_of_range_1] PASSED [ 63%] 122s tests/test_tokenizer.py::test_roundtrip[html_entities:invalid_numeric_out_of_range_2] PASSED [ 63%] 122s tests/test_tokenizer.py::test_roundtrip[html_entities:invalid_numeric_out_of_range_3] PASSED [ 63%] 122s tests/test_tokenizer.py::test_roundtrip[html_entities:invalid_numeric_out_of_range_4] PASSED [ 63%] 122s tests/test_tokenizer.py::test_roundtrip[html_entities:invalid_partial_amp] PASSED [ 63%] 122s tests/test_tokenizer.py::test_roundtrip[html_entities:invalid_partial_amp_semicolon] PASSED [ 63%] 122s tests/test_tokenizer.py::test_roundtrip[html_entities:invalid_partial_amp_pound] PASSED [ 64%] 122s tests/test_tokenizer.py::test_roundtrip[html_entities:invalid_partial_amp_pound_x] PASSED [ 64%] 122s tests/test_tokenizer.py::test_roundtrip[html_entities:invalid_partial_amp_pound_semicolon] PASSED [ 64%] 122s tests/test_tokenizer.py::test_roundtrip[html_entities:invalid_partial_amp_pound_x_semicolon0] PASSED [ 64%] 122s tests/test_tokenizer.py::test_roundtrip[html_entities:invalid_partial_amp_pound_numbers] PASSED [ 64%] 122s tests/test_tokenizer.py::test_roundtrip[html_entities:invalid_partial_amp_pound_x_semicolon1] PASSED [ 64%] 122s tests/test_tokenizer.py::test_roundtrip[html_entities:invalid_zeros_before_named] PASSED [ 64%] 122s tests/test_tokenizer.py::test_roundtrip[headings:level_1] PASSED [ 64%] 122s tests/test_tokenizer.py::test_roundtrip[headings:level_2] PASSED [ 64%] 122s tests/test_tokenizer.py::test_roundtrip[headings:level_3] PASSED [ 64%] 122s tests/test_tokenizer.py::test_roundtrip[headings:level_4] PASSED [ 64%] 122s tests/test_tokenizer.py::test_roundtrip[headings:level_5] PASSED [ 64%] 122s tests/test_tokenizer.py::test_roundtrip[headings:level_6] PASSED [ 64%] 122s tests/test_tokenizer.py::test_roundtrip[headings:level_7] PASSED [ 64%] 122s tests/test_tokenizer.py::test_roundtrip[headings:level_3_2] PASSED [ 65%] 122s tests/test_tokenizer.py::test_roundtrip[headings:level_4_6] PASSED [ 65%] 122s tests/test_tokenizer.py::test_roundtrip[headings:newline_before] PASSED [ 65%] 122s tests/test_tokenizer.py::test_roundtrip[headings:text_after] PASSED [ 65%] 122s tests/test_tokenizer.py::test_roundtrip[headings:invalid_text_before] PASSED [ 65%] 122s tests/test_tokenizer.py::test_roundtrip[headings:invalid_newline_middle] PASSED [ 65%] 122s tests/test_tokenizer.py::test_roundtrip[headings:invalid_newline_end] PASSED [ 65%] 122s tests/test_tokenizer.py::test_roundtrip[headings:invalid_nesting] PASSED [ 65%] 122s tests/test_tokenizer.py::test_roundtrip[headings:incomplete] PASSED [ 65%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:basic_italics] PASSED [ 65%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:basic_bold] PASSED [ 65%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:basic_ul] PASSED [ 65%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:basic_ol] PASSED [ 65%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:basic_dt] PASSED [ 65%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:basic_dd] PASSED [ 65%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:basic_hr] PASSED [ 66%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:complex_italics] PASSED [ 66%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:multiline_italics] PASSED [ 66%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:unending_italics] PASSED [ 66%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:misleading_italics_end] PASSED [ 66%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:italics_start_outside_end_inside] PASSED [ 66%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:italics_start_inside_end_outside] PASSED [ 66%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:complex_bold] PASSED [ 66%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:multiline_bold] PASSED [ 66%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:unending_bold] PASSED [ 66%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:misleading_bold_end] PASSED [ 66%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:bold_start_outside_end_inside] PASSED [ 66%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:bold_start_inside_end_outside] PASSED [ 66%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:bold_and_italics] PASSED [ 66%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:both_then_bold] PASSED [ 67%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:both_then_italics] PASSED [ 67%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:bold_then_both] PASSED [ 67%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:italics_then_both] PASSED [ 67%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:italics_then_bold] PASSED [ 67%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:bold_then_italics] PASSED [ 67%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:five_three] PASSED [ 67%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:five_two] PASSED [ 67%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:four] PASSED [ 67%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:four_two] PASSED [ 67%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:two_three] PASSED [ 67%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:two_four] PASSED [ 67%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:two_three_two] PASSED [ 67%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:two_four_four] PASSED [ 67%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:seven] PASSED [ 68%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:unending_bold_and_italics] PASSED [ 68%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:complex_ul] PASSED [ 68%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:ul_multiline_template] PASSED [ 68%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:ul_adjacent] PASSED [ 68%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:ul_depths] PASSED [ 68%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:ul_space_before] PASSED [ 68%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:ul_interruption] PASSED [ 68%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:complex_ol] PASSED [ 68%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:ol_multiline_template] PASSED [ 68%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:ol_adjacent] PASSED [ 68%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:ol_depths] PASSED [ 68%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:ol_space_before] PASSED [ 68%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:ol_interruption] PASSED [ 68%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:ul_ol_mix] PASSED [ 68%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:complex_dt] PASSED [ 69%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:dt_multiline_template] PASSED [ 69%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:dt_adjacent] PASSED [ 69%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:dt_depths] PASSED [ 69%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:dt_space_before] PASSED [ 69%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:dt_interruption] PASSED [ 69%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:complex_dd] PASSED [ 69%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:dd_multiline_template] PASSED [ 69%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:dd_adjacent] PASSED [ 69%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:dd_depths] PASSED [ 69%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:dd_space_before] PASSED [ 69%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:dd_interruption] PASSED [ 69%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:dt_dd_mix] PASSED [ 69%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:dt_dd_mix2] PASSED [ 69%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:dt_dd_mix3] PASSED [ 70%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:dt_dd_mix4] PASSED [ 70%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:ul_ol_dt_dd_mix] PASSED [ 70%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:hr_text_before] PASSED [ 70%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:hr_text_after] PASSED [ 70%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:hr_text_before_after] PASSED [ 70%] 122s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:hr_newlines] PASSED [ 70%] 123s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:hr_adjacent] PASSED [ 70%] 123s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:hr_adjacent_space] PASSED [ 70%] 123s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:hr_short] PASSED [ 70%] 123s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:hr_long] PASSED [ 70%] 123s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:hr_interruption_short] PASSED [ 70%] 123s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:hr_interruption_long] PASSED [ 70%] 123s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:nowiki_cancel] PASSED [ 70%] 123s tests/test_tokenizer.py::test_roundtrip[templates:no_params] PASSED [ 71%] 123s tests/test_tokenizer.py::test_roundtrip[templates:one_param_unnamed] PASSED [ 71%] 123s tests/test_tokenizer.py::test_roundtrip[templates:one_param_named] PASSED [ 71%] 123s tests/test_tokenizer.py::test_roundtrip[templates:multiple_unnamed_params] PASSED [ 71%] 123s tests/test_tokenizer.py::test_roundtrip[templates:multiple_named_params] PASSED [ 71%] 123s tests/test_tokenizer.py::test_roundtrip[templates:multiple_mixed_params] PASSED [ 71%] 123s tests/test_tokenizer.py::test_roundtrip[templates:multiple_mixed_params2] PASSED [ 71%] 123s tests/test_tokenizer.py::test_roundtrip[templates:blank_params] PASSED [ 71%] 123s tests/test_tokenizer.py::test_roundtrip[templates:nested_unnamed_param] PASSED [ 71%] 123s tests/test_tokenizer.py::test_roundtrip[templates:nested_named_param_value] PASSED [ 71%] 123s tests/test_tokenizer.py::test_roundtrip[templates:nested_named_param_name_and_value] PASSED [ 71%] 123s tests/test_tokenizer.py::test_roundtrip[templates:nested_name_start] PASSED [ 71%] 123s tests/test_tokenizer.py::test_roundtrip[templates:nested_name_start_unnamed_param] PASSED [ 71%] 123s tests/test_tokenizer.py::test_roundtrip[templates:nested_name_start_named_param_value] PASSED [ 71%] 123s tests/test_tokenizer.py::test_roundtrip[templates:nested_name_start_named_param_name_and_value] PASSED [ 71%] 123s tests/test_tokenizer.py::test_roundtrip[templates:nested_name_end] PASSED [ 72%] 123s tests/test_tokenizer.py::test_roundtrip[templates:nested_name_end_unnamed_param] PASSED [ 72%] 123s tests/test_tokenizer.py::test_roundtrip[templates:nested_name_end_named_param_value] PASSED [ 72%] 123s tests/test_tokenizer.py::test_roundtrip[templates:nested_name_end_named_param_name_and_value] PASSED [ 72%] 123s tests/test_tokenizer.py::test_roundtrip[templates:nested_name_mid] PASSED [ 72%] 123s tests/test_tokenizer.py::test_roundtrip[templates:nested_name_mid_unnamed_param] PASSED [ 72%] 123s tests/test_tokenizer.py::test_roundtrip[templates:nested_name_mid_named_param_value] PASSED [ 72%] 123s tests/test_tokenizer.py::test_roundtrip[templates:nested_name_mid_named_param_name_and_value] PASSED [ 72%] 123s tests/test_tokenizer.py::test_roundtrip[templates:nested_name_start_end] PASSED [ 72%] 123s tests/test_tokenizer.py::test_roundtrip[templates:nested_name_start_end_unnamed_param] PASSED [ 72%] 123s tests/test_tokenizer.py::test_roundtrip[templates:nested_name_start_end_named_param_value] PASSED [ 72%] 123s tests/test_tokenizer.py::test_roundtrip[templates:nested_name_start_end_named_param_name_and_value] PASSED [ 72%] 123s tests/test_tokenizer.py::test_roundtrip[templates:nested_names_multiple] PASSED [ 72%] 123s tests/test_tokenizer.py::test_roundtrip[templates:nested_names_multiple_unnamed_param] PASSED [ 72%] 123s tests/test_tokenizer.py::test_roundtrip[templates:nested_names_multiple_named_param_value] PASSED [ 73%] 123s tests/test_tokenizer.py::test_roundtrip[templates:nested_names_multiple_named_param_name_and_value] PASSED [ 73%] 123s tests/test_tokenizer.py::test_roundtrip[templates:mixed_nested_templates] PASSED [ 73%] 123s tests/test_tokenizer.py::test_roundtrip[templates:nested_two_args] PASSED [ 73%] 123s tests/test_tokenizer.py::test_roundtrip[templates:newlines_start] PASSED [ 73%] 123s tests/test_tokenizer.py::test_roundtrip[templates:newlines_end] PASSED [ 73%] 123s tests/test_tokenizer.py::test_roundtrip[templates:newlines_start_end] PASSED [ 73%] 123s tests/test_tokenizer.py::test_roundtrip[templates:newlines_mid] PASSED [ 73%] 123s tests/test_tokenizer.py::test_roundtrip[templates:newlines_start_mid] PASSED [ 73%] 123s tests/test_tokenizer.py::test_roundtrip[templates:newlines_mid_end] PASSED [ 73%] 123s tests/test_tokenizer.py::test_roundtrip[templates:newlines_start_mid_end] PASSED [ 73%] 123s tests/test_tokenizer.py::test_roundtrip[templates:newlines_unnamed_param] PASSED [ 73%] 123s tests/test_tokenizer.py::test_roundtrip[templates:newlines_enclose_template_name_unnamed_param] PASSED [ 73%] 123s tests/test_tokenizer.py::test_roundtrip[templates:newlines_within_template_name_unnamed_param] PASSED [ 73%] 123s tests/test_tokenizer.py::test_roundtrip[templates:newlines_enclose_template_name_named_param_value] PASSED [ 74%] 123s tests/test_tokenizer.py::test_roundtrip[templates:newlines_within_template_name_named_param_value] PASSED [ 74%] 123s tests/test_tokenizer.py::test_roundtrip[templates:newlines_named_param_name] PASSED [ 74%] 123s tests/test_tokenizer.py::test_roundtrip[templates:newlines_named_param_name_param_value] PASSED [ 74%] 123s tests/test_tokenizer.py::test_roundtrip[templates:newlines_enclose_template_name_named_param_name] PASSED [ 74%] 123s tests/test_tokenizer.py::test_roundtrip[templates:newlines_enclose_template_name_named_param_name_param_value] PASSED [ 74%] 123s tests/test_tokenizer.py::test_roundtrip[templates:newlines_within_template_name_named_param_name] PASSED [ 74%] 123s tests/test_tokenizer.py::test_roundtrip[templates:newlines_within_template_name_named_param_name_param_value] PASSED [ 74%] 123s tests/test_tokenizer.py::test_roundtrip[templates:newlines_wildcard] PASSED [ 74%] 123s tests/test_tokenizer.py::test_roundtrip[templates:newlines_wildcard_redux] PASSED [ 74%] 123s tests/test_tokenizer.py::test_roundtrip[templates:newlines_wildcard_redux_invalid] PASSED [ 74%] 123s tests/test_tokenizer.py::test_roundtrip[templates:newlines_spaces] PASSED [ 74%] 123s tests/test_tokenizer.py::test_roundtrip[templates:newlines_spaces_param] PASSED [ 74%] 123s tests/test_tokenizer.py::test_roundtrip[templates:invalid_blank] PASSED [ 74%] 123s tests/test_tokenizer.py::test_roundtrip[templates:invalid_blank_whitespace] PASSED [ 75%] 123s tests/test_tokenizer.py::test_roundtrip[templates:invalid_blank_pipe] PASSED [ 75%] 123s tests/test_tokenizer.py::test_roundtrip[templates:invalid_blank_whitespace_pipe] PASSED [ 75%] 123s tests/test_tokenizer.py::test_roundtrip[templates:invalid_name_left_brace_middle] PASSED [ 75%] 123s tests/test_tokenizer.py::test_roundtrip[templates:invalid_name_right_brace_middle] PASSED [ 75%] 123s tests/test_tokenizer.py::test_roundtrip[templates:invalid_name_left_braces] PASSED [ 75%] 123s tests/test_tokenizer.py::test_roundtrip[templates:invalid_name_left_bracket_middle] PASSED [ 75%] 123s tests/test_tokenizer.py::test_roundtrip[templates:invalid_name_right_bracket_middle] PASSED [ 75%] 123s tests/test_tokenizer.py::test_roundtrip[templates:invalid_name_left_bracket_start] PASSED [ 75%] 123s tests/test_tokenizer.py::test_roundtrip[templates:invalid_name_right_bracket_start] PASSED [ 75%] 123s tests/test_tokenizer.py::test_roundtrip[templates:valid_name_left_brace_start] PASSED [ 75%] 123s tests/test_tokenizer.py::test_roundtrip[templates:valid_unnamed_param_left_brace] PASSED [ 75%] 123s tests/test_tokenizer.py::test_roundtrip[templates:valid_unnamed_param_braces] PASSED [ 75%] 123s tests/test_tokenizer.py::test_roundtrip[templates:valid_param_name_braces] PASSED [ 75%] 123s tests/test_tokenizer.py::test_roundtrip[templates:valid_param_name_brackets] PASSED [ 75%] 123s tests/test_tokenizer.py::test_roundtrip[templates:valid_param_name_double_left_brackets] PASSED [ 76%] 123s tests/test_tokenizer.py::test_roundtrip[templates:valid_param_name_double_right_brackets] PASSED [ 76%] 123s tests/test_tokenizer.py::test_roundtrip[templates:valid_param_name_double_brackets] PASSED [ 76%] 123s tests/test_tokenizer.py::test_roundtrip[templates:invalid_param_name_double_left_braces] PASSED [ 76%] 123s tests/test_tokenizer.py::test_roundtrip[templates:invalid_param_name_double_braces] PASSED [ 76%] 123s tests/test_tokenizer.py::test_roundtrip[templates:invalid_left_angle_bracket] PASSED [ 76%] 123s tests/test_tokenizer.py::test_roundtrip[templates:invalid_right_angle_bracket] PASSED [ 76%] 123s tests/test_tokenizer.py::test_roundtrip[templates:incomplete_stub] PASSED [ 76%] 123s tests/test_tokenizer.py::test_roundtrip[templates:incomplete_plain] PASSED [ 76%] 123s tests/test_tokenizer.py::test_roundtrip[templates:incomplete_right_brace] PASSED [ 76%] 123s tests/test_tokenizer.py::test_roundtrip[templates:incomplete_pipe] PASSED [ 76%] 123s tests/test_tokenizer.py::test_roundtrip[templates:incomplete_unnamed_param] PASSED [ 76%] 123s tests/test_tokenizer.py::test_roundtrip[templates:incomplete_unnamed_param_pipe] PASSED [ 76%] 123s tests/test_tokenizer.py::test_roundtrip[templates:incomplete_valueless_param] PASSED [ 76%] 123s tests/test_tokenizer.py::test_roundtrip[templates:incomplete_valueless_param_pipe] PASSED [ 77%] 123s tests/test_tokenizer.py::test_roundtrip[templates:incomplete_named_param] PASSED [ 77%] 123s tests/test_tokenizer.py::test_roundtrip[templates:incomplete_named_param_pipe] PASSED [ 77%] 123s tests/test_tokenizer.py::test_roundtrip[templates:incomplete_two_unnamed_params] PASSED [ 77%] 123s tests/test_tokenizer.py::test_roundtrip[templates:incomplete_unnamed_param_valueless_param] PASSED [ 77%] 123s tests/test_tokenizer.py::test_roundtrip[templates:incomplete_unnamed_param_named_param] PASSED [ 77%] 123s tests/test_tokenizer.py::test_roundtrip[templates:incomplete_named_param_unnamed_param] PASSED [ 77%] 123s tests/test_tokenizer.py::test_roundtrip[templates:incomplete_named_param_valueless_param] PASSED [ 77%] 123s tests/test_tokenizer.py::test_roundtrip[templates:incomplete_two_named_params] PASSED [ 77%] 123s tests/test_tokenizer.py::test_roundtrip[templates:incomplete_nested_template_as_unnamed_param] PASSED [ 77%] 123s tests/test_tokenizer.py::test_roundtrip[templates:incomplete_nested_template_as_param_value] PASSED [ 77%] 123s tests/test_tokenizer.py::test_roundtrip[templates:recursion_five_hundred_opens] PASSED [ 77%] 123s tests/test_tokenizer.py::test_roundtrip[templates:recursion_one_hundred_opens] PASSED [ 77%] 123s tests/test_tokenizer.py::test_roundtrip[templates:recursion_opens_and_closes] PASSED [ 77%] 123s tests/test_tokenizer.py::test_roundtrip[templates:invalid_section_level_1] PASSED [ 78%] 123s tests/test_tokenizer.py::test_roundtrip[templates:section_level_2] PASSED [ 78%] 123s tests/test_tokenizer.py::test_roundtrip[templates:invalid_section_level_2] PASSED [ 78%] 123s tests/test_tokenizer.py::test_roundtrip[templates:section_level_2_after_template_parameter] PASSED [ 78%] 123s tests/test_tokenizer.py::test_roundtrip[text:basic] PASSED [ 78%] 123s tests/test_tokenizer.py::test_roundtrip[text:newlines] PASSED [ 78%] 123s tests/test_tokenizer.py::test_roundtrip[text:unicode] PASSED [ 78%] 123s tests/test_tokenizer.py::test_roundtrip[text:unicode2] PASSED [ 78%] 123s tests/test_tokenizer.py::test_roundtrip[text:large] PASSED [ 78%] 123s tests/test_tokenizer.py::test_roundtrip[tables:empty_table] PASSED [ 78%] 123s tests/test_tokenizer.py::test_roundtrip[tables:inline_table] PASSED [ 78%] 123s tests/test_tokenizer.py::test_roundtrip[tables:no_table_close_simple] PASSED [ 78%] 123s tests/test_tokenizer.py::test_roundtrip[tables:no_table_close_newline] PASSED [ 78%] 123s tests/test_tokenizer.py::test_roundtrip[tables:no_table_close_inside_cell] PASSED [ 78%] 123s tests/test_tokenizer.py::test_roundtrip[tables:no_table_close_inside_cell_after_newline] PASSED [ 78%] 123s tests/test_tokenizer.py::test_roundtrip[tables:no_table_close_inside_cell_with_attributes] PASSED [ 79%] 123s tests/test_tokenizer.py::test_roundtrip[tables:no_table_close_inside_row] PASSED [ 79%] 123s tests/test_tokenizer.py::test_roundtrip[tables:no_table_close_inside_row_after_newline] PASSED [ 79%] 123s tests/test_tokenizer.py::test_roundtrip[tables:no_table_close_row_and_cell] PASSED [ 79%] 123s tests/test_tokenizer.py::test_roundtrip[tables:no_table_close_attributes] PASSED [ 79%] 123s tests/test_tokenizer.py::test_roundtrip[tables:no_table_close_unclosed_attributes] PASSED [ 79%] 123s tests/test_tokenizer.py::test_roundtrip[tables:no_table_close_row_attributes] PASSED [ 79%] 123s tests/test_tokenizer.py::test_roundtrip[tables:no_table_close_cell] PASSED [ 79%] 123s tests/test_tokenizer.py::test_roundtrip[tables:crazy_no_table_close] PASSED [ 79%] 123s tests/test_tokenizer.py::test_roundtrip[tables:leading_whitespace_table] PASSED [ 79%] 123s tests/test_tokenizer.py::test_roundtrip[tables:whitespace_after_table] PASSED [ 79%] 123s tests/test_tokenizer.py::test_roundtrip[tables:different_whitespace_after_table] PASSED [ 79%] 123s tests/test_tokenizer.py::test_roundtrip[tables:characters_after_table] PASSED [ 79%] 123s tests/test_tokenizer.py::test_roundtrip[tables:characters_after_inline_table] PASSED [ 79%] 123s tests/test_tokenizer.py::test_roundtrip[tables:leading_characters_table] PASSED [ 80%] 123s tests/test_tokenizer.py::test_roundtrip[tables:table_row_simple] PASSED [ 80%] 123s tests/test_tokenizer.py::test_roundtrip[tables:table_row_multiple] PASSED [ 80%] 123s tests/test_tokenizer.py::test_roundtrip[tables:table_cell_simple] PASSED [ 80%] 123s tests/test_tokenizer.py::test_roundtrip[tables:table_cell_inline] PASSED [ 80%] 123s tests/test_tokenizer.py::test_roundtrip[tables:table_cell_multiple] PASSED [ 80%] 123s tests/test_tokenizer.py::test_roundtrip[tables:table_header_simple] PASSED [ 80%] 123s tests/test_tokenizer.py::test_roundtrip[tables:table_header_inline] PASSED [ 80%] 123s tests/test_tokenizer.py::test_roundtrip[tables:table_header_multiple] PASSED [ 80%] 123s tests/test_tokenizer.py::test_roundtrip[tables:nested_cells_and_rows] PASSED [ 80%] 123s tests/test_tokenizer.py::test_roundtrip[tables:table_cell_fake_close] PASSED [ 80%] 123s tests/test_tokenizer.py::test_roundtrip[tables:table_cell_more_fake_close] PASSED [ 80%] 123s tests/test_tokenizer.py::test_roundtrip[tables:table_cell_extra_close] PASSED [ 80%] 123s tests/test_tokenizer.py::test_roundtrip[tables:nowiki_inside_table] PASSED [ 80%] 123s tests/test_tokenizer.py::test_roundtrip[tables:table_text_outside_cell] PASSED [ 81%] 123s tests/test_tokenizer.py::test_roundtrip[tables:no_table_cell_with_leading_characters] PASSED [ 81%] 123s tests/test_tokenizer.py::test_roundtrip[tables:no_table_row_with_leading_characters] PASSED [ 81%] 123s tests/test_tokenizer.py::test_roundtrip[tables:template_inside_table_cell] PASSED [ 81%] 123s tests/test_tokenizer.py::test_roundtrip[tables:table_cell_attributes] PASSED [ 81%] 123s tests/test_tokenizer.py::test_roundtrip[tables:table_cell_empty_attributes] PASSED [ 81%] 123s tests/test_tokenizer.py::test_roundtrip[tables:table_cell_with_dash] PASSED [ 81%] 123s tests/test_tokenizer.py::test_roundtrip[tables:table_cell_attributes_quote_with_pipe] PASSED [ 81%] 123s tests/test_tokenizer.py::test_roundtrip[tables:table_cell_attributes_name_with_pipe] PASSED [ 81%] 123s tests/test_tokenizer.py::test_roundtrip[tables:table_cell_attributes_pipe_after_equals] PASSED [ 81%] 123s tests/test_tokenizer.py::test_roundtrip[tables:table_cell_attributes_templates] PASSED [ 81%] 123s tests/test_tokenizer.py::test_roundtrip[tables:header_cell_attributes] PASSED [ 81%] 123s tests/test_tokenizer.py::test_roundtrip[tables:inline_cell_attributes] PASSED [ 81%] 123s tests/test_tokenizer.py::test_roundtrip[tables:table_row_attributes] PASSED [ 81%] 123s tests/test_tokenizer.py::test_roundtrip[tables:table_row_attributes_crazy_whitespace] PASSED [ 81%] 123s tests/test_tokenizer.py::test_roundtrip[tables:table_attributes] PASSED [ 82%] 123s tests/test_tokenizer.py::test_roundtrip[tables:inline_table_attributes] PASSED [ 82%] 123s tests/test_tokenizer.py::test_roundtrip[tables:table_incorrect_attributes] PASSED [ 82%] 123s tests/test_tokenizer.py::test_roundtrip[tables:templates_in_table_attribute] PASSED [ 82%] 123s tests/test_tokenizer.py::test_roundtrip[tables:templates_in_table_attribute_2] PASSED [ 82%] 123s tests/test_tokenizer.py::test_roundtrip[tables:inappropriate_marker_at_line_start] PASSED [ 82%] 123s tests/test_tokenizer.py::test_roundtrip[tables:fake_close_near_start] PASSED [ 82%] 123s tests/test_tokenizer.py::test_roundtrip[tables:fake_close_near_start_2] PASSED [ 82%] 123s tests/test_tokenizer.py::test_roundtrip[tables:junk_after_table_start] PASSED [ 82%] 123s tests/test_tokenizer.py::test_roundtrip[tables:junk_after_table_row] PASSED [ 82%] 123s tests/test_tokenizer.py::test_roundtrip[tables:incomplete_nested_open_only] PASSED [ 82%] 123s tests/test_tokenizer.py::test_roundtrip[tables:incomplete_nested_open_and_row] PASSED [ 82%] 123s tests/test_tokenizer.py::test_roundtrip[comments:blank] PASSED [ 82%] 123s tests/test_tokenizer.py::test_roundtrip[comments:basic] PASSED [ 82%] 123s tests/test_tokenizer.py::test_roundtrip[comments:tons_of_nonsense] PASSED [ 83%] 123s tests/test_tokenizer.py::test_roundtrip[comments:incomplete_blank] PASSED [ 83%] 123s tests/test_tokenizer.py::test_roundtrip[comments:incomplete_text] PASSED [ 83%] 123s tests/test_tokenizer.py::test_roundtrip[comments:incomplete_partial_close] PASSED [ 83%] 123s tests/test_tokenizer.py::test_roundtrip[comments:incomplete_part_only] PASSED [ 83%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:basic] PASSED [ 83%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:basic_brackets] PASSED [ 83%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_space] PASSED [ 83%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_title] PASSED [ 83%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_multiword_title] PASSED [ 83%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_adjacent] PASSED [ 83%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_newline_before] PASSED [ 83%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_newline_inside] PASSED [ 83%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_newline_after] PASSED [ 83%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_space_before] PASSED [ 84%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_title_like_url] PASSED [ 84%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_recursive] PASSED [ 84%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_recursive_2] PASSED [ 84%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:period_after] PASSED [ 84%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:colons_after] PASSED [ 84%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:close_paren_after_excluded] PASSED [ 84%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:close_paren_after_included] PASSED [ 84%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:open_bracket_inside] PASSED [ 84%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_period_after] PASSED [ 84%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_punct_after] PASSED [ 84%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_close_paren_after_included] PASSED [ 84%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_close_paren_after_included_2] PASSED [ 84%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_open_bracket_inside] PASSED [ 84%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:adjacent_space] PASSED [ 84%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:adjacent_newline] PASSED [ 85%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:adjacent_close_bracket] PASSED [ 85%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:html_entity_in_url] PASSED [ 85%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:template_in_url] PASSED [ 85%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:argument_in_url] PASSED [ 85%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:wikilink_in_url] PASSED [ 85%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:external_link_in_url] PASSED [ 85%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:spaces_padding] PASSED [ 85%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:text_and_spaces_padding] PASSED [ 85%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:template_before] PASSED [ 85%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:spaces_padding_no_slashes] PASSED [ 85%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:text_and_spaces_padding_no_slashes] PASSED [ 85%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:template_before_no_slashes] PASSED [ 85%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:no_slashes] PASSED [ 85%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:slashes_optional] PASSED [ 86%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:short] PASSED [ 86%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:slashes_missing] PASSED [ 86%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:no_scheme_but_slashes] PASSED [ 86%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:no_scheme_but_colon] PASSED [ 86%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:no_scheme_but_colon_and_slashes] PASSED [ 86%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:fake_scheme_no_slashes] PASSED [ 86%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:fake_scheme_slashes] PASSED [ 86%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:fake_scheme_brackets_no_slashes] PASSED [ 86%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:fake_scheme_brackets_slashes] PASSED [ 86%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:interrupted_scheme] PASSED [ 86%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:interrupted_scheme_brackets] PASSED [ 86%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:no_slashes_brackets] PASSED [ 86%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:space_before_no_slashes_brackets] PASSED [ 86%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:slashes_optional_brackets] PASSED [ 87%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:short_brackets] PASSED [ 87%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:slashes_missing_brackets] PASSED [ 87%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:protcol_relative] PASSED [ 87%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:scheme_missing_but_colon_brackets] PASSED [ 87%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:scheme_missing_but_colon_slashes_brackets] PASSED [ 87%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:unclosed_protocol_relative] PASSED [ 87%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:space_before_protcol_relative] PASSED [ 87%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:unclosed_just_scheme] PASSED [ 87%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:unclosed_scheme_colon] PASSED [ 87%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:unclosed_scheme_colon_slashes] PASSED [ 87%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:incomplete_bracket] PASSED [ 87%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:incomplete_scheme_colon] PASSED [ 87%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:incomplete_scheme_colon_slashes] PASSED [ 87%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_scheme_but_no_url] PASSED [ 87%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_scheme_slashes_but_no_url] PASSED [ 88%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_scheme_title_but_no_url] PASSED [ 88%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:url_preceded_by_non_word_character] PASSED [ 88%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:url_preceded_by_underscore] PASSED [ 88%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:url_terminated_by_double_quote] PASSED [ 88%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:url_not_terminated_by_single_quote] PASSED [ 88%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:url_terminated_by_two_single_quotes] PASSED [ 88%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:url_terminated_by_left_angle] PASSED [ 88%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:url_terminated_by_right_angle] PASSED [ 88%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_terminated_by_double_quote] PASSED [ 88%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_not_terminated_by_single_quote] PASSED [ 88%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_terminated_by_two_single_quotes] PASSED [ 88%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_terminated_by_left_angle] PASSED [ 88%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_terminated_by_right_angle] PASSED [ 88%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:scheme_case] PASSED [ 89%] 123s tests/test_tokenizer.py::test_roundtrip[external_links:bracket_scheme_case] PASSED [ 89%] 123s tests/test_tokenizer.py::test_roundtrip[integration:empty] PASSED [ 89%] 123s tests/test_tokenizer.py::test_roundtrip[integration:template_argument_mix] PASSED [ 89%] 123s tests/test_tokenizer.py::test_roundtrip[integration:link_in_template_name] PASSED [ 89%] 123s tests/test_tokenizer.py::test_roundtrip[integration:rich_heading] PASSED [ 89%] 123s tests/test_tokenizer.py::test_roundtrip[integration:html_entity_with_template] PASSED [ 89%] 123s tests/test_tokenizer.py::test_roundtrip[integration:html_entity_with_comment] PASSED [ 89%] 123s tests/test_tokenizer.py::test_roundtrip[integration:rich_tags] PASSED [ 89%] 123s tests/test_tokenizer.py::test_roundtrip[integration:wildcard] PASSED [ 89%] 123s tests/test_tokenizer.py::test_roundtrip[integration:wildcard_redux] PASSED [ 89%] 123s tests/test_tokenizer.py::test_roundtrip[integration:link_inside_dl] PASSED [ 89%] 123s tests/test_tokenizer.py::test_roundtrip[integration:link_inside_dl_2] PASSED [ 89%] 123s tests/test_tokenizer.py::test_roundtrip[integration:link_inside_template] PASSED [ 89%] 123s tests/test_tokenizer.py::test_roundtrip[integration:link_inside_template_2] PASSED [ 90%] 123s tests/test_tokenizer.py::test_roundtrip[integration:link_inside_template_3] PASSED [ 90%] 123s tests/test_tokenizer.py::test_roundtrip[integration:link_inside_argument] PASSED [ 90%] 123s tests/test_tokenizer.py::test_roundtrip[integration:link_inside_heading] PASSED [ 90%] 123s tests/test_tokenizer.py::test_roundtrip[integration:link_inside_tag_body] PASSED [ 90%] 123s tests/test_tokenizer.py::test_roundtrip[integration:link_inside_tag_style] PASSED [ 90%] 123s tests/test_tokenizer.py::test_roundtrip[integration:style_tag_inside_link] PASSED [ 90%] 123s tests/test_tokenizer.py::test_roundtrip[integration:comment_inside_link] PASSED [ 90%] 123s tests/test_tokenizer.py::test_roundtrip[integration:bracketed_link_inside_template] PASSED [ 90%] 123s tests/test_tokenizer.py::test_roundtrip[integration:comment_inside_bracketed_link] PASSED [ 90%] 123s tests/test_tokenizer.py::test_roundtrip[integration:wikilink_inside_external_link] PASSED [ 90%] 123s tests/test_tokenizer.py::test_roundtrip[integration:external_link_inside_wikilink] PASSED [ 90%] 123s tests/test_tokenizer.py::test_roundtrip[integration:external_link_inside_wikilink_brackets] PASSED [ 90%] 123s tests/test_tokenizer.py::test_roundtrip[integration:external_link_inside_wikilink_title] PASSED [ 90%] 123s tests/test_tokenizer.py::test_roundtrip[integration:italics_inside_external_link_inside_incomplete_list] PASSED [ 90%] 123s tests/test_tokenizer.py::test_roundtrip[integration:nodes_inside_external_link_after_punct] PASSED [ 91%] 123s tests/test_tokenizer.py::test_roundtrip[integration:newline_and_comment_in_template_name] PASSED [ 91%] 123s tests/test_tokenizer.py::test_roundtrip[integration:newline_and_comment_in_template_name_2] PASSED [ 91%] 123s tests/test_tokenizer.py::test_roundtrip[integration:newline_and_comment_in_template_name_3] PASSED [ 91%] 123s tests/test_tokenizer.py::test_roundtrip[integration:newline_and_comment_in_template_name_4] PASSED [ 91%] 123s tests/test_tokenizer.py::test_roundtrip[integration:newline_and_comment_in_template_name_5] PASSED [ 91%] 123s tests/test_tokenizer.py::test_roundtrip[integration:newline_and_comment_in_template_name_6] PASSED [ 91%] 123s tests/test_tokenizer.py::test_roundtrip[integration:newline_and_comment_in_template_name_7] PASSED [ 91%] 123s tests/test_tokenizer.py::test_roundtrip[integration:newline_and_comment_in_template_name_8] PASSED [ 91%] 123s tests/test_tokenizer.py::test_roundtrip[integration:tag_in_link_title] PASSED [ 91%] 123s tests/test_tokenizer.py::test_roundtrip[integration:tag_in_template_name] PASSED [ 91%] 123s tests/test_tokenizer.py::test_roundtrip[integration:tag_in_link_text] PASSED [ 91%] 123s tests/test_tokenizer.py::test_roundtrip[integration:comment_in_link_title] PASSED [ 91%] 123s tests/test_tokenizer.py::test_roundtrip[integration:incomplete_comment_in_link_title] PASSED [ 91%] 123s tests/test_tokenizer.py::test_roundtrip[integration:incomplete_comment_in_link_title_2] PASSED [ 92%] 123s tests/test_tokenizer.py::test_roundtrip[integration:incomplete_comment_in_link_title_3] PASSED [ 92%] 123s tests/test_tokenizer.py::test_roundtrip[integration:incomplete_comment_in_link_title_4] PASSED [ 92%] 123s tests/test_tokenizer.py::test_roundtrip[integration:incomplete_comment_in_link_title_5] PASSED [ 92%] 123s tests/test_tokenizer.py::test_roundtrip[integration:incomplete_comment_in_link_title_6] PASSED [ 92%] 123s tests/test_tokenizer.py::test_roundtrip[integration:wikilink_to_external_link_fallback] PASSED [ 92%] 123s tests/test_tokenizer.py::test_roundtrip[integration:wikilink_to_external_link_fallback_2] PASSED [ 92%] 123s tests/test_tokenizer.py::test_roundtrip[integration:tables_in_templates] PASSED [ 92%] 123s tests/test_tokenizer.py::test_roundtrip[integration:tables_in_templates_2] PASSED [ 92%] 123s tests/test_tokenizer.py::test_roundtrip[integration:many_invalid_nested_tags] PASSED [ 92%] 123s tests/test_tokenizer.py::test_roundtrip[integration:nested_templates_and_style_tags] PASSED [ 92%] 123s tests/test_tokenizer.py::test_roundtrip[integration:wikilink_nested_with_nowiki] PASSED [ 92%] 123s tests/test_tokenizer.py::test_roundtrip[arguments:blank] PASSED [ 92%] 123s tests/test_tokenizer.py::test_roundtrip[arguments:blank_with_default] PASSED [ 92%] 123s tests/test_tokenizer.py::test_roundtrip[arguments:basic] PASSED [ 93%] 123s tests/test_tokenizer.py::test_roundtrip[arguments:default] PASSED [ 93%] 123s tests/test_tokenizer.py::test_roundtrip[arguments:blank_with_multiple_defaults] PASSED [ 93%] 123s tests/test_tokenizer.py::test_roundtrip[arguments:multiple_defaults] PASSED [ 93%] 123s tests/test_tokenizer.py::test_roundtrip[arguments:newline] PASSED [ 93%] 123s tests/test_tokenizer.py::test_roundtrip[arguments:right_braces] PASSED [ 93%] 123s tests/test_tokenizer.py::test_roundtrip[arguments:right_braces_default] PASSED [ 93%] 123s tests/test_tokenizer.py::test_roundtrip[arguments:nested] PASSED [ 93%] 123s tests/test_tokenizer.py::test_roundtrip[arguments:invalid_braces] PASSED [ 93%] 123s tests/test_tokenizer.py::test_roundtrip[arguments:incomplete_open_only] PASSED [ 93%] 123s tests/test_tokenizer.py::test_roundtrip[arguments:incomplete_open_text] PASSED [ 93%] 123s tests/test_tokenizer.py::test_roundtrip[arguments:incomplete_open_text_pipe] PASSED [ 93%] 123s tests/test_tokenizer.py::test_roundtrip[arguments:incomplete_open_pipe] PASSED [ 93%] 123s tests/test_tokenizer.py::test_roundtrip[arguments:incomplete_open_pipe_text] PASSED [ 93%] 123s tests/test_tokenizer.py::test_roundtrip[arguments:incomplete_open_pipes_text] PASSED [ 93%] 123s tests/test_tokenizer.py::test_roundtrip[arguments:incomplete_open_partial_close] PASSED [ 94%] 123s tests/test_tokenizer.py::test_roundtrip[arguments:incomplete_preserve_previous] PASSED [ 94%] 123s tests/test_tokenizer.py::test_c_tokenizer_uses_c SKIPPED (CTokenizer...) [ 94%] 123s tests/test_tokenizer.py::test_describe_context PASSED [ 94%] 123s tests/test_tokens.py::test_issubclass[Token] PASSED [ 94%] 123s tests/test_tokens.py::test_issubclass[Text] PASSED [ 94%] 123s tests/test_tokens.py::test_issubclass[TemplateOpen] PASSED [ 94%] 123s tests/test_tokens.py::test_issubclass[TemplateParamSeparator] PASSED [ 94%] 123s tests/test_tokens.py::test_issubclass[TemplateParamEquals] PASSED [ 94%] 123s tests/test_tokens.py::test_issubclass[TemplateClose] PASSED [ 94%] 123s tests/test_tokens.py::test_issubclass[ArgumentOpen] PASSED [ 94%] 123s tests/test_tokens.py::test_issubclass[ArgumentSeparator] PASSED [ 94%] 123s tests/test_tokens.py::test_issubclass[ArgumentClose] PASSED [ 94%] 123s tests/test_tokens.py::test_issubclass[WikilinkOpen] PASSED [ 94%] 123s tests/test_tokens.py::test_issubclass[WikilinkSeparator] PASSED [ 95%] 123s tests/test_tokens.py::test_issubclass[WikilinkClose] PASSED [ 95%] 123s tests/test_tokens.py::test_issubclass[ExternalLinkOpen] PASSED [ 95%] 123s tests/test_tokens.py::test_issubclass[ExternalLinkSeparator] PASSED [ 95%] 123s tests/test_tokens.py::test_issubclass[ExternalLinkClose] PASSED [ 95%] 123s tests/test_tokens.py::test_issubclass[HTMLEntityStart] PASSED [ 95%] 123s tests/test_tokens.py::test_issubclass[HTMLEntityNumeric] PASSED [ 95%] 123s tests/test_tokens.py::test_issubclass[HTMLEntityHex] PASSED [ 95%] 123s tests/test_tokens.py::test_issubclass[HTMLEntityEnd] PASSED [ 95%] 123s tests/test_tokens.py::test_issubclass[HeadingStart] PASSED [ 95%] 123s tests/test_tokens.py::test_issubclass[HeadingEnd] PASSED [ 95%] 123s tests/test_tokens.py::test_issubclass[CommentStart] PASSED [ 95%] 123s tests/test_tokens.py::test_issubclass[CommentEnd] PASSED [ 95%] 123s tests/test_tokens.py::test_issubclass[TagOpenOpen] PASSED [ 95%] 123s tests/test_tokens.py::test_issubclass[TagAttrStart] PASSED [ 96%] 123s tests/test_tokens.py::test_issubclass[TagAttrEquals] PASSED [ 96%] 123s tests/test_tokens.py::test_issubclass[TagAttrQuote] PASSED [ 96%] 123s tests/test_tokens.py::test_issubclass[TagCloseOpen] PASSED [ 96%] 123s tests/test_tokens.py::test_issubclass[TagCloseSelfclose] PASSED [ 96%] 123s tests/test_tokens.py::test_issubclass[TagOpenClose] PASSED [ 96%] 123s tests/test_tokens.py::test_issubclass[TagCloseClose] PASSED [ 96%] 123s tests/test_tokens.py::test_attributes PASSED [ 96%] 123s tests/test_tokens.py::test_repr PASSED [ 96%] 123s tests/test_tokens.py::test_equality PASSED [ 96%] 123s tests/test_tokens.py::test_repr_equality[token0] PASSED [ 96%] 123s tests/test_tokens.py::test_repr_equality[token1] PASSED [ 96%] 123s tests/test_tokens.py::test_repr_equality[token2] PASSED [ 96%] 123s tests/test_utils.py::test_parse_anything_valid[test0-valid0] PASSED [ 96%] 123s tests/test_utils.py::test_parse_anything_valid[test1-valid1] PASSED [ 96%] 123s tests/test_utils.py::test_parse_anything_valid[f\xf3\xf3bar-valid2] PASSED [ 97%] 123s tests/test_utils.py::test_parse_anything_valid[foob\xc3\xa1r-valid3] PASSED [ 97%] 123s tests/test_utils.py::test_parse_anything_valid[123-valid4] PASSED [ 97%] 123s tests/test_utils.py::test_parse_anything_valid[True-valid5] PASSED [ 97%] 123s tests/test_utils.py::test_parse_anything_valid[None-valid6] PASSED [ 97%] 123s tests/test_utils.py::test_parse_anything_valid[test7-valid7] PASSED [ 97%] 123s tests/test_utils.py::test_parse_anything_valid[test8-valid8] PASSED [ 97%] 123s tests/test_utils.py::test_parse_anything_valid[test9-valid9] PASSED [ 97%] 123s tests/test_utils.py::test_parse_anything_invalid[invalid0] PASSED [ 97%] 123s tests/test_utils.py::test_parse_anything_invalid[object] PASSED [ 97%] 123s tests/test_utils.py::test_parse_anything_invalid[invalid2] PASSED [ 97%] 123s tests/test_utils.py::test_parse_anything_invalid[type] PASSED [ 97%] 123s tests/test_utils.py::test_parse_anything_invalid[invalid4] PASSED [ 97%] 123s tests/test_wikicode.py::test_str PASSED [ 97%] 123s tests/test_wikicode.py::test_nodes PASSED [ 98%] 123s tests/test_wikicode.py::test_pickling[0] PASSED [ 98%] 123s tests/test_wikicode.py::test_pickling[1] PASSED [ 98%] 123s tests/test_wikicode.py::test_pickling[2] PASSED [ 98%] 123s tests/test_wikicode.py::test_pickling[3] PASSED [ 98%] 123s tests/test_wikicode.py::test_pickling[4] PASSED [ 98%] 123s tests/test_wikicode.py::test_pickling[5] PASSED [ 98%] 123s tests/test_wikicode.py::test_get PASSED [ 98%] 123s tests/test_wikicode.py::test_set PASSED [ 98%] 123s tests/test_wikicode.py::test_contains PASSED [ 98%] 123s tests/test_wikicode.py::test_index PASSED [ 98%] 123s tests/test_wikicode.py::test_get_ancestors_parent PASSED [ 98%] 123s tests/test_wikicode.py::test_insert PASSED [ 98%] 123s tests/test_wikicode.py::test_insert_before PASSED [ 98%] 123s tests/test_wikicode.py::test_insert_after PASSED [ 99%] 123s tests/test_wikicode.py::test_replace PASSED [ 99%] 123s tests/test_wikicode.py::test_append PASSED [ 99%] 123s tests/test_wikicode.py::test_remove PASSED [ 99%] 123s tests/test_wikicode.py::test_matches PASSED [ 99%] 123s tests/test_wikicode.py::test_filter_family PASSED [ 99%] 123s tests/test_wikicode.py::test_get_sections PASSED [ 99%] 123s tests/test_wikicode.py::test_strip_code PASSED [ 99%] 123s tests/test_wikicode.py::test_get_tree PASSED [ 99%] 123s tests/test_wikilink.py::test_str PASSED [ 99%] 123s tests/test_wikilink.py::test_children PASSED [ 99%] 123s tests/test_wikilink.py::test_strip PASSED [ 99%] 123s tests/test_wikilink.py::test_showtree PASSED [ 99%] 123s tests/test_wikilink.py::test_title PASSED [ 99%] 123s tests/test_wikilink.py::test_text PASSED [100%] 123s 123s ======================= 1430 passed, 2 skipped in 2.52s ======================== 123s ============================= test session starts ============================== 123s platform linux -- Python 3.12.7, pytest-8.3.3, pluggy-1.5.0 -- /usr/bin/python3.12 123s cachedir: .pytest_cache 123s rootdir: /tmp/autopkgtest.yUsqZG/build.62U/src 123s plugins: typeguard-4.4.1 124s collecting ... collected 2005 items 124s 124s tests/test_argument.py::test_str PASSED [ 0%] 124s tests/test_argument.py::test_children PASSED [ 0%] 124s tests/test_argument.py::test_strip PASSED [ 0%] 124s tests/test_argument.py::test_showtree PASSED [ 0%] 124s tests/test_argument.py::test_name PASSED [ 0%] 124s tests/test_argument.py::test_default PASSED [ 0%] 125s tests/test_attribute.py::test_str PASSED [ 0%] 125s tests/test_attribute.py::test_name PASSED [ 0%] 125s tests/test_attribute.py::test_value PASSED [ 0%] 125s tests/test_attribute.py::test_quotes PASSED [ 0%] 125s tests/test_attribute.py::test_padding PASSED [ 0%] 125s tests/test_builder.py::test_text[test0-valid0] PASSED [ 0%] 125s tests/test_builder.py::test_text[test1-valid1] PASSED [ 0%] 125s tests/test_builder.py::test_text[test2-valid2] PASSED [ 0%] 125s tests/test_builder.py::test_template[test0-valid0] PASSED [ 0%] 125s tests/test_builder.py::test_template[test1-valid1] PASSED [ 0%] 125s tests/test_builder.py::test_template[test2-valid2] PASSED [ 0%] 125s tests/test_builder.py::test_template[test3-valid3] PASSED [ 0%] 125s tests/test_builder.py::test_template[test4-valid4] PASSED [ 0%] 125s tests/test_builder.py::test_template[test5-valid5] PASSED [ 0%] 125s tests/test_builder.py::test_argument[test0-valid0] PASSED [ 1%] 125s tests/test_builder.py::test_argument[test1-valid1] PASSED [ 1%] 125s tests/test_builder.py::test_argument[test2-valid2] PASSED [ 1%] 125s tests/test_builder.py::test_argument[test3-valid3] PASSED [ 1%] 125s tests/test_builder.py::test_wikilink[test0-valid0] PASSED [ 1%] 125s tests/test_builder.py::test_wikilink[test1-valid1] PASSED [ 1%] 125s tests/test_builder.py::test_wikilink[test2-valid2] PASSED [ 1%] 125s tests/test_builder.py::test_wikilink[test3-valid3] PASSED [ 1%] 125s tests/test_builder.py::test_external_link[test0-valid0] PASSED [ 1%] 125s tests/test_builder.py::test_external_link[test1-valid1] PASSED [ 1%] 125s tests/test_builder.py::test_external_link[test2-valid2] PASSED [ 1%] 125s tests/test_builder.py::test_external_link[test3-valid3] PASSED [ 1%] 125s tests/test_builder.py::test_external_link[test4-valid4] PASSED [ 1%] 125s tests/test_builder.py::test_external_link[test5-valid5] PASSED [ 1%] 125s tests/test_builder.py::test_html_entity[test0-valid0] PASSED [ 1%] 125s tests/test_builder.py::test_html_entity[test1-valid1] PASSED [ 1%] 125s tests/test_builder.py::test_html_entity[test2-valid2] PASSED [ 1%] 125s tests/test_builder.py::test_heading[test0-valid0] PASSED [ 1%] 125s tests/test_builder.py::test_heading[test1-valid1] PASSED [ 1%] 125s tests/test_builder.py::test_comment[test0-valid0] PASSED [ 1%] 125s tests/test_builder.py::test_comment[test1-valid1] PASSED [ 2%] 125s tests/test_builder.py::test_tag[test0-valid0] PASSED [ 2%] 125s tests/test_builder.py::test_tag[test1-valid1] PASSED [ 2%] 125s tests/test_builder.py::test_tag[test2-valid2] PASSED [ 2%] 125s tests/test_builder.py::test_tag[test3-valid3] PASSED [ 2%] 125s tests/test_builder.py::test_tag[test4-valid4] PASSED [ 2%] 125s tests/test_builder.py::test_tag[test5-valid5] PASSED [ 2%] 125s tests/test_builder.py::test_tag[test6-valid6] PASSED [ 2%] 125s tests/test_builder.py::test_tag[test7-valid7] PASSED [ 2%] 125s tests/test_builder.py::test_tag[test8-valid8] PASSED [ 2%] 125s tests/test_builder.py::test_tag[test9-valid9] PASSED [ 2%] 125s tests/test_builder.py::test_integration PASSED [ 2%] 125s tests/test_builder.py::test_integration2 PASSED [ 2%] 125s tests/test_builder.py::test_parser_errors[tokens0] PASSED [ 2%] 125s tests/test_builder.py::test_parser_errors[tokens1] PASSED [ 2%] 125s tests/test_builder.py::test_parser_errors[tokens2] PASSED [ 2%] 125s tests/test_builder.py::test_parser_errors[tokens3] PASSED [ 2%] 125s tests/test_builder.py::test_parser_errors[tokens4] PASSED [ 2%] 125s tests/test_builder.py::test_parser_errors[tokens5] PASSED [ 2%] 125s tests/test_builder.py::test_parser_errors[tokens6] PASSED [ 2%] 125s tests/test_builder.py::test_parser_errors[tokens7] PASSED [ 3%] 125s tests/test_builder.py::test_parser_errors[tokens8] PASSED [ 3%] 125s tests/test_builder.py::test_parser_errors_templateclose PASSED [ 3%] 125s tests/test_comment.py::test_str PASSED [ 3%] 125s tests/test_comment.py::test_children PASSED [ 3%] 125s tests/test_comment.py::test_strip PASSED [ 3%] 125s tests/test_comment.py::test_showtree PASSED [ 3%] 125s tests/test_comment.py::test_contents PASSED [ 3%] 125s tests/test_docs.py::test_readme_1 PASSED [ 3%] 125s tests/test_docs.py::test_readme_2 PASSED [ 3%] 125s tests/test_docs.py::test_readme_3 PASSED [ 3%] 125s tests/test_docs.py::test_readme_4 PASSED [ 3%] 125s tests/test_docs.py::test_readme_5 SKIPPED (web test disabled by envi...) [ 3%] 125s tests/test_external_link.py::test_str PASSED [ 3%] 125s tests/test_external_link.py::test_children PASSED [ 3%] 125s tests/test_external_link.py::test_strip PASSED [ 3%] 125s tests/test_external_link.py::test_showtree PASSED [ 3%] 125s tests/test_external_link.py::test_url PASSED [ 3%] 125s tests/test_external_link.py::test_title PASSED [ 3%] 125s tests/test_external_link.py::test_brackets PASSED [ 3%] 125s tests/test_heading.py::test_str PASSED [ 4%] 125s tests/test_heading.py::test_children PASSED [ 4%] 125s tests/test_heading.py::test_strip PASSED [ 4%] 125s tests/test_heading.py::test_showtree PASSED [ 4%] 125s tests/test_heading.py::test_title PASSED [ 4%] 125s tests/test_heading.py::test_level PASSED [ 4%] 125s tests/test_html_entity.py::test_str PASSED [ 4%] 125s tests/test_html_entity.py::test_children PASSED [ 4%] 125s tests/test_html_entity.py::test_strip PASSED [ 4%] 125s tests/test_html_entity.py::test_showtree PASSED [ 4%] 125s tests/test_html_entity.py::test_value PASSED [ 4%] 125s tests/test_html_entity.py::test_named PASSED [ 4%] 125s tests/test_html_entity.py::test_hexadecimal PASSED [ 4%] 125s tests/test_html_entity.py::test_hex_char PASSED [ 4%] 125s tests/test_html_entity.py::test_normalize PASSED [ 4%] 125s tests/test_parameter.py::test_str PASSED [ 4%] 125s tests/test_parameter.py::test_name PASSED [ 4%] 125s tests/test_parameter.py::test_value PASSED [ 4%] 125s tests/test_parameter.py::test_showkey PASSED [ 4%] 125s tests/test_parser.py::test_use_c PASSED [ 4%] 125s tests/test_parser.py::test_parsing PASSED [ 5%] 125s tests/test_parser.py::test_skip_style_tags PASSED [ 5%] 125s tests/test_smart_list.py::test_docs PASSED [ 5%] 125s tests/test_smart_list.py::test_doctest PASSED [ 5%] 125s tests/test_smart_list.py::test_parent_get_set_del PASSED [ 5%] 125s tests/test_smart_list.py::test_parent_add PASSED [ 5%] 125s tests/test_smart_list.py::test_parent_other_magics PASSED [ 5%] 125s tests/test_smart_list.py::test_parent_methods PASSED [ 5%] 125s tests/test_smart_list.py::test_child_get_set_del PASSED [ 5%] 125s tests/test_smart_list.py::test_child_add PASSED [ 5%] 125s tests/test_smart_list.py::test_child_other_magics PASSED [ 5%] 125s tests/test_smart_list.py::test_child_methods PASSED [ 5%] 125s tests/test_smart_list.py::test_influence PASSED [ 5%] 125s tests/test_smart_list.py::test_pickling[0] PASSED [ 5%] 125s tests/test_smart_list.py::test_pickling[1] PASSED [ 5%] 125s tests/test_smart_list.py::test_pickling[2] PASSED [ 5%] 125s tests/test_smart_list.py::test_pickling[3] PASSED [ 5%] 125s tests/test_smart_list.py::test_pickling[4] PASSED [ 5%] 125s tests/test_smart_list.py::test_pickling[5] PASSED [ 5%] 125s tests/test_string_mixin.py::test_docs[capitalize] PASSED [ 5%] 125s tests/test_string_mixin.py::test_docs[casefold] PASSED [ 6%] 125s tests/test_string_mixin.py::test_docs[center] PASSED [ 6%] 125s tests/test_string_mixin.py::test_docs[count] PASSED [ 6%] 125s tests/test_string_mixin.py::test_docs[encode] PASSED [ 6%] 125s tests/test_string_mixin.py::test_docs[endswith] PASSED [ 6%] 125s tests/test_string_mixin.py::test_docs[expandtabs] PASSED [ 6%] 125s tests/test_string_mixin.py::test_docs[find] PASSED [ 6%] 125s tests/test_string_mixin.py::test_docs[format] PASSED [ 6%] 125s tests/test_string_mixin.py::test_docs[format_map] PASSED [ 6%] 125s tests/test_string_mixin.py::test_docs[index] PASSED [ 6%] 125s tests/test_string_mixin.py::test_docs[isalnum] PASSED [ 6%] 125s tests/test_string_mixin.py::test_docs[isalpha] PASSED [ 6%] 125s tests/test_string_mixin.py::test_docs[isdecimal] PASSED [ 6%] 125s tests/test_string_mixin.py::test_docs[isdigit] PASSED [ 6%] 125s tests/test_string_mixin.py::test_docs[isidentifier] PASSED [ 6%] 125s tests/test_string_mixin.py::test_docs[islower] PASSED [ 6%] 125s tests/test_string_mixin.py::test_docs[isnumeric] PASSED [ 6%] 125s tests/test_string_mixin.py::test_docs[isprintable] PASSED [ 6%] 125s tests/test_string_mixin.py::test_docs[isspace] PASSED [ 6%] 125s tests/test_string_mixin.py::test_docs[istitle] PASSED [ 6%] 125s tests/test_string_mixin.py::test_docs[isupper] PASSED [ 7%] 125s tests/test_string_mixin.py::test_docs[join] PASSED [ 7%] 125s tests/test_string_mixin.py::test_docs[ljust] PASSED [ 7%] 125s tests/test_string_mixin.py::test_docs[lower] PASSED [ 7%] 125s tests/test_string_mixin.py::test_docs[lstrip] PASSED [ 7%] 125s tests/test_string_mixin.py::test_docs[maketrans] PASSED [ 7%] 125s tests/test_string_mixin.py::test_docs[partition] PASSED [ 7%] 125s tests/test_string_mixin.py::test_docs[replace] PASSED [ 7%] 125s tests/test_string_mixin.py::test_docs[rfind] PASSED [ 7%] 125s tests/test_string_mixin.py::test_docs[rindex] PASSED [ 7%] 125s tests/test_string_mixin.py::test_docs[rjust] PASSED [ 7%] 125s tests/test_string_mixin.py::test_docs[rpartition] PASSED [ 7%] 125s tests/test_string_mixin.py::test_docs[rsplit] PASSED [ 7%] 125s tests/test_string_mixin.py::test_docs[rstrip] PASSED [ 7%] 125s tests/test_string_mixin.py::test_docs[split] PASSED [ 7%] 125s tests/test_string_mixin.py::test_docs[splitlines] PASSED [ 7%] 125s tests/test_string_mixin.py::test_docs[startswith] PASSED [ 7%] 125s tests/test_string_mixin.py::test_docs[strip] PASSED [ 7%] 125s tests/test_string_mixin.py::test_docs[swapcase] PASSED [ 7%] 125s tests/test_string_mixin.py::test_docs[title] PASSED [ 7%] 125s tests/test_string_mixin.py::test_docs[translate] PASSED [ 8%] 125s tests/test_string_mixin.py::test_docs[upper] PASSED [ 8%] 125s tests/test_string_mixin.py::test_docs[zfill] PASSED [ 8%] 125s tests/test_string_mixin.py::test_types PASSED [ 8%] 125s tests/test_string_mixin.py::test_comparisons PASSED [ 8%] 125s tests/test_string_mixin.py::test_other_magics PASSED [ 8%] 125s tests/test_string_mixin.py::test_other_methods PASSED [ 8%] 125s tests/test_tag.py::test_str PASSED [ 8%] 125s tests/test_tag.py::test_children PASSED [ 8%] 125s tests/test_tag.py::test_strip PASSED [ 8%] 125s tests/test_tag.py::test_showtree PASSED [ 8%] 125s tests/test_tag.py::test_tag PASSED [ 8%] 125s tests/test_tag.py::test_contents PASSED [ 8%] 125s tests/test_tag.py::test_attributes PASSED [ 8%] 125s tests/test_tag.py::test_wiki_markup PASSED [ 8%] 125s tests/test_tag.py::test_self_closing PASSED [ 8%] 125s tests/test_tag.py::test_invalid PASSED [ 8%] 125s tests/test_tag.py::test_implicit PASSED [ 8%] 125s tests/test_tag.py::test_padding PASSED [ 8%] 125s tests/test_tag.py::test_closing_tag PASSED [ 8%] 125s tests/test_tag.py::test_wiki_style_separator PASSED [ 9%] 125s tests/test_tag.py::test_closing_wiki_markup PASSED [ 9%] 125s tests/test_tag.py::test_has PASSED [ 9%] 125s tests/test_tag.py::test_get PASSED [ 9%] 125s tests/test_tag.py::test_add PASSED [ 9%] 125s tests/test_tag.py::test_remove PASSED [ 9%] 125s tests/test_template.py::test_str PASSED [ 9%] 125s tests/test_template.py::test_children PASSED [ 9%] 125s tests/test_template.py::test_strip PASSED [ 9%] 125s tests/test_template.py::test_showtree PASSED [ 9%] 125s tests/test_template.py::test_name PASSED [ 9%] 125s tests/test_template.py::test_params PASSED [ 9%] 125s tests/test_template.py::test_has PASSED [ 9%] 125s tests/test_template.py::test_get PASSED [ 9%] 125s tests/test_template.py::test_add PASSED [ 9%] 125s tests/test_template.py::test_remove PASSED [ 9%] 125s tests/test_template.py::test_formatting PASSED [ 9%] 125s tests/test_text.py::test_str PASSED [ 9%] 125s tests/test_text.py::test_children PASSED [ 9%] 125s tests/test_text.py::test_strip PASSED [ 9%] 125s tests/test_text.py::test_showtree PASSED [ 10%] 125s tests/test_text.py::test_value PASSED [ 10%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:blank-CTokenizer] PASSED [ 10%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:blank-PyTokenizer] PASSED [ 10%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:blank_with_text-CTokenizer] PASSED [ 10%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:blank_with_text-PyTokenizer] PASSED [ 10%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:basic-CTokenizer] PASSED [ 10%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:basic-PyTokenizer] PASSED [ 10%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:with_text-CTokenizer] PASSED [ 10%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:with_text-PyTokenizer] PASSED [ 10%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:blank_with_multiple_texts-CTokenizer] PASSED [ 10%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:blank_with_multiple_texts-PyTokenizer] PASSED [ 10%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:multiple_texts-CTokenizer] PASSED [ 10%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:multiple_texts-PyTokenizer] PASSED [ 10%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:newline_text-CTokenizer] PASSED [ 10%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:newline_text-PyTokenizer] PASSED [ 10%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:bracket_text-CTokenizer] PASSED [ 10%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:bracket_text-PyTokenizer] PASSED [ 10%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:nested-CTokenizer] PASSED [ 10%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:nested-PyTokenizer] PASSED [ 10%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:nested_padding-CTokenizer] PASSED [ 11%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:nested_padding-PyTokenizer] PASSED [ 11%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:invalid_newline-CTokenizer] PASSED [ 11%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:invalid_newline-PyTokenizer] PASSED [ 11%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:invalid_right_brace-CTokenizer] PASSED [ 11%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:invalid_right_brace-PyTokenizer] PASSED [ 11%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:invalid_left_brace-CTokenizer] PASSED [ 11%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:invalid_left_brace-PyTokenizer] PASSED [ 11%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:invalid_right_bracket-CTokenizer] PASSED [ 11%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:invalid_right_bracket-PyTokenizer] PASSED [ 11%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:invalid_left_bracket-CTokenizer] PASSED [ 11%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:invalid_left_bracket-PyTokenizer] PASSED [ 11%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:invalid_nested_title-CTokenizer] PASSED [ 11%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:invalid_nested_title-PyTokenizer] PASSED [ 11%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:invalid_nested_title_and_text-CTokenizer] PASSED [ 11%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:invalid_nested_title_and_text-PyTokenizer] PASSED [ 11%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:invalid_nested_no_close-CTokenizer] PASSED [ 11%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:invalid_nested_no_close-PyTokenizer] PASSED [ 11%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:invalid_left_angle_bracket-CTokenizer] PASSED [ 11%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:invalid_left_angle_bracket-PyTokenizer] PASSED [ 11%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:invalid_right_angle_bracket-CTokenizer] PASSED [ 12%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:invalid_right_angle_bracket-PyTokenizer] PASSED [ 12%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:invalid_newline_at_start-CTokenizer] PASSED [ 12%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:invalid_newline_at_start-PyTokenizer] PASSED [ 12%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:invalid_newline_at_end-CTokenizer] PASSED [ 12%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:invalid_newline_at_end-PyTokenizer] PASSED [ 12%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:incomplete_open_only-CTokenizer] PASSED [ 12%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:incomplete_open_only-PyTokenizer] PASSED [ 12%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:incomplete_open_text-CTokenizer] PASSED [ 12%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:incomplete_open_text-PyTokenizer] PASSED [ 12%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:incomplete_open_text_pipe-CTokenizer] PASSED [ 12%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:incomplete_open_text_pipe-PyTokenizer] PASSED [ 12%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:incomplete_open_pipe-CTokenizer] PASSED [ 12%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:incomplete_open_pipe-PyTokenizer] PASSED [ 12%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:incomplete_open_pipe_text-CTokenizer] PASSED [ 12%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:incomplete_open_pipe_text-PyTokenizer] PASSED [ 12%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:incomplete_open_pipes_text-CTokenizer] PASSED [ 12%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:incomplete_open_pipes_text-PyTokenizer] PASSED [ 12%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:incomplete_open_partial_close-CTokenizer] PASSED [ 12%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:incomplete_open_partial_close-PyTokenizer] PASSED [ 12%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:incomplete_preserve_previous-CTokenizer] PASSED [ 13%] 125s tests/test_tokenizer.py::test_tokenizer[wikilinks:incomplete_preserve_previous-PyTokenizer] PASSED [ 13%] 125s tests/test_tokenizer.py::test_tokenizer[tags:basic-CTokenizer] PASSED [ 13%] 125s tests/test_tokenizer.py::test_tokenizer[tags:basic-PyTokenizer] PASSED [ 13%] 125s tests/test_tokenizer.py::test_tokenizer[tags:basic_selfclosing-CTokenizer] PASSED [ 13%] 125s tests/test_tokenizer.py::test_tokenizer[tags:basic_selfclosing-PyTokenizer] PASSED [ 13%] 125s tests/test_tokenizer.py::test_tokenizer[tags:content-CTokenizer] PASSED [ 13%] 125s tests/test_tokenizer.py::test_tokenizer[tags:content-PyTokenizer] PASSED [ 13%] 125s tests/test_tokenizer.py::test_tokenizer[tags:padded_open-CTokenizer] PASSED [ 13%] 125s tests/test_tokenizer.py::test_tokenizer[tags:padded_open-PyTokenizer] PASSED [ 13%] 125s tests/test_tokenizer.py::test_tokenizer[tags:padded_close-CTokenizer] PASSED [ 13%] 125s tests/test_tokenizer.py::test_tokenizer[tags:padded_close-PyTokenizer] PASSED [ 13%] 125s tests/test_tokenizer.py::test_tokenizer[tags:padded_selfclosing-CTokenizer] PASSED [ 13%] 125s tests/test_tokenizer.py::test_tokenizer[tags:padded_selfclosing-PyTokenizer] PASSED [ 13%] 125s tests/test_tokenizer.py::test_tokenizer[tags:attribute-CTokenizer] PASSED [ 13%] 125s tests/test_tokenizer.py::test_tokenizer[tags:attribute-PyTokenizer] PASSED [ 13%] 125s tests/test_tokenizer.py::test_tokenizer[tags:attribute_value-CTokenizer] PASSED [ 13%] 125s tests/test_tokenizer.py::test_tokenizer[tags:attribute_value-PyTokenizer] PASSED [ 13%] 125s tests/test_tokenizer.py::test_tokenizer[tags:attribute_quoted-CTokenizer] PASSED [ 13%] 125s tests/test_tokenizer.py::test_tokenizer[tags:attribute_quoted-PyTokenizer] PASSED [ 13%] 125s tests/test_tokenizer.py::test_tokenizer[tags:attribute_single_quoted-CTokenizer] PASSED [ 14%] 125s tests/test_tokenizer.py::test_tokenizer[tags:attribute_single_quoted-PyTokenizer] PASSED [ 14%] 125s tests/test_tokenizer.py::test_tokenizer[tags:attribute_hyphen-CTokenizer] PASSED [ 14%] 125s tests/test_tokenizer.py::test_tokenizer[tags:attribute_hyphen-PyTokenizer] PASSED [ 14%] 125s tests/test_tokenizer.py::test_tokenizer[tags:attribute_quoted_hyphen-CTokenizer] PASSED [ 14%] 125s tests/test_tokenizer.py::test_tokenizer[tags:attribute_quoted_hyphen-PyTokenizer] PASSED [ 14%] 125s tests/test_tokenizer.py::test_tokenizer[tags:attribute_selfclosing-CTokenizer] PASSED [ 14%] 125s tests/test_tokenizer.py::test_tokenizer[tags:attribute_selfclosing-PyTokenizer] PASSED [ 14%] 125s tests/test_tokenizer.py::test_tokenizer[tags:attribute_selfclosing_value-CTokenizer] PASSED [ 14%] 125s tests/test_tokenizer.py::test_tokenizer[tags:attribute_selfclosing_value-PyTokenizer] PASSED [ 14%] 125s tests/test_tokenizer.py::test_tokenizer[tags:attribute_selfclosing_value_quoted-CTokenizer] PASSED [ 14%] 125s tests/test_tokenizer.py::test_tokenizer[tags:attribute_selfclosing_value_quoted-PyTokenizer] PASSED [ 14%] 125s tests/test_tokenizer.py::test_tokenizer[tags:nested_tag-CTokenizer] PASSED [ 14%] 125s tests/test_tokenizer.py::test_tokenizer[tags:nested_tag-PyTokenizer] PASSED [ 14%] 125s tests/test_tokenizer.py::test_tokenizer[tags:nested_tag_quoted-CTokenizer] PASSED [ 14%] 125s tests/test_tokenizer.py::test_tokenizer[tags:nested_tag_quoted-PyTokenizer] PASSED [ 14%] 125s tests/test_tokenizer.py::test_tokenizer[tags:nested_troll_tag-CTokenizer] PASSED [ 14%] 125s tests/test_tokenizer.py::test_tokenizer[tags:nested_troll_tag-PyTokenizer] PASSED [ 14%] 125s tests/test_tokenizer.py::test_tokenizer[tags:nested_troll_tag_quoted-CTokenizer] PASSED [ 14%] 125s tests/test_tokenizer.py::test_tokenizer[tags:nested_troll_tag_quoted-PyTokenizer] PASSED [ 14%] 125s tests/test_tokenizer.py::test_tokenizer[tags:nested_tag_selfclosing-CTokenizer] PASSED [ 15%] 125s tests/test_tokenizer.py::test_tokenizer[tags:nested_tag_selfclosing-PyTokenizer] PASSED [ 15%] 125s tests/test_tokenizer.py::test_tokenizer[tags:invalid_space_begin_open-CTokenizer] PASSED [ 15%] 125s tests/test_tokenizer.py::test_tokenizer[tags:invalid_space_begin_open-PyTokenizer] PASSED [ 15%] 125s tests/test_tokenizer.py::test_tokenizer[tags:invalid_space_begin_close-CTokenizer] PASSED [ 15%] 125s tests/test_tokenizer.py::test_tokenizer[tags:invalid_space_begin_close-PyTokenizer] PASSED [ 15%] 125s tests/test_tokenizer.py::test_tokenizer[tags:valid_space_end-CTokenizer] PASSED [ 15%] 125s tests/test_tokenizer.py::test_tokenizer[tags:valid_space_end-PyTokenizer] PASSED [ 15%] 125s tests/test_tokenizer.py::test_tokenizer[tags:invalid_template_ends-CTokenizer] PASSED [ 15%] 125s tests/test_tokenizer.py::test_tokenizer[tags:invalid_template_ends-PyTokenizer] PASSED [ 15%] 125s tests/test_tokenizer.py::test_tokenizer[tags:invalid_template_ends_nospace-CTokenizer] PASSED [ 15%] 125s tests/test_tokenizer.py::test_tokenizer[tags:invalid_template_ends_nospace-PyTokenizer] PASSED [ 15%] 125s tests/test_tokenizer.py::test_tokenizer[tags:valid_template_end_open-CTokenizer] PASSED [ 15%] 125s tests/test_tokenizer.py::test_tokenizer[tags:valid_template_end_open-PyTokenizer] PASSED [ 15%] 125s tests/test_tokenizer.py::test_tokenizer[tags:valid_template_end_open_space_end_close-CTokenizer] PASSED [ 15%] 125s tests/test_tokenizer.py::test_tokenizer[tags:valid_template_end_open_space_end_close-PyTokenizer] PASSED [ 15%] 125s tests/test_tokenizer.py::test_tokenizer[tags:invalid_template_end_open_nospace-CTokenizer] PASSED [ 15%] 125s tests/test_tokenizer.py::test_tokenizer[tags:invalid_template_end_open_nospace-PyTokenizer] PASSED [ 15%] 125s tests/test_tokenizer.py::test_tokenizer[tags:invalid_template_start_close-CTokenizer] PASSED [ 15%] 125s tests/test_tokenizer.py::test_tokenizer[tags:invalid_template_start_close-PyTokenizer] PASSED [ 15%] 125s tests/test_tokenizer.py::test_tokenizer[tags:invalid_template_start_open-CTokenizer] PASSED [ 16%] 125s tests/test_tokenizer.py::test_tokenizer[tags:invalid_template_start_open-PyTokenizer] PASSED [ 16%] 125s tests/test_tokenizer.py::test_tokenizer[tags:unclosed_quote-CTokenizer] PASSED [ 16%] 125s tests/test_tokenizer.py::test_tokenizer[tags:unclosed_quote-PyTokenizer] PASSED [ 16%] 125s tests/test_tokenizer.py::test_tokenizer[tags:fake_quote-CTokenizer] PASSED [ 16%] 125s tests/test_tokenizer.py::test_tokenizer[tags:fake_quote-PyTokenizer] PASSED [ 16%] 125s tests/test_tokenizer.py::test_tokenizer[tags:fake_quote_complex-CTokenizer] PASSED [ 16%] 125s tests/test_tokenizer.py::test_tokenizer[tags:fake_quote_complex-PyTokenizer] PASSED [ 16%] 125s tests/test_tokenizer.py::test_tokenizer[tags:quotes_in_quotes-CTokenizer] PASSED [ 16%] 125s tests/test_tokenizer.py::test_tokenizer[tags:quotes_in_quotes-PyTokenizer] PASSED [ 16%] 125s tests/test_tokenizer.py::test_tokenizer[tags:quotes_in_quotes_2-CTokenizer] PASSED [ 16%] 125s tests/test_tokenizer.py::test_tokenizer[tags:quotes_in_quotes_2-PyTokenizer] PASSED [ 16%] 125s tests/test_tokenizer.py::test_tokenizer[tags:quotes_in_quotes_3-CTokenizer] PASSED [ 16%] 125s tests/test_tokenizer.py::test_tokenizer[tags:quotes_in_quotes_3-PyTokenizer] PASSED [ 16%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_lbracket-CTokenizer] PASSED [ 16%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_lbracket-PyTokenizer] PASSED [ 16%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_lbracket_junk-CTokenizer] PASSED [ 16%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_lbracket_junk-PyTokenizer] PASSED [ 16%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_unclosed_open-CTokenizer] PASSED [ 16%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_unclosed_open-PyTokenizer] PASSED [ 16%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_unclosed_open_space-CTokenizer] PASSED [ 17%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_unclosed_open_space-PyTokenizer] PASSED [ 17%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_unclosed_open_unnamed_attr-CTokenizer] PASSED [ 17%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_unclosed_open_unnamed_attr-PyTokenizer] PASSED [ 17%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_unclosed_open_attr_equals-CTokenizer] PASSED [ 17%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_unclosed_open_attr_equals-PyTokenizer] PASSED [ 17%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_unclosed_open_attr_equals_quoted-CTokenizer] PASSED [ 17%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_unclosed_open_attr_equals_quoted-PyTokenizer] PASSED [ 17%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_unclosed_open_attr-CTokenizer] PASSED [ 17%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_unclosed_open_attr-PyTokenizer] PASSED [ 17%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_unclosed_open_attr_quoted-CTokenizer] PASSED [ 17%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_unclosed_open_attr_quoted-PyTokenizer] PASSED [ 17%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_open-CTokenizer] PASSED [ 17%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_open-PyTokenizer] PASSED [ 17%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_open_unnamed_attr-CTokenizer] PASSED [ 17%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_open_unnamed_attr-PyTokenizer] PASSED [ 17%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_open_attr_equals-CTokenizer] PASSED [ 17%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_open_attr_equals-PyTokenizer] PASSED [ 17%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_open_attr-CTokenizer] PASSED [ 17%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_open_attr-PyTokenizer] PASSED [ 17%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_open_attr_quoted-CTokenizer] PASSED [ 18%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_open_attr_quoted-PyTokenizer] PASSED [ 18%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_open_text-CTokenizer] PASSED [ 18%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_open_text-PyTokenizer] PASSED [ 18%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_open_attr_text-CTokenizer] PASSED [ 18%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_open_attr_text-PyTokenizer] PASSED [ 18%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_open_text_lbracket-CTokenizer] PASSED [ 18%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_open_text_lbracket-PyTokenizer] PASSED [ 18%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_open_text_lbracket_slash-CTokenizer] PASSED [ 18%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_open_text_lbracket_slash-PyTokenizer] PASSED [ 18%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_open_text_unclosed_close-CTokenizer] PASSED [ 18%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_open_text_unclosed_close-PyTokenizer] PASSED [ 18%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_open_text_wrong_close-CTokenizer] PASSED [ 18%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_open_text_wrong_close-PyTokenizer] PASSED [ 18%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_unclosed_close-CTokenizer] PASSED [ 18%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_unclosed_close-PyTokenizer] PASSED [ 18%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_unclosed_close_text-CTokenizer] PASSED [ 18%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_unclosed_close_text-PyTokenizer] PASSED [ 18%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_close-CTokenizer] PASSED [ 18%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_close-PyTokenizer] PASSED [ 18%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_no_tag_name_open-CTokenizer] PASSED [ 19%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_no_tag_name_open-PyTokenizer] PASSED [ 19%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_no_tag_name_selfclosing-CTokenizer] PASSED [ 19%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_no_tag_name_selfclosing-PyTokenizer] PASSED [ 19%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_no_tag_name_open_close-CTokenizer] PASSED [ 19%] 125s tests/test_tokenizer.py::test_tokenizer[tags:incomplete_no_tag_name_open_close-PyTokenizer] PASSED [ 19%] 125s tests/test_tokenizer.py::test_tokenizer[tags:backslash_premature_before-CTokenizer] PASSED [ 19%] 125s tests/test_tokenizer.py::test_tokenizer[tags:backslash_premature_before-PyTokenizer] PASSED [ 19%] 125s tests/test_tokenizer.py::test_tokenizer[tags:backslash_premature_after-CTokenizer] PASSED [ 19%] 125s tests/test_tokenizer.py::test_tokenizer[tags:backslash_premature_after-PyTokenizer] PASSED [ 19%] 125s tests/test_tokenizer.py::test_tokenizer[tags:backslash_premature_middle-CTokenizer] PASSED [ 19%] 125s tests/test_tokenizer.py::test_tokenizer[tags:backslash_premature_middle-PyTokenizer] PASSED [ 19%] 125s tests/test_tokenizer.py::test_tokenizer[tags:backslash_adjacent-CTokenizer] PASSED [ 19%] 125s tests/test_tokenizer.py::test_tokenizer[tags:backslash_adjacent-PyTokenizer] PASSED [ 19%] 125s tests/test_tokenizer.py::test_tokenizer[tags:backslash_endquote-CTokenizer] PASSED [ 19%] 125s tests/test_tokenizer.py::test_tokenizer[tags:backslash_endquote-PyTokenizer] PASSED [ 19%] 125s tests/test_tokenizer.py::test_tokenizer[tags:backslash_double-CTokenizer] PASSED [ 19%] 125s tests/test_tokenizer.py::test_tokenizer[tags:backslash_double-PyTokenizer] PASSED [ 19%] 125s tests/test_tokenizer.py::test_tokenizer[tags:backslash_triple-CTokenizer] PASSED [ 19%] 125s tests/test_tokenizer.py::test_tokenizer[tags:backslash_triple-PyTokenizer] PASSED [ 19%] 125s tests/test_tokenizer.py::test_tokenizer[tags:backslash_unaffecting-CTokenizer] PASSED [ 20%] 125s tests/test_tokenizer.py::test_tokenizer[tags:backslash_unaffecting-PyTokenizer] PASSED [ 20%] 125s tests/test_tokenizer.py::test_tokenizer[tags:unparsable-CTokenizer] PASSED [ 20%] 125s tests/test_tokenizer.py::test_tokenizer[tags:unparsable-PyTokenizer] PASSED [ 20%] 125s tests/test_tokenizer.py::test_tokenizer[tags:unparsable_complex-CTokenizer] PASSED [ 20%] 125s tests/test_tokenizer.py::test_tokenizer[tags:unparsable_complex-PyTokenizer] PASSED [ 20%] 125s tests/test_tokenizer.py::test_tokenizer[tags:unparsable_attributed-CTokenizer] PASSED [ 20%] 125s tests/test_tokenizer.py::test_tokenizer[tags:unparsable_attributed-PyTokenizer] PASSED [ 20%] 125s tests/test_tokenizer.py::test_tokenizer[tags:unparsable_incomplete-CTokenizer] PASSED [ 20%] 125s tests/test_tokenizer.py::test_tokenizer[tags:unparsable_incomplete-PyTokenizer] PASSED [ 20%] 125s tests/test_tokenizer.py::test_tokenizer[tags:unparsable_entity-CTokenizer] PASSED [ 20%] 125s tests/test_tokenizer.py::test_tokenizer[tags:unparsable_entity-PyTokenizer] PASSED [ 20%] 125s tests/test_tokenizer.py::test_tokenizer[tags:unparsable_entity_incomplete-CTokenizer] PASSED [ 20%] 125s tests/test_tokenizer.py::test_tokenizer[tags:unparsable_entity_incomplete-PyTokenizer] PASSED [ 20%] 125s tests/test_tokenizer.py::test_tokenizer[tags:unparsable_entity_incomplete_2-CTokenizer] PASSED [ 20%] 125s tests/test_tokenizer.py::test_tokenizer[tags:unparsable_entity_incomplete_2-PyTokenizer] PASSED [ 20%] 125s tests/test_tokenizer.py::test_tokenizer[tags:single_open_close-CTokenizer] PASSED [ 20%] 125s tests/test_tokenizer.py::test_tokenizer[tags:single_open_close-PyTokenizer] PASSED [ 20%] 125s tests/test_tokenizer.py::test_tokenizer[tags:single_open-CTokenizer] PASSED [ 20%] 125s tests/test_tokenizer.py::test_tokenizer[tags:single_open-PyTokenizer] PASSED [ 20%] 125s tests/test_tokenizer.py::test_tokenizer[tags:single_selfclose-CTokenizer] PASSED [ 20%] 125s tests/test_tokenizer.py::test_tokenizer[tags:single_selfclose-PyTokenizer] PASSED [ 21%] 125s tests/test_tokenizer.py::test_tokenizer[tags:single_close-CTokenizer] PASSED [ 21%] 125s tests/test_tokenizer.py::test_tokenizer[tags:single_close-PyTokenizer] PASSED [ 21%] 125s tests/test_tokenizer.py::test_tokenizer[tags:single_only_open_close-CTokenizer] PASSED [ 21%] 125s tests/test_tokenizer.py::test_tokenizer[tags:single_only_open_close-PyTokenizer] PASSED [ 21%] 125s tests/test_tokenizer.py::test_tokenizer[tags:single_only_open-CTokenizer] PASSED [ 21%] 125s tests/test_tokenizer.py::test_tokenizer[tags:single_only_open-PyTokenizer] PASSED [ 21%] 125s tests/test_tokenizer.py::test_tokenizer[tags:single_only_selfclose-CTokenizer] PASSED [ 21%] 125s tests/test_tokenizer.py::test_tokenizer[tags:single_only_selfclose-PyTokenizer] PASSED [ 21%] 125s tests/test_tokenizer.py::test_tokenizer[tags:single_only_close-CTokenizer] PASSED [ 21%] 125s tests/test_tokenizer.py::test_tokenizer[tags:single_only_close-PyTokenizer] PASSED [ 21%] 125s tests/test_tokenizer.py::test_tokenizer[tags:single_only_double-CTokenizer] PASSED [ 21%] 125s tests/test_tokenizer.py::test_tokenizer[tags:single_only_double-PyTokenizer] PASSED [ 21%] 125s tests/test_tokenizer.py::test_tokenizer[tags:single_only_close_attribute-CTokenizer] PASSED [ 21%] 125s tests/test_tokenizer.py::test_tokenizer[tags:single_only_close_attribute-PyTokenizer] PASSED [ 21%] 125s tests/test_tokenizer.py::test_tokenizer[tags:capitalization-CTokenizer] PASSED [ 21%] 125s tests/test_tokenizer.py::test_tokenizer[tags:capitalization-PyTokenizer] PASSED [ 21%] 125s tests/test_tokenizer.py::test_tokenizer[tags:unparsable_incomplete_close-CTokenizer] PASSED [ 21%] 125s tests/test_tokenizer.py::test_tokenizer[tags:unparsable_incomplete_close-PyTokenizer] PASSED [ 21%] 125s tests/test_tokenizer.py::test_tokenizer[tags:unparsable_with_intermediates-CTokenizer] PASSED [ 21%] 125s tests/test_tokenizer.py::test_tokenizer[tags:unparsable_with_intermediates-PyTokenizer] PASSED [ 22%] 125s tests/test_tokenizer.py::test_tokenizer[tags:unparsable_with_intermediates_normalize-CTokenizer] PASSED [ 22%] 125s tests/test_tokenizer.py::test_tokenizer[tags:unparsable_with_intermediates_normalize-PyTokenizer] PASSED [ 22%] 125s tests/test_tokenizer.py::test_tokenizer[tags:non_ascii_open-CTokenizer] PASSED [ 22%] 125s tests/test_tokenizer.py::test_tokenizer[tags:non_ascii_open-PyTokenizer] PASSED [ 22%] 125s tests/test_tokenizer.py::test_tokenizer[tags:non_ascii_full-CTokenizer] PASSED [ 22%] 125s tests/test_tokenizer.py::test_tokenizer[tags:non_ascii_full-PyTokenizer] PASSED [ 22%] 125s tests/test_tokenizer.py::test_tokenizer[tags:single_nested_selfclosing-CTokenizer] PASSED [ 22%] 125s tests/test_tokenizer.py::test_tokenizer[tags:single_nested_selfclosing-PyTokenizer] PASSED [ 22%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:named-CTokenizer] PASSED [ 22%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:named-PyTokenizer] PASSED [ 22%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:numeric_decimal-CTokenizer] PASSED [ 22%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:numeric_decimal-PyTokenizer] PASSED [ 22%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:numeric_hexadecimal_x-CTokenizer] PASSED [ 22%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:numeric_hexadecimal_x-PyTokenizer] PASSED [ 22%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:numeric_hexadecimal_X-CTokenizer] PASSED [ 22%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:numeric_hexadecimal_X-PyTokenizer] PASSED [ 22%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:numeric_decimal_max-CTokenizer] PASSED [ 22%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:numeric_decimal_max-PyTokenizer] PASSED [ 22%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:numeric_hex_max-CTokenizer] PASSED [ 22%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:numeric_hex_max-PyTokenizer] PASSED [ 23%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:numeric_zeros-CTokenizer] PASSED [ 23%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:numeric_zeros-PyTokenizer] PASSED [ 23%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:numeric_hex_zeros-CTokenizer] PASSED [ 23%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:numeric_hex_zeros-PyTokenizer] PASSED [ 23%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_named_too_long-CTokenizer] PASSED [ 23%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_named_too_long-PyTokenizer] PASSED [ 23%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_named_undefined-CTokenizer] PASSED [ 23%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_named_undefined-PyTokenizer] PASSED [ 23%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_named_nonascii-CTokenizer] PASSED [ 23%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_named_nonascii-PyTokenizer] PASSED [ 23%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_numeric_out_of_range_1-CTokenizer] PASSED [ 23%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_numeric_out_of_range_1-PyTokenizer] PASSED [ 23%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_numeric_out_of_range_2-CTokenizer] PASSED [ 23%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_numeric_out_of_range_2-PyTokenizer] PASSED [ 23%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_numeric_out_of_range_3-CTokenizer] PASSED [ 23%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_numeric_out_of_range_3-PyTokenizer] PASSED [ 23%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_numeric_out_of_range_4-CTokenizer] PASSED [ 23%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_numeric_out_of_range_4-PyTokenizer] PASSED [ 23%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_partial_amp-CTokenizer] PASSED [ 23%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_partial_amp-PyTokenizer] PASSED [ 24%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_partial_amp_semicolon-CTokenizer] PASSED [ 24%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_partial_amp_semicolon-PyTokenizer] PASSED [ 24%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_partial_amp_pound-CTokenizer] PASSED [ 24%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_partial_amp_pound-PyTokenizer] PASSED [ 24%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_partial_amp_pound_x-CTokenizer] PASSED [ 24%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_partial_amp_pound_x-PyTokenizer] PASSED [ 24%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_partial_amp_pound_semicolon-CTokenizer] PASSED [ 24%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_partial_amp_pound_semicolon-PyTokenizer] PASSED [ 24%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_partial_amp_pound_x_semicolon0-CTokenizer] PASSED [ 24%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_partial_amp_pound_x_semicolon0-PyTokenizer] PASSED [ 24%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_partial_amp_pound_numbers-CTokenizer] PASSED [ 24%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_partial_amp_pound_numbers-PyTokenizer] PASSED [ 24%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_partial_amp_pound_x_semicolon1-CTokenizer] PASSED [ 24%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_partial_amp_pound_x_semicolon1-PyTokenizer] PASSED [ 24%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_zeros_before_named-CTokenizer] PASSED [ 24%] 125s tests/test_tokenizer.py::test_tokenizer[html_entities:invalid_zeros_before_named-PyTokenizer] PASSED [ 24%] 125s tests/test_tokenizer.py::test_tokenizer[headings:level_1-CTokenizer] PASSED [ 24%] 125s tests/test_tokenizer.py::test_tokenizer[headings:level_1-PyTokenizer] PASSED [ 24%] 125s tests/test_tokenizer.py::test_tokenizer[headings:level_2-CTokenizer] PASSED [ 24%] 125s tests/test_tokenizer.py::test_tokenizer[headings:level_2-PyTokenizer] PASSED [ 25%] 125s tests/test_tokenizer.py::test_tokenizer[headings:level_3-CTokenizer] PASSED [ 25%] 125s tests/test_tokenizer.py::test_tokenizer[headings:level_3-PyTokenizer] PASSED [ 25%] 125s tests/test_tokenizer.py::test_tokenizer[headings:level_4-CTokenizer] PASSED [ 25%] 125s tests/test_tokenizer.py::test_tokenizer[headings:level_4-PyTokenizer] PASSED [ 25%] 125s tests/test_tokenizer.py::test_tokenizer[headings:level_5-CTokenizer] PASSED [ 25%] 125s tests/test_tokenizer.py::test_tokenizer[headings:level_5-PyTokenizer] PASSED [ 25%] 125s tests/test_tokenizer.py::test_tokenizer[headings:level_6-CTokenizer] PASSED [ 25%] 125s tests/test_tokenizer.py::test_tokenizer[headings:level_6-PyTokenizer] PASSED [ 25%] 125s tests/test_tokenizer.py::test_tokenizer[headings:level_7-CTokenizer] PASSED [ 25%] 125s tests/test_tokenizer.py::test_tokenizer[headings:level_7-PyTokenizer] PASSED [ 25%] 125s tests/test_tokenizer.py::test_tokenizer[headings:level_3_2-CTokenizer] PASSED [ 25%] 125s tests/test_tokenizer.py::test_tokenizer[headings:level_3_2-PyTokenizer] PASSED [ 25%] 125s tests/test_tokenizer.py::test_tokenizer[headings:level_4_6-CTokenizer] PASSED [ 25%] 125s tests/test_tokenizer.py::test_tokenizer[headings:level_4_6-PyTokenizer] PASSED [ 25%] 125s tests/test_tokenizer.py::test_tokenizer[headings:newline_before-CTokenizer] PASSED [ 25%] 125s tests/test_tokenizer.py::test_tokenizer[headings:newline_before-PyTokenizer] PASSED [ 25%] 125s tests/test_tokenizer.py::test_tokenizer[headings:text_after-CTokenizer] PASSED [ 25%] 125s tests/test_tokenizer.py::test_tokenizer[headings:text_after-PyTokenizer] PASSED [ 25%] 125s tests/test_tokenizer.py::test_tokenizer[headings:invalid_text_before-CTokenizer] PASSED [ 25%] 125s tests/test_tokenizer.py::test_tokenizer[headings:invalid_text_before-PyTokenizer] PASSED [ 26%] 125s tests/test_tokenizer.py::test_tokenizer[headings:invalid_newline_middle-CTokenizer] PASSED [ 26%] 125s tests/test_tokenizer.py::test_tokenizer[headings:invalid_newline_middle-PyTokenizer] PASSED [ 26%] 125s tests/test_tokenizer.py::test_tokenizer[headings:invalid_newline_end-CTokenizer] PASSED [ 26%] 125s tests/test_tokenizer.py::test_tokenizer[headings:invalid_newline_end-PyTokenizer] PASSED [ 26%] 125s tests/test_tokenizer.py::test_tokenizer[headings:invalid_nesting-CTokenizer] PASSED [ 26%] 125s tests/test_tokenizer.py::test_tokenizer[headings:invalid_nesting-PyTokenizer] PASSED [ 26%] 125s tests/test_tokenizer.py::test_tokenizer[headings:incomplete-CTokenizer] PASSED [ 26%] 125s tests/test_tokenizer.py::test_tokenizer[headings:incomplete-PyTokenizer] PASSED [ 26%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:basic_italics-CTokenizer] PASSED [ 26%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:basic_italics-PyTokenizer] PASSED [ 26%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:basic_bold-CTokenizer] PASSED [ 26%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:basic_bold-PyTokenizer] PASSED [ 26%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:basic_ul-CTokenizer] PASSED [ 26%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:basic_ul-PyTokenizer] PASSED [ 26%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:basic_ol-CTokenizer] PASSED [ 26%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:basic_ol-PyTokenizer] PASSED [ 26%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:basic_dt-CTokenizer] PASSED [ 26%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:basic_dt-PyTokenizer] PASSED [ 26%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:basic_dd-CTokenizer] PASSED [ 26%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:basic_dd-PyTokenizer] PASSED [ 27%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:basic_hr-CTokenizer] PASSED [ 27%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:basic_hr-PyTokenizer] PASSED [ 27%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:complex_italics-CTokenizer] PASSED [ 27%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:complex_italics-PyTokenizer] PASSED [ 27%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:multiline_italics-CTokenizer] PASSED [ 27%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:multiline_italics-PyTokenizer] PASSED [ 27%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:unending_italics-CTokenizer] PASSED [ 27%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:unending_italics-PyTokenizer] PASSED [ 27%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:misleading_italics_end-CTokenizer] PASSED [ 27%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:misleading_italics_end-PyTokenizer] PASSED [ 27%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:italics_start_outside_end_inside-CTokenizer] PASSED [ 27%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:italics_start_outside_end_inside-PyTokenizer] PASSED [ 27%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:italics_start_inside_end_outside-CTokenizer] PASSED [ 27%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:italics_start_inside_end_outside-PyTokenizer] PASSED [ 27%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:complex_bold-CTokenizer] PASSED [ 27%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:complex_bold-PyTokenizer] PASSED [ 27%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:multiline_bold-CTokenizer] PASSED [ 27%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:multiline_bold-PyTokenizer] PASSED [ 27%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:unending_bold-CTokenizer] PASSED [ 27%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:unending_bold-PyTokenizer] PASSED [ 28%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:misleading_bold_end-CTokenizer] PASSED [ 28%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:misleading_bold_end-PyTokenizer] PASSED [ 28%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:bold_start_outside_end_inside-CTokenizer] PASSED [ 28%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:bold_start_outside_end_inside-PyTokenizer] PASSED [ 28%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:bold_start_inside_end_outside-CTokenizer] PASSED [ 28%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:bold_start_inside_end_outside-PyTokenizer] PASSED [ 28%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:bold_and_italics-CTokenizer] PASSED [ 28%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:bold_and_italics-PyTokenizer] PASSED [ 28%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:both_then_bold-CTokenizer] PASSED [ 28%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:both_then_bold-PyTokenizer] PASSED [ 28%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:both_then_italics-CTokenizer] PASSED [ 28%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:both_then_italics-PyTokenizer] PASSED [ 28%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:bold_then_both-CTokenizer] PASSED [ 28%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:bold_then_both-PyTokenizer] PASSED [ 28%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:italics_then_both-CTokenizer] PASSED [ 28%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:italics_then_both-PyTokenizer] PASSED [ 28%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:italics_then_bold-CTokenizer] PASSED [ 28%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:italics_then_bold-PyTokenizer] PASSED [ 28%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:bold_then_italics-CTokenizer] PASSED [ 28%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:bold_then_italics-PyTokenizer] PASSED [ 29%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:five_three-CTokenizer] PASSED [ 29%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:five_three-PyTokenizer] PASSED [ 29%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:five_two-CTokenizer] PASSED [ 29%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:five_two-PyTokenizer] PASSED [ 29%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:four-CTokenizer] PASSED [ 29%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:four-PyTokenizer] PASSED [ 29%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:four_two-CTokenizer] PASSED [ 29%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:four_two-PyTokenizer] PASSED [ 29%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:two_three-CTokenizer] PASSED [ 29%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:two_three-PyTokenizer] PASSED [ 29%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:two_four-CTokenizer] PASSED [ 29%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:two_four-PyTokenizer] PASSED [ 29%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:two_three_two-CTokenizer] PASSED [ 29%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:two_three_two-PyTokenizer] PASSED [ 29%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:two_four_four-CTokenizer] PASSED [ 29%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:two_four_four-PyTokenizer] PASSED [ 29%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:seven-CTokenizer] PASSED [ 29%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:seven-PyTokenizer] PASSED [ 29%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:unending_bold_and_italics-CTokenizer] PASSED [ 29%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:unending_bold_and_italics-PyTokenizer] PASSED [ 30%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:complex_ul-CTokenizer] PASSED [ 30%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:complex_ul-PyTokenizer] PASSED [ 30%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:ul_multiline_template-CTokenizer] PASSED [ 30%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:ul_multiline_template-PyTokenizer] PASSED [ 30%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:ul_adjacent-CTokenizer] PASSED [ 30%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:ul_adjacent-PyTokenizer] PASSED [ 30%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:ul_depths-CTokenizer] PASSED [ 30%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:ul_depths-PyTokenizer] PASSED [ 30%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:ul_space_before-CTokenizer] PASSED [ 30%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:ul_space_before-PyTokenizer] PASSED [ 30%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:ul_interruption-CTokenizer] PASSED [ 30%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:ul_interruption-PyTokenizer] PASSED [ 30%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:complex_ol-CTokenizer] PASSED [ 30%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:complex_ol-PyTokenizer] PASSED [ 30%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:ol_multiline_template-CTokenizer] PASSED [ 30%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:ol_multiline_template-PyTokenizer] PASSED [ 30%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:ol_adjacent-CTokenizer] PASSED [ 30%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:ol_adjacent-PyTokenizer] PASSED [ 30%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:ol_depths-CTokenizer] PASSED [ 30%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:ol_depths-PyTokenizer] PASSED [ 31%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:ol_space_before-CTokenizer] PASSED [ 31%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:ol_space_before-PyTokenizer] PASSED [ 31%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:ol_interruption-CTokenizer] PASSED [ 31%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:ol_interruption-PyTokenizer] PASSED [ 31%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:ul_ol_mix-CTokenizer] PASSED [ 31%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:ul_ol_mix-PyTokenizer] PASSED [ 31%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:complex_dt-CTokenizer] PASSED [ 31%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:complex_dt-PyTokenizer] PASSED [ 31%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dt_multiline_template-CTokenizer] PASSED [ 31%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dt_multiline_template-PyTokenizer] PASSED [ 31%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dt_adjacent-CTokenizer] PASSED [ 31%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dt_adjacent-PyTokenizer] PASSED [ 31%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dt_depths-CTokenizer] PASSED [ 31%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dt_depths-PyTokenizer] PASSED [ 31%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dt_space_before-CTokenizer] PASSED [ 31%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dt_space_before-PyTokenizer] PASSED [ 31%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dt_interruption-CTokenizer] PASSED [ 31%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dt_interruption-PyTokenizer] PASSED [ 31%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:complex_dd-CTokenizer] PASSED [ 31%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:complex_dd-PyTokenizer] PASSED [ 32%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dd_multiline_template-CTokenizer] PASSED [ 32%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dd_multiline_template-PyTokenizer] PASSED [ 32%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dd_adjacent-CTokenizer] PASSED [ 32%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dd_adjacent-PyTokenizer] PASSED [ 32%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dd_depths-CTokenizer] PASSED [ 32%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dd_depths-PyTokenizer] PASSED [ 32%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dd_space_before-CTokenizer] PASSED [ 32%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dd_space_before-PyTokenizer] PASSED [ 32%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dd_interruption-CTokenizer] PASSED [ 32%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dd_interruption-PyTokenizer] PASSED [ 32%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dt_dd_mix-CTokenizer] PASSED [ 32%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dt_dd_mix-PyTokenizer] PASSED [ 32%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dt_dd_mix2-CTokenizer] PASSED [ 32%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dt_dd_mix2-PyTokenizer] PASSED [ 32%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dt_dd_mix3-CTokenizer] PASSED [ 32%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dt_dd_mix3-PyTokenizer] PASSED [ 32%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dt_dd_mix4-CTokenizer] PASSED [ 32%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:dt_dd_mix4-PyTokenizer] PASSED [ 32%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:ul_ol_dt_dd_mix-CTokenizer] PASSED [ 32%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:ul_ol_dt_dd_mix-PyTokenizer] PASSED [ 33%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:hr_text_before-CTokenizer] PASSED [ 33%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:hr_text_before-PyTokenizer] PASSED [ 33%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:hr_text_after-CTokenizer] PASSED [ 33%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:hr_text_after-PyTokenizer] PASSED [ 33%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:hr_text_before_after-CTokenizer] PASSED [ 33%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:hr_text_before_after-PyTokenizer] PASSED [ 33%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:hr_newlines-CTokenizer] PASSED [ 33%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:hr_newlines-PyTokenizer] PASSED [ 33%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:hr_adjacent-CTokenizer] PASSED [ 33%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:hr_adjacent-PyTokenizer] PASSED [ 33%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:hr_adjacent_space-CTokenizer] PASSED [ 33%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:hr_adjacent_space-PyTokenizer] PASSED [ 33%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:hr_short-CTokenizer] PASSED [ 33%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:hr_short-PyTokenizer] PASSED [ 33%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:hr_long-CTokenizer] PASSED [ 33%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:hr_long-PyTokenizer] PASSED [ 33%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:hr_interruption_short-CTokenizer] PASSED [ 33%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:hr_interruption_short-PyTokenizer] PASSED [ 33%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:hr_interruption_long-CTokenizer] PASSED [ 33%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:hr_interruption_long-PyTokenizer] PASSED [ 34%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:nowiki_cancel-CTokenizer] PASSED [ 34%] 125s tests/test_tokenizer.py::test_tokenizer[tags_wikimarkup:nowiki_cancel-PyTokenizer] PASSED [ 34%] 125s tests/test_tokenizer.py::test_tokenizer[templates:no_params-CTokenizer] PASSED [ 34%] 125s tests/test_tokenizer.py::test_tokenizer[templates:no_params-PyTokenizer] PASSED [ 34%] 125s tests/test_tokenizer.py::test_tokenizer[templates:one_param_unnamed-CTokenizer] PASSED [ 34%] 125s tests/test_tokenizer.py::test_tokenizer[templates:one_param_unnamed-PyTokenizer] PASSED [ 34%] 125s tests/test_tokenizer.py::test_tokenizer[templates:one_param_named-CTokenizer] PASSED [ 34%] 125s tests/test_tokenizer.py::test_tokenizer[templates:one_param_named-PyTokenizer] PASSED [ 34%] 125s tests/test_tokenizer.py::test_tokenizer[templates:multiple_unnamed_params-CTokenizer] PASSED [ 34%] 125s tests/test_tokenizer.py::test_tokenizer[templates:multiple_unnamed_params-PyTokenizer] PASSED [ 34%] 125s tests/test_tokenizer.py::test_tokenizer[templates:multiple_named_params-CTokenizer] PASSED [ 34%] 125s tests/test_tokenizer.py::test_tokenizer[templates:multiple_named_params-PyTokenizer] PASSED [ 34%] 125s tests/test_tokenizer.py::test_tokenizer[templates:multiple_mixed_params-CTokenizer] PASSED [ 34%] 125s tests/test_tokenizer.py::test_tokenizer[templates:multiple_mixed_params-PyTokenizer] PASSED [ 34%] 125s tests/test_tokenizer.py::test_tokenizer[templates:multiple_mixed_params2-CTokenizer] PASSED [ 34%] 125s tests/test_tokenizer.py::test_tokenizer[templates:multiple_mixed_params2-PyTokenizer] PASSED [ 34%] 125s tests/test_tokenizer.py::test_tokenizer[templates:blank_params-CTokenizer] PASSED [ 34%] 125s tests/test_tokenizer.py::test_tokenizer[templates:blank_params-PyTokenizer] PASSED [ 34%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_unnamed_param-CTokenizer] PASSED [ 34%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_unnamed_param-PyTokenizer] PASSED [ 35%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_named_param_value-CTokenizer] PASSED [ 35%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_named_param_value-PyTokenizer] PASSED [ 35%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_named_param_name_and_value-CTokenizer] PASSED [ 35%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_named_param_name_and_value-PyTokenizer] PASSED [ 35%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_start-CTokenizer] PASSED [ 35%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_start-PyTokenizer] PASSED [ 35%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_start_unnamed_param-CTokenizer] PASSED [ 35%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_start_unnamed_param-PyTokenizer] PASSED [ 35%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_start_named_param_value-CTokenizer] PASSED [ 35%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_start_named_param_value-PyTokenizer] PASSED [ 35%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_start_named_param_name_and_value-CTokenizer] PASSED [ 35%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_start_named_param_name_and_value-PyTokenizer] PASSED [ 35%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_end-CTokenizer] PASSED [ 35%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_end-PyTokenizer] PASSED [ 35%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_end_unnamed_param-CTokenizer] PASSED [ 35%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_end_unnamed_param-PyTokenizer] PASSED [ 35%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_end_named_param_value-CTokenizer] PASSED [ 35%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_end_named_param_value-PyTokenizer] PASSED [ 35%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_end_named_param_name_and_value-CTokenizer] PASSED [ 35%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_end_named_param_name_and_value-PyTokenizer] PASSED [ 36%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_mid-CTokenizer] PASSED [ 36%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_mid-PyTokenizer] PASSED [ 36%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_mid_unnamed_param-CTokenizer] PASSED [ 36%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_mid_unnamed_param-PyTokenizer] PASSED [ 36%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_mid_named_param_value-CTokenizer] PASSED [ 36%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_mid_named_param_value-PyTokenizer] PASSED [ 36%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_mid_named_param_name_and_value-CTokenizer] PASSED [ 36%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_mid_named_param_name_and_value-PyTokenizer] PASSED [ 36%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_start_end-CTokenizer] PASSED [ 36%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_start_end-PyTokenizer] PASSED [ 36%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_start_end_unnamed_param-CTokenizer] PASSED [ 36%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_start_end_unnamed_param-PyTokenizer] PASSED [ 36%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_start_end_named_param_value-CTokenizer] PASSED [ 36%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_start_end_named_param_value-PyTokenizer] PASSED [ 36%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_start_end_named_param_name_and_value-CTokenizer] PASSED [ 36%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_name_start_end_named_param_name_and_value-PyTokenizer] PASSED [ 36%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_names_multiple-CTokenizer] PASSED [ 36%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_names_multiple-PyTokenizer] PASSED [ 36%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_names_multiple_unnamed_param-CTokenizer] PASSED [ 36%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_names_multiple_unnamed_param-PyTokenizer] PASSED [ 37%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_names_multiple_named_param_value-CTokenizer] PASSED [ 37%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_names_multiple_named_param_value-PyTokenizer] PASSED [ 37%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_names_multiple_named_param_name_and_value-CTokenizer] PASSED [ 37%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_names_multiple_named_param_name_and_value-PyTokenizer] PASSED [ 37%] 125s tests/test_tokenizer.py::test_tokenizer[templates:mixed_nested_templates-CTokenizer] PASSED [ 37%] 125s tests/test_tokenizer.py::test_tokenizer[templates:mixed_nested_templates-PyTokenizer] PASSED [ 37%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_two_args-CTokenizer] PASSED [ 37%] 125s tests/test_tokenizer.py::test_tokenizer[templates:nested_two_args-PyTokenizer] PASSED [ 37%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_start-CTokenizer] PASSED [ 37%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_start-PyTokenizer] PASSED [ 37%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_end-CTokenizer] PASSED [ 37%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_end-PyTokenizer] PASSED [ 37%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_start_end-CTokenizer] PASSED [ 37%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_start_end-PyTokenizer] PASSED [ 37%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_mid-CTokenizer] PASSED [ 37%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_mid-PyTokenizer] PASSED [ 37%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_start_mid-CTokenizer] PASSED [ 37%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_start_mid-PyTokenizer] PASSED [ 37%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_mid_end-CTokenizer] PASSED [ 37%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_mid_end-PyTokenizer] PASSED [ 38%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_start_mid_end-CTokenizer] PASSED [ 38%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_start_mid_end-PyTokenizer] PASSED [ 38%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_unnamed_param-CTokenizer] PASSED [ 38%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_unnamed_param-PyTokenizer] PASSED [ 38%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_enclose_template_name_unnamed_param-CTokenizer] PASSED [ 38%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_enclose_template_name_unnamed_param-PyTokenizer] PASSED [ 38%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_within_template_name_unnamed_param-CTokenizer] PASSED [ 38%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_within_template_name_unnamed_param-PyTokenizer] PASSED [ 38%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_enclose_template_name_named_param_value-CTokenizer] PASSED [ 38%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_enclose_template_name_named_param_value-PyTokenizer] PASSED [ 38%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_within_template_name_named_param_value-CTokenizer] PASSED [ 38%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_within_template_name_named_param_value-PyTokenizer] PASSED [ 38%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_named_param_name-CTokenizer] PASSED [ 38%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_named_param_name-PyTokenizer] PASSED [ 38%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_named_param_name_param_value-CTokenizer] PASSED [ 38%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_named_param_name_param_value-PyTokenizer] PASSED [ 38%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_enclose_template_name_named_param_name-CTokenizer] PASSED [ 38%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_enclose_template_name_named_param_name-PyTokenizer] PASSED [ 38%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_enclose_template_name_named_param_name_param_value-CTokenizer] PASSED [ 38%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_enclose_template_name_named_param_name_param_value-PyTokenizer] PASSED [ 39%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_within_template_name_named_param_name-CTokenizer] PASSED [ 39%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_within_template_name_named_param_name-PyTokenizer] PASSED [ 39%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_within_template_name_named_param_name_param_value-CTokenizer] PASSED [ 39%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_within_template_name_named_param_name_param_value-PyTokenizer] PASSED [ 39%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_wildcard-CTokenizer] PASSED [ 39%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_wildcard-PyTokenizer] PASSED [ 39%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_wildcard_redux-CTokenizer] PASSED [ 39%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_wildcard_redux-PyTokenizer] PASSED [ 39%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_wildcard_redux_invalid-CTokenizer] PASSED [ 39%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_wildcard_redux_invalid-PyTokenizer] PASSED [ 39%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_spaces-CTokenizer] PASSED [ 39%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_spaces-PyTokenizer] PASSED [ 39%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_spaces_param-CTokenizer] PASSED [ 39%] 125s tests/test_tokenizer.py::test_tokenizer[templates:newlines_spaces_param-PyTokenizer] PASSED [ 39%] 125s tests/test_tokenizer.py::test_tokenizer[templates:invalid_blank-CTokenizer] PASSED [ 39%] 125s tests/test_tokenizer.py::test_tokenizer[templates:invalid_blank-PyTokenizer] PASSED [ 39%] 125s tests/test_tokenizer.py::test_tokenizer[templates:invalid_blank_whitespace-CTokenizer] PASSED [ 39%] 125s tests/test_tokenizer.py::test_tokenizer[templates:invalid_blank_whitespace-PyTokenizer] PASSED [ 39%] 125s tests/test_tokenizer.py::test_tokenizer[templates:invalid_blank_pipe-CTokenizer] PASSED [ 39%] 125s tests/test_tokenizer.py::test_tokenizer[templates:invalid_blank_pipe-PyTokenizer] PASSED [ 40%] 125s tests/test_tokenizer.py::test_tokenizer[templates:invalid_blank_whitespace_pipe-CTokenizer] PASSED [ 40%] 125s tests/test_tokenizer.py::test_tokenizer[templates:invalid_blank_whitespace_pipe-PyTokenizer] PASSED [ 40%] 125s tests/test_tokenizer.py::test_tokenizer[templates:invalid_name_left_brace_middle-CTokenizer] PASSED [ 40%] 125s tests/test_tokenizer.py::test_tokenizer[templates:invalid_name_left_brace_middle-PyTokenizer] PASSED [ 40%] 125s tests/test_tokenizer.py::test_tokenizer[templates:invalid_name_right_brace_middle-CTokenizer] PASSED [ 40%] 125s tests/test_tokenizer.py::test_tokenizer[templates:invalid_name_right_brace_middle-PyTokenizer] PASSED [ 40%] 125s tests/test_tokenizer.py::test_tokenizer[templates:invalid_name_left_braces-CTokenizer] PASSED [ 40%] 125s tests/test_tokenizer.py::test_tokenizer[templates:invalid_name_left_braces-PyTokenizer] PASSED [ 40%] 125s tests/test_tokenizer.py::test_tokenizer[templates:invalid_name_left_bracket_middle-CTokenizer] PASSED [ 40%] 125s tests/test_tokenizer.py::test_tokenizer[templates:invalid_name_left_bracket_middle-PyTokenizer] PASSED [ 40%] 125s tests/test_tokenizer.py::test_tokenizer[templates:invalid_name_right_bracket_middle-CTokenizer] PASSED [ 40%] 125s tests/test_tokenizer.py::test_tokenizer[templates:invalid_name_right_bracket_middle-PyTokenizer] PASSED [ 40%] 125s tests/test_tokenizer.py::test_tokenizer[templates:invalid_name_left_bracket_start-CTokenizer] PASSED [ 40%] 125s tests/test_tokenizer.py::test_tokenizer[templates:invalid_name_left_bracket_start-PyTokenizer] PASSED [ 40%] 125s tests/test_tokenizer.py::test_tokenizer[templates:invalid_name_right_bracket_start-CTokenizer] PASSED [ 40%] 125s tests/test_tokenizer.py::test_tokenizer[templates:invalid_name_right_bracket_start-PyTokenizer] PASSED [ 40%] 125s tests/test_tokenizer.py::test_tokenizer[templates:valid_name_left_brace_start-CTokenizer] PASSED [ 40%] 125s tests/test_tokenizer.py::test_tokenizer[templates:valid_name_left_brace_start-PyTokenizer] PASSED [ 40%] 125s tests/test_tokenizer.py::test_tokenizer[templates:valid_unnamed_param_left_brace-CTokenizer] PASSED [ 40%] 125s tests/test_tokenizer.py::test_tokenizer[templates:valid_unnamed_param_left_brace-PyTokenizer] PASSED [ 40%] 125s tests/test_tokenizer.py::test_tokenizer[templates:valid_unnamed_param_braces-CTokenizer] PASSED [ 41%] 125s tests/test_tokenizer.py::test_tokenizer[templates:valid_unnamed_param_braces-PyTokenizer] PASSED [ 41%] 125s tests/test_tokenizer.py::test_tokenizer[templates:valid_param_name_braces-CTokenizer] PASSED [ 41%] 125s tests/test_tokenizer.py::test_tokenizer[templates:valid_param_name_braces-PyTokenizer] PASSED [ 41%] 125s tests/test_tokenizer.py::test_tokenizer[templates:valid_param_name_brackets-CTokenizer] PASSED [ 41%] 125s tests/test_tokenizer.py::test_tokenizer[templates:valid_param_name_brackets-PyTokenizer] PASSED [ 41%] 125s tests/test_tokenizer.py::test_tokenizer[templates:valid_param_name_double_left_brackets-CTokenizer] PASSED [ 41%] 125s tests/test_tokenizer.py::test_tokenizer[templates:valid_param_name_double_left_brackets-PyTokenizer] PASSED [ 41%] 125s tests/test_tokenizer.py::test_tokenizer[templates:valid_param_name_double_right_brackets-CTokenizer] PASSED [ 41%] 125s tests/test_tokenizer.py::test_tokenizer[templates:valid_param_name_double_right_brackets-PyTokenizer] PASSED [ 41%] 125s tests/test_tokenizer.py::test_tokenizer[templates:valid_param_name_double_brackets-CTokenizer] PASSED [ 41%] 125s tests/test_tokenizer.py::test_tokenizer[templates:valid_param_name_double_brackets-PyTokenizer] PASSED [ 41%] 125s tests/test_tokenizer.py::test_tokenizer[templates:invalid_param_name_double_left_braces-CTokenizer] PASSED [ 41%] 125s tests/test_tokenizer.py::test_tokenizer[templates:invalid_param_name_double_left_braces-PyTokenizer] PASSED [ 41%] 125s tests/test_tokenizer.py::test_tokenizer[templates:invalid_param_name_double_braces-CTokenizer] PASSED [ 41%] 125s tests/test_tokenizer.py::test_tokenizer[templates:invalid_param_name_double_braces-PyTokenizer] PASSED [ 41%] 125s tests/test_tokenizer.py::test_tokenizer[templates:invalid_left_angle_bracket-CTokenizer] PASSED [ 41%] 125s tests/test_tokenizer.py::test_tokenizer[templates:invalid_left_angle_bracket-PyTokenizer] PASSED [ 41%] 125s tests/test_tokenizer.py::test_tokenizer[templates:invalid_right_angle_bracket-CTokenizer] PASSED [ 41%] 125s tests/test_tokenizer.py::test_tokenizer[templates:invalid_right_angle_bracket-PyTokenizer] PASSED [ 41%] 125s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_stub-CTokenizer] PASSED [ 42%] 125s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_stub-PyTokenizer] PASSED [ 42%] 125s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_plain-CTokenizer] PASSED [ 42%] 125s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_plain-PyTokenizer] PASSED [ 42%] 125s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_right_brace-CTokenizer] PASSED [ 42%] 125s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_right_brace-PyTokenizer] PASSED [ 42%] 125s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_pipe-CTokenizer] PASSED [ 42%] 125s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_pipe-PyTokenizer] PASSED [ 42%] 125s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_unnamed_param-CTokenizer] PASSED [ 42%] 125s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_unnamed_param-PyTokenizer] PASSED [ 42%] 125s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_unnamed_param_pipe-CTokenizer] PASSED [ 42%] 125s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_unnamed_param_pipe-PyTokenizer] PASSED [ 42%] 125s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_valueless_param-CTokenizer] PASSED [ 42%] 125s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_valueless_param-PyTokenizer] PASSED [ 42%] 125s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_valueless_param_pipe-CTokenizer] PASSED [ 42%] 125s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_valueless_param_pipe-PyTokenizer] PASSED [ 42%] 125s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_named_param-CTokenizer] PASSED [ 42%] 125s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_named_param-PyTokenizer] PASSED [ 42%] 125s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_named_param_pipe-CTokenizer] PASSED [ 42%] 125s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_named_param_pipe-PyTokenizer] PASSED [ 42%] 125s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_two_unnamed_params-CTokenizer] PASSED [ 43%] 125s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_two_unnamed_params-PyTokenizer] PASSED [ 43%] 125s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_unnamed_param_valueless_param-CTokenizer] PASSED [ 43%] 125s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_unnamed_param_valueless_param-PyTokenizer] PASSED [ 43%] 125s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_unnamed_param_named_param-CTokenizer] PASSED [ 43%] 125s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_unnamed_param_named_param-PyTokenizer] PASSED [ 43%] 125s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_named_param_unnamed_param-CTokenizer] PASSED [ 43%] 125s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_named_param_unnamed_param-PyTokenizer] PASSED [ 43%] 125s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_named_param_valueless_param-CTokenizer] PASSED [ 43%] 125s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_named_param_valueless_param-PyTokenizer] PASSED [ 43%] 125s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_two_named_params-CTokenizer] PASSED [ 43%] 125s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_two_named_params-PyTokenizer] PASSED [ 43%] 125s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_nested_template_as_unnamed_param-CTokenizer] PASSED [ 43%] 125s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_nested_template_as_unnamed_param-PyTokenizer] PASSED [ 43%] 125s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_nested_template_as_param_value-CTokenizer] PASSED [ 43%] 125s tests/test_tokenizer.py::test_tokenizer[templates:incomplete_nested_template_as_param_value-PyTokenizer] PASSED [ 43%] 125s tests/test_tokenizer.py::test_tokenizer[templates:recursion_five_hundred_opens-CTokenizer] PASSED [ 43%] 125s tests/test_tokenizer.py::test_tokenizer[templates:recursion_five_hundred_opens-PyTokenizer] PASSED [ 43%] 125s tests/test_tokenizer.py::test_tokenizer[templates:recursion_one_hundred_opens-CTokenizer] PASSED [ 43%] 125s tests/test_tokenizer.py::test_tokenizer[templates:recursion_one_hundred_opens-PyTokenizer] PASSED [ 43%] 125s tests/test_tokenizer.py::test_tokenizer[templates:recursion_opens_and_closes-CTokenizer] PASSED [ 44%] 125s tests/test_tokenizer.py::test_tokenizer[templates:recursion_opens_and_closes-PyTokenizer] PASSED [ 44%] 125s tests/test_tokenizer.py::test_tokenizer[templates:invalid_section_level_1-CTokenizer] PASSED [ 44%] 125s tests/test_tokenizer.py::test_tokenizer[templates:invalid_section_level_1-PyTokenizer] PASSED [ 44%] 125s tests/test_tokenizer.py::test_tokenizer[templates:section_level_2-CTokenizer] PASSED [ 44%] 125s tests/test_tokenizer.py::test_tokenizer[templates:section_level_2-PyTokenizer] PASSED [ 44%] 125s tests/test_tokenizer.py::test_tokenizer[templates:invalid_section_level_2-CTokenizer] PASSED [ 44%] 125s tests/test_tokenizer.py::test_tokenizer[templates:invalid_section_level_2-PyTokenizer] PASSED [ 44%] 125s tests/test_tokenizer.py::test_tokenizer[templates:section_level_2_after_template_parameter-CTokenizer] PASSED [ 44%] 125s tests/test_tokenizer.py::test_tokenizer[templates:section_level_2_after_template_parameter-PyTokenizer] PASSED [ 44%] 125s tests/test_tokenizer.py::test_tokenizer[text:basic-CTokenizer] PASSED [ 44%] 125s tests/test_tokenizer.py::test_tokenizer[text:basic-PyTokenizer] PASSED [ 44%] 125s tests/test_tokenizer.py::test_tokenizer[text:newlines-CTokenizer] PASSED [ 44%] 125s tests/test_tokenizer.py::test_tokenizer[text:newlines-PyTokenizer] PASSED [ 44%] 125s tests/test_tokenizer.py::test_tokenizer[text:unicode-CTokenizer] PASSED [ 44%] 125s tests/test_tokenizer.py::test_tokenizer[text:unicode-PyTokenizer] PASSED [ 44%] 125s tests/test_tokenizer.py::test_tokenizer[text:unicode2-CTokenizer] PASSED [ 44%] 125s tests/test_tokenizer.py::test_tokenizer[text:unicode2-PyTokenizer] PASSED [ 44%] 125s tests/test_tokenizer.py::test_tokenizer[text:large-CTokenizer] PASSED [ 44%] 125s tests/test_tokenizer.py::test_tokenizer[text:large-PyTokenizer] PASSED [ 44%] 125s tests/test_tokenizer.py::test_tokenizer[tables:empty_table-CTokenizer] PASSED [ 45%] 125s tests/test_tokenizer.py::test_tokenizer[tables:empty_table-PyTokenizer] PASSED [ 45%] 125s tests/test_tokenizer.py::test_tokenizer[tables:inline_table-CTokenizer] PASSED [ 45%] 125s tests/test_tokenizer.py::test_tokenizer[tables:inline_table-PyTokenizer] PASSED [ 45%] 125s tests/test_tokenizer.py::test_tokenizer[tables:no_table_close_simple-CTokenizer] PASSED [ 45%] 125s tests/test_tokenizer.py::test_tokenizer[tables:no_table_close_simple-PyTokenizer] PASSED [ 45%] 125s tests/test_tokenizer.py::test_tokenizer[tables:no_table_close_newline-CTokenizer] PASSED [ 45%] 125s tests/test_tokenizer.py::test_tokenizer[tables:no_table_close_newline-PyTokenizer] PASSED [ 45%] 125s tests/test_tokenizer.py::test_tokenizer[tables:no_table_close_inside_cell-CTokenizer] PASSED [ 45%] 125s tests/test_tokenizer.py::test_tokenizer[tables:no_table_close_inside_cell-PyTokenizer] PASSED [ 45%] 125s tests/test_tokenizer.py::test_tokenizer[tables:no_table_close_inside_cell_after_newline-CTokenizer] PASSED [ 45%] 125s tests/test_tokenizer.py::test_tokenizer[tables:no_table_close_inside_cell_after_newline-PyTokenizer] PASSED [ 45%] 125s tests/test_tokenizer.py::test_tokenizer[tables:no_table_close_inside_cell_with_attributes-CTokenizer] PASSED [ 45%] 125s tests/test_tokenizer.py::test_tokenizer[tables:no_table_close_inside_cell_with_attributes-PyTokenizer] PASSED [ 45%] 125s tests/test_tokenizer.py::test_tokenizer[tables:no_table_close_inside_row-CTokenizer] PASSED [ 45%] 125s tests/test_tokenizer.py::test_tokenizer[tables:no_table_close_inside_row-PyTokenizer] PASSED [ 45%] 125s tests/test_tokenizer.py::test_tokenizer[tables:no_table_close_inside_row_after_newline-CTokenizer] PASSED [ 45%] 125s tests/test_tokenizer.py::test_tokenizer[tables:no_table_close_inside_row_after_newline-PyTokenizer] PASSED [ 45%] 125s tests/test_tokenizer.py::test_tokenizer[tables:no_table_close_row_and_cell-CTokenizer] PASSED [ 45%] 125s tests/test_tokenizer.py::test_tokenizer[tables:no_table_close_row_and_cell-PyTokenizer] PASSED [ 45%] 125s tests/test_tokenizer.py::test_tokenizer[tables:no_table_close_attributes-CTokenizer] PASSED [ 46%] 125s tests/test_tokenizer.py::test_tokenizer[tables:no_table_close_attributes-PyTokenizer] PASSED [ 46%] 125s tests/test_tokenizer.py::test_tokenizer[tables:no_table_close_unclosed_attributes-CTokenizer] PASSED [ 46%] 125s tests/test_tokenizer.py::test_tokenizer[tables:no_table_close_unclosed_attributes-PyTokenizer] PASSED [ 46%] 125s tests/test_tokenizer.py::test_tokenizer[tables:no_table_close_row_attributes-CTokenizer] PASSED [ 46%] 125s tests/test_tokenizer.py::test_tokenizer[tables:no_table_close_row_attributes-PyTokenizer] PASSED [ 46%] 125s tests/test_tokenizer.py::test_tokenizer[tables:no_table_close_cell-CTokenizer] PASSED [ 46%] 125s tests/test_tokenizer.py::test_tokenizer[tables:no_table_close_cell-PyTokenizer] PASSED [ 46%] 125s tests/test_tokenizer.py::test_tokenizer[tables:crazy_no_table_close-CTokenizer] PASSED [ 46%] 125s tests/test_tokenizer.py::test_tokenizer[tables:crazy_no_table_close-PyTokenizer] PASSED [ 46%] 125s tests/test_tokenizer.py::test_tokenizer[tables:leading_whitespace_table-CTokenizer] PASSED [ 46%] 125s tests/test_tokenizer.py::test_tokenizer[tables:leading_whitespace_table-PyTokenizer] PASSED [ 46%] 125s tests/test_tokenizer.py::test_tokenizer[tables:whitespace_after_table-CTokenizer] PASSED [ 46%] 125s tests/test_tokenizer.py::test_tokenizer[tables:whitespace_after_table-PyTokenizer] PASSED [ 46%] 125s tests/test_tokenizer.py::test_tokenizer[tables:different_whitespace_after_table-CTokenizer] PASSED [ 46%] 125s tests/test_tokenizer.py::test_tokenizer[tables:different_whitespace_after_table-PyTokenizer] PASSED [ 46%] 125s tests/test_tokenizer.py::test_tokenizer[tables:characters_after_table-CTokenizer] PASSED [ 46%] 125s tests/test_tokenizer.py::test_tokenizer[tables:characters_after_table-PyTokenizer] PASSED [ 46%] 125s tests/test_tokenizer.py::test_tokenizer[tables:characters_after_inline_table-CTokenizer] PASSED [ 46%] 125s tests/test_tokenizer.py::test_tokenizer[tables:characters_after_inline_table-PyTokenizer] PASSED [ 46%] 125s tests/test_tokenizer.py::test_tokenizer[tables:leading_characters_table-CTokenizer] PASSED [ 47%] 125s tests/test_tokenizer.py::test_tokenizer[tables:leading_characters_table-PyTokenizer] PASSED [ 47%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_row_simple-CTokenizer] PASSED [ 47%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_row_simple-PyTokenizer] PASSED [ 47%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_row_multiple-CTokenizer] PASSED [ 47%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_row_multiple-PyTokenizer] PASSED [ 47%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_simple-CTokenizer] PASSED [ 47%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_simple-PyTokenizer] PASSED [ 47%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_inline-CTokenizer] PASSED [ 47%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_inline-PyTokenizer] PASSED [ 47%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_multiple-CTokenizer] PASSED [ 47%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_multiple-PyTokenizer] PASSED [ 47%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_header_simple-CTokenizer] PASSED [ 47%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_header_simple-PyTokenizer] PASSED [ 47%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_header_inline-CTokenizer] PASSED [ 47%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_header_inline-PyTokenizer] PASSED [ 47%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_header_multiple-CTokenizer] PASSED [ 47%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_header_multiple-PyTokenizer] PASSED [ 47%] 125s tests/test_tokenizer.py::test_tokenizer[tables:nested_cells_and_rows-CTokenizer] PASSED [ 47%] 125s tests/test_tokenizer.py::test_tokenizer[tables:nested_cells_and_rows-PyTokenizer] PASSED [ 47%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_fake_close-CTokenizer] PASSED [ 48%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_fake_close-PyTokenizer] PASSED [ 48%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_more_fake_close-CTokenizer] PASSED [ 48%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_more_fake_close-PyTokenizer] PASSED [ 48%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_extra_close-CTokenizer] PASSED [ 48%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_extra_close-PyTokenizer] PASSED [ 48%] 125s tests/test_tokenizer.py::test_tokenizer[tables:nowiki_inside_table-CTokenizer] PASSED [ 48%] 125s tests/test_tokenizer.py::test_tokenizer[tables:nowiki_inside_table-PyTokenizer] PASSED [ 48%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_text_outside_cell-CTokenizer] PASSED [ 48%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_text_outside_cell-PyTokenizer] PASSED [ 48%] 125s tests/test_tokenizer.py::test_tokenizer[tables:no_table_cell_with_leading_characters-CTokenizer] PASSED [ 48%] 125s tests/test_tokenizer.py::test_tokenizer[tables:no_table_cell_with_leading_characters-PyTokenizer] PASSED [ 48%] 125s tests/test_tokenizer.py::test_tokenizer[tables:no_table_row_with_leading_characters-CTokenizer] PASSED [ 48%] 125s tests/test_tokenizer.py::test_tokenizer[tables:no_table_row_with_leading_characters-PyTokenizer] PASSED [ 48%] 125s tests/test_tokenizer.py::test_tokenizer[tables:template_inside_table_cell-CTokenizer] PASSED [ 48%] 125s tests/test_tokenizer.py::test_tokenizer[tables:template_inside_table_cell-PyTokenizer] PASSED [ 48%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_attributes-CTokenizer] PASSED [ 48%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_attributes-PyTokenizer] PASSED [ 48%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_empty_attributes-CTokenizer] PASSED [ 48%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_empty_attributes-PyTokenizer] PASSED [ 48%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_with_dash-CTokenizer] PASSED [ 49%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_with_dash-PyTokenizer] PASSED [ 49%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_attributes_quote_with_pipe-CTokenizer] PASSED [ 49%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_attributes_quote_with_pipe-PyTokenizer] PASSED [ 49%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_attributes_name_with_pipe-CTokenizer] PASSED [ 49%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_attributes_name_with_pipe-PyTokenizer] PASSED [ 49%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_attributes_pipe_after_equals-CTokenizer] PASSED [ 49%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_attributes_pipe_after_equals-PyTokenizer] PASSED [ 49%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_attributes_templates-CTokenizer] PASSED [ 49%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_cell_attributes_templates-PyTokenizer] PASSED [ 49%] 125s tests/test_tokenizer.py::test_tokenizer[tables:header_cell_attributes-CTokenizer] PASSED [ 49%] 125s tests/test_tokenizer.py::test_tokenizer[tables:header_cell_attributes-PyTokenizer] PASSED [ 49%] 125s tests/test_tokenizer.py::test_tokenizer[tables:inline_cell_attributes-CTokenizer] PASSED [ 49%] 125s tests/test_tokenizer.py::test_tokenizer[tables:inline_cell_attributes-PyTokenizer] PASSED [ 49%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_row_attributes-CTokenizer] PASSED [ 49%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_row_attributes-PyTokenizer] PASSED [ 49%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_row_attributes_crazy_whitespace-CTokenizer] PASSED [ 49%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_row_attributes_crazy_whitespace-PyTokenizer] PASSED [ 49%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_attributes-CTokenizer] PASSED [ 49%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_attributes-PyTokenizer] PASSED [ 49%] 125s tests/test_tokenizer.py::test_tokenizer[tables:inline_table_attributes-CTokenizer] PASSED [ 50%] 125s tests/test_tokenizer.py::test_tokenizer[tables:inline_table_attributes-PyTokenizer] PASSED [ 50%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_incorrect_attributes-CTokenizer] PASSED [ 50%] 125s tests/test_tokenizer.py::test_tokenizer[tables:table_incorrect_attributes-PyTokenizer] PASSED [ 50%] 125s tests/test_tokenizer.py::test_tokenizer[tables:templates_in_table_attribute-CTokenizer] PASSED [ 50%] 125s tests/test_tokenizer.py::test_tokenizer[tables:templates_in_table_attribute-PyTokenizer] PASSED [ 50%] 125s tests/test_tokenizer.py::test_tokenizer[tables:templates_in_table_attribute_2-CTokenizer] PASSED [ 50%] 125s tests/test_tokenizer.py::test_tokenizer[tables:templates_in_table_attribute_2-PyTokenizer] PASSED [ 50%] 125s tests/test_tokenizer.py::test_tokenizer[tables:inappropriate_marker_at_line_start-CTokenizer] PASSED [ 50%] 125s tests/test_tokenizer.py::test_tokenizer[tables:inappropriate_marker_at_line_start-PyTokenizer] PASSED [ 50%] 125s tests/test_tokenizer.py::test_tokenizer[tables:fake_close_near_start-CTokenizer] PASSED [ 50%] 125s tests/test_tokenizer.py::test_tokenizer[tables:fake_close_near_start-PyTokenizer] PASSED [ 50%] 125s tests/test_tokenizer.py::test_tokenizer[tables:fake_close_near_start_2-CTokenizer] PASSED [ 50%] 125s tests/test_tokenizer.py::test_tokenizer[tables:fake_close_near_start_2-PyTokenizer] PASSED [ 50%] 125s tests/test_tokenizer.py::test_tokenizer[tables:junk_after_table_start-CTokenizer] PASSED [ 50%] 125s tests/test_tokenizer.py::test_tokenizer[tables:junk_after_table_start-PyTokenizer] PASSED [ 50%] 125s tests/test_tokenizer.py::test_tokenizer[tables:junk_after_table_row-CTokenizer] PASSED [ 50%] 125s tests/test_tokenizer.py::test_tokenizer[tables:junk_after_table_row-PyTokenizer] PASSED [ 50%] 125s tests/test_tokenizer.py::test_tokenizer[tables:incomplete_nested_open_only-CTokenizer] PASSED [ 50%] 125s tests/test_tokenizer.py::test_tokenizer[tables:incomplete_nested_open_only-PyTokenizer] PASSED [ 50%] 125s tests/test_tokenizer.py::test_tokenizer[tables:incomplete_nested_open_and_row-CTokenizer] PASSED [ 51%] 125s tests/test_tokenizer.py::test_tokenizer[tables:incomplete_nested_open_and_row-PyTokenizer] PASSED [ 51%] 125s tests/test_tokenizer.py::test_tokenizer[comments:blank-CTokenizer] PASSED [ 51%] 125s tests/test_tokenizer.py::test_tokenizer[comments:blank-PyTokenizer] PASSED [ 51%] 125s tests/test_tokenizer.py::test_tokenizer[comments:basic-CTokenizer] PASSED [ 51%] 125s tests/test_tokenizer.py::test_tokenizer[comments:basic-PyTokenizer] PASSED [ 51%] 125s tests/test_tokenizer.py::test_tokenizer[comments:tons_of_nonsense-CTokenizer] PASSED [ 51%] 125s tests/test_tokenizer.py::test_tokenizer[comments:tons_of_nonsense-PyTokenizer] PASSED [ 51%] 125s tests/test_tokenizer.py::test_tokenizer[comments:incomplete_blank-CTokenizer] PASSED [ 51%] 125s tests/test_tokenizer.py::test_tokenizer[comments:incomplete_blank-PyTokenizer] PASSED [ 51%] 125s tests/test_tokenizer.py::test_tokenizer[comments:incomplete_text-CTokenizer] PASSED [ 51%] 125s tests/test_tokenizer.py::test_tokenizer[comments:incomplete_text-PyTokenizer] PASSED [ 51%] 125s tests/test_tokenizer.py::test_tokenizer[comments:incomplete_partial_close-CTokenizer] PASSED [ 51%] 125s tests/test_tokenizer.py::test_tokenizer[comments:incomplete_partial_close-PyTokenizer] PASSED [ 51%] 125s tests/test_tokenizer.py::test_tokenizer[comments:incomplete_part_only-CTokenizer] PASSED [ 51%] 125s tests/test_tokenizer.py::test_tokenizer[comments:incomplete_part_only-PyTokenizer] PASSED [ 51%] 125s tests/test_tokenizer.py::test_tokenizer[external_links:basic-CTokenizer] PASSED [ 51%] 125s tests/test_tokenizer.py::test_tokenizer[external_links:basic-PyTokenizer] PASSED [ 51%] 125s tests/test_tokenizer.py::test_tokenizer[external_links:basic_brackets-CTokenizer] PASSED [ 51%] 125s tests/test_tokenizer.py::test_tokenizer[external_links:basic_brackets-PyTokenizer] PASSED [ 51%] 125s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_space-CTokenizer] PASSED [ 52%] 125s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_space-PyTokenizer] PASSED [ 52%] 125s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_title-CTokenizer] PASSED [ 52%] 125s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_title-PyTokenizer] PASSED [ 52%] 125s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_multiword_title-CTokenizer] PASSED [ 52%] 125s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_multiword_title-PyTokenizer] PASSED [ 52%] 125s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_adjacent-CTokenizer] PASSED [ 52%] 125s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_adjacent-PyTokenizer] PASSED [ 52%] 125s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_newline_before-CTokenizer] PASSED [ 52%] 125s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_newline_before-PyTokenizer] PASSED [ 52%] 125s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_newline_inside-CTokenizer] PASSED [ 52%] 125s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_newline_inside-PyTokenizer] PASSED [ 52%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_newline_after-CTokenizer] PASSED [ 52%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_newline_after-PyTokenizer] PASSED [ 52%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_space_before-CTokenizer] PASSED [ 52%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_space_before-PyTokenizer] PASSED [ 52%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_title_like_url-CTokenizer] PASSED [ 52%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_title_like_url-PyTokenizer] PASSED [ 52%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_recursive-CTokenizer] PASSED [ 52%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_recursive-PyTokenizer] PASSED [ 52%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_recursive_2-CTokenizer] PASSED [ 53%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_recursive_2-PyTokenizer] PASSED [ 53%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:period_after-CTokenizer] PASSED [ 53%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:period_after-PyTokenizer] PASSED [ 53%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:colons_after-CTokenizer] PASSED [ 53%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:colons_after-PyTokenizer] PASSED [ 53%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:close_paren_after_excluded-CTokenizer] PASSED [ 53%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:close_paren_after_excluded-PyTokenizer] PASSED [ 53%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:close_paren_after_included-CTokenizer] PASSED [ 53%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:close_paren_after_included-PyTokenizer] PASSED [ 53%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:open_bracket_inside-CTokenizer] PASSED [ 53%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:open_bracket_inside-PyTokenizer] PASSED [ 53%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_period_after-CTokenizer] PASSED [ 53%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_period_after-PyTokenizer] PASSED [ 53%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_punct_after-CTokenizer] PASSED [ 53%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_punct_after-PyTokenizer] PASSED [ 53%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_close_paren_after_included-CTokenizer] PASSED [ 53%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_close_paren_after_included-PyTokenizer] PASSED [ 53%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_close_paren_after_included_2-CTokenizer] PASSED [ 53%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_close_paren_after_included_2-PyTokenizer] PASSED [ 53%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_open_bracket_inside-CTokenizer] PASSED [ 54%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_open_bracket_inside-PyTokenizer] PASSED [ 54%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:adjacent_space-CTokenizer] PASSED [ 54%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:adjacent_space-PyTokenizer] PASSED [ 54%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:adjacent_newline-CTokenizer] PASSED [ 54%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:adjacent_newline-PyTokenizer] PASSED [ 54%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:adjacent_close_bracket-CTokenizer] PASSED [ 54%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:adjacent_close_bracket-PyTokenizer] PASSED [ 54%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:html_entity_in_url-CTokenizer] PASSED [ 54%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:html_entity_in_url-PyTokenizer] PASSED [ 54%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:template_in_url-CTokenizer] PASSED [ 54%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:template_in_url-PyTokenizer] PASSED [ 54%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:argument_in_url-CTokenizer] PASSED [ 54%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:argument_in_url-PyTokenizer] PASSED [ 54%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:wikilink_in_url-CTokenizer] PASSED [ 54%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:wikilink_in_url-PyTokenizer] PASSED [ 54%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:external_link_in_url-CTokenizer] PASSED [ 54%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:external_link_in_url-PyTokenizer] PASSED [ 54%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:spaces_padding-CTokenizer] PASSED [ 54%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:spaces_padding-PyTokenizer] PASSED [ 54%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:text_and_spaces_padding-CTokenizer] PASSED [ 55%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:text_and_spaces_padding-PyTokenizer] PASSED [ 55%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:template_before-CTokenizer] PASSED [ 55%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:template_before-PyTokenizer] PASSED [ 55%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:spaces_padding_no_slashes-CTokenizer] PASSED [ 55%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:spaces_padding_no_slashes-PyTokenizer] PASSED [ 55%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:text_and_spaces_padding_no_slashes-CTokenizer] PASSED [ 55%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:text_and_spaces_padding_no_slashes-PyTokenizer] PASSED [ 55%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:template_before_no_slashes-CTokenizer] PASSED [ 55%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:template_before_no_slashes-PyTokenizer] PASSED [ 55%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:no_slashes-CTokenizer] PASSED [ 55%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:no_slashes-PyTokenizer] PASSED [ 55%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:slashes_optional-CTokenizer] PASSED [ 55%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:slashes_optional-PyTokenizer] PASSED [ 55%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:short-CTokenizer] PASSED [ 55%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:short-PyTokenizer] PASSED [ 55%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:slashes_missing-CTokenizer] PASSED [ 55%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:slashes_missing-PyTokenizer] PASSED [ 55%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:no_scheme_but_slashes-CTokenizer] PASSED [ 55%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:no_scheme_but_slashes-PyTokenizer] PASSED [ 55%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:no_scheme_but_colon-CTokenizer] PASSED [ 56%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:no_scheme_but_colon-PyTokenizer] PASSED [ 56%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:no_scheme_but_colon_and_slashes-CTokenizer] PASSED [ 56%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:no_scheme_but_colon_and_slashes-PyTokenizer] PASSED [ 56%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:fake_scheme_no_slashes-CTokenizer] PASSED [ 56%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:fake_scheme_no_slashes-PyTokenizer] PASSED [ 56%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:fake_scheme_slashes-CTokenizer] PASSED [ 56%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:fake_scheme_slashes-PyTokenizer] PASSED [ 56%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:fake_scheme_brackets_no_slashes-CTokenizer] PASSED [ 56%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:fake_scheme_brackets_no_slashes-PyTokenizer] PASSED [ 56%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:fake_scheme_brackets_slashes-CTokenizer] PASSED [ 56%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:fake_scheme_brackets_slashes-PyTokenizer] PASSED [ 56%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:interrupted_scheme-CTokenizer] PASSED [ 56%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:interrupted_scheme-PyTokenizer] PASSED [ 56%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:interrupted_scheme_brackets-CTokenizer] PASSED [ 56%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:interrupted_scheme_brackets-PyTokenizer] PASSED [ 56%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:no_slashes_brackets-CTokenizer] PASSED [ 56%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:no_slashes_brackets-PyTokenizer] PASSED [ 56%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:space_before_no_slashes_brackets-CTokenizer] PASSED [ 56%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:space_before_no_slashes_brackets-PyTokenizer] PASSED [ 56%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:slashes_optional_brackets-CTokenizer] PASSED [ 57%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:slashes_optional_brackets-PyTokenizer] PASSED [ 57%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:short_brackets-CTokenizer] PASSED [ 57%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:short_brackets-PyTokenizer] PASSED [ 57%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:slashes_missing_brackets-CTokenizer] PASSED [ 57%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:slashes_missing_brackets-PyTokenizer] PASSED [ 57%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:protcol_relative-CTokenizer] PASSED [ 57%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:protcol_relative-PyTokenizer] PASSED [ 57%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:scheme_missing_but_colon_brackets-CTokenizer] PASSED [ 57%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:scheme_missing_but_colon_brackets-PyTokenizer] PASSED [ 57%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:scheme_missing_but_colon_slashes_brackets-CTokenizer] PASSED [ 57%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:scheme_missing_but_colon_slashes_brackets-PyTokenizer] PASSED [ 57%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:unclosed_protocol_relative-CTokenizer] PASSED [ 57%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:unclosed_protocol_relative-PyTokenizer] PASSED [ 57%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:space_before_protcol_relative-CTokenizer] PASSED [ 57%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:space_before_protcol_relative-PyTokenizer] PASSED [ 57%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:unclosed_just_scheme-CTokenizer] PASSED [ 57%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:unclosed_just_scheme-PyTokenizer] PASSED [ 57%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:unclosed_scheme_colon-CTokenizer] PASSED [ 57%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:unclosed_scheme_colon-PyTokenizer] PASSED [ 57%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:unclosed_scheme_colon_slashes-CTokenizer] PASSED [ 58%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:unclosed_scheme_colon_slashes-PyTokenizer] PASSED [ 58%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:incomplete_bracket-CTokenizer] PASSED [ 58%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:incomplete_bracket-PyTokenizer] PASSED [ 58%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:incomplete_scheme_colon-CTokenizer] PASSED [ 58%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:incomplete_scheme_colon-PyTokenizer] PASSED [ 58%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:incomplete_scheme_colon_slashes-CTokenizer] PASSED [ 58%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:incomplete_scheme_colon_slashes-PyTokenizer] PASSED [ 58%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_scheme_but_no_url-CTokenizer] PASSED [ 58%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_scheme_but_no_url-PyTokenizer] PASSED [ 58%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_scheme_slashes_but_no_url-CTokenizer] PASSED [ 58%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_scheme_slashes_but_no_url-PyTokenizer] PASSED [ 58%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_scheme_title_but_no_url-CTokenizer] PASSED [ 58%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_scheme_title_but_no_url-PyTokenizer] PASSED [ 58%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:url_preceded_by_non_word_character-CTokenizer] PASSED [ 58%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:url_preceded_by_non_word_character-PyTokenizer] PASSED [ 58%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:url_preceded_by_underscore-CTokenizer] PASSED [ 58%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:url_preceded_by_underscore-PyTokenizer] PASSED [ 58%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:url_terminated_by_double_quote-CTokenizer] PASSED [ 58%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:url_terminated_by_double_quote-PyTokenizer] PASSED [ 58%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:url_not_terminated_by_single_quote-CTokenizer] PASSED [ 59%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:url_not_terminated_by_single_quote-PyTokenizer] PASSED [ 59%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:url_terminated_by_two_single_quotes-CTokenizer] PASSED [ 59%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:url_terminated_by_two_single_quotes-PyTokenizer] PASSED [ 59%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:url_terminated_by_left_angle-CTokenizer] PASSED [ 59%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:url_terminated_by_left_angle-PyTokenizer] PASSED [ 59%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:url_terminated_by_right_angle-CTokenizer] PASSED [ 59%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:url_terminated_by_right_angle-PyTokenizer] PASSED [ 59%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_terminated_by_double_quote-CTokenizer] PASSED [ 59%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_terminated_by_double_quote-PyTokenizer] PASSED [ 59%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_not_terminated_by_single_quote-CTokenizer] PASSED [ 59%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_not_terminated_by_single_quote-PyTokenizer] PASSED [ 59%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_terminated_by_two_single_quotes-CTokenizer] PASSED [ 59%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_terminated_by_two_single_quotes-PyTokenizer] PASSED [ 59%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_terminated_by_left_angle-CTokenizer] PASSED [ 59%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_terminated_by_left_angle-PyTokenizer] PASSED [ 59%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_terminated_by_right_angle-CTokenizer] PASSED [ 59%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:brackets_terminated_by_right_angle-PyTokenizer] PASSED [ 59%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:scheme_case-CTokenizer] PASSED [ 59%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:scheme_case-PyTokenizer] PASSED [ 59%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:bracket_scheme_case-CTokenizer] PASSED [ 60%] 126s tests/test_tokenizer.py::test_tokenizer[external_links:bracket_scheme_case-PyTokenizer] PASSED [ 60%] 126s tests/test_tokenizer.py::test_tokenizer[integration:empty-CTokenizer] PASSED [ 60%] 126s tests/test_tokenizer.py::test_tokenizer[integration:empty-PyTokenizer] PASSED [ 60%] 126s tests/test_tokenizer.py::test_tokenizer[integration:template_argument_mix-CTokenizer] PASSED [ 60%] 126s tests/test_tokenizer.py::test_tokenizer[integration:template_argument_mix-PyTokenizer] PASSED [ 60%] 126s tests/test_tokenizer.py::test_tokenizer[integration:link_in_template_name-CTokenizer] PASSED [ 60%] 126s tests/test_tokenizer.py::test_tokenizer[integration:link_in_template_name-PyTokenizer] PASSED [ 60%] 126s tests/test_tokenizer.py::test_tokenizer[integration:rich_heading-CTokenizer] PASSED [ 60%] 126s tests/test_tokenizer.py::test_tokenizer[integration:rich_heading-PyTokenizer] PASSED [ 60%] 126s tests/test_tokenizer.py::test_tokenizer[integration:html_entity_with_template-CTokenizer] PASSED [ 60%] 126s tests/test_tokenizer.py::test_tokenizer[integration:html_entity_with_template-PyTokenizer] PASSED [ 60%] 126s tests/test_tokenizer.py::test_tokenizer[integration:html_entity_with_comment-CTokenizer] PASSED [ 60%] 126s tests/test_tokenizer.py::test_tokenizer[integration:html_entity_with_comment-PyTokenizer] PASSED [ 60%] 126s tests/test_tokenizer.py::test_tokenizer[integration:rich_tags-CTokenizer] PASSED [ 60%] 126s tests/test_tokenizer.py::test_tokenizer[integration:rich_tags-PyTokenizer] PASSED [ 60%] 126s tests/test_tokenizer.py::test_tokenizer[integration:wildcard-CTokenizer] PASSED [ 60%] 126s tests/test_tokenizer.py::test_tokenizer[integration:wildcard-PyTokenizer] PASSED [ 60%] 126s tests/test_tokenizer.py::test_tokenizer[integration:wildcard_redux-CTokenizer] PASSED [ 60%] 126s tests/test_tokenizer.py::test_tokenizer[integration:wildcard_redux-PyTokenizer] PASSED [ 60%] 126s tests/test_tokenizer.py::test_tokenizer[integration:link_inside_dl-CTokenizer] PASSED [ 60%] 126s tests/test_tokenizer.py::test_tokenizer[integration:link_inside_dl-PyTokenizer] PASSED [ 61%] 126s tests/test_tokenizer.py::test_tokenizer[integration:link_inside_dl_2-CTokenizer] PASSED [ 61%] 126s tests/test_tokenizer.py::test_tokenizer[integration:link_inside_dl_2-PyTokenizer] PASSED [ 61%] 126s tests/test_tokenizer.py::test_tokenizer[integration:link_inside_template-CTokenizer] PASSED [ 61%] 126s tests/test_tokenizer.py::test_tokenizer[integration:link_inside_template-PyTokenizer] PASSED [ 61%] 126s tests/test_tokenizer.py::test_tokenizer[integration:link_inside_template_2-CTokenizer] PASSED [ 61%] 126s tests/test_tokenizer.py::test_tokenizer[integration:link_inside_template_2-PyTokenizer] PASSED [ 61%] 126s tests/test_tokenizer.py::test_tokenizer[integration:link_inside_template_3-CTokenizer] PASSED [ 61%] 126s tests/test_tokenizer.py::test_tokenizer[integration:link_inside_template_3-PyTokenizer] PASSED [ 61%] 126s tests/test_tokenizer.py::test_tokenizer[integration:link_inside_argument-CTokenizer] PASSED [ 61%] 126s tests/test_tokenizer.py::test_tokenizer[integration:link_inside_argument-PyTokenizer] PASSED [ 61%] 126s tests/test_tokenizer.py::test_tokenizer[integration:link_inside_heading-CTokenizer] PASSED [ 61%] 126s tests/test_tokenizer.py::test_tokenizer[integration:link_inside_heading-PyTokenizer] PASSED [ 61%] 126s tests/test_tokenizer.py::test_tokenizer[integration:link_inside_tag_body-CTokenizer] PASSED [ 61%] 126s tests/test_tokenizer.py::test_tokenizer[integration:link_inside_tag_body-PyTokenizer] PASSED [ 61%] 126s tests/test_tokenizer.py::test_tokenizer[integration:link_inside_tag_style-CTokenizer] PASSED [ 61%] 126s tests/test_tokenizer.py::test_tokenizer[integration:link_inside_tag_style-PyTokenizer] PASSED [ 61%] 126s tests/test_tokenizer.py::test_tokenizer[integration:style_tag_inside_link-CTokenizer] PASSED [ 61%] 126s tests/test_tokenizer.py::test_tokenizer[integration:style_tag_inside_link-PyTokenizer] PASSED [ 61%] 126s tests/test_tokenizer.py::test_tokenizer[integration:comment_inside_link-CTokenizer] PASSED [ 61%] 126s tests/test_tokenizer.py::test_tokenizer[integration:comment_inside_link-PyTokenizer] PASSED [ 62%] 126s tests/test_tokenizer.py::test_tokenizer[integration:bracketed_link_inside_template-CTokenizer] PASSED [ 62%] 126s tests/test_tokenizer.py::test_tokenizer[integration:bracketed_link_inside_template-PyTokenizer] PASSED [ 62%] 126s tests/test_tokenizer.py::test_tokenizer[integration:comment_inside_bracketed_link-CTokenizer] PASSED [ 62%] 126s tests/test_tokenizer.py::test_tokenizer[integration:comment_inside_bracketed_link-PyTokenizer] PASSED [ 62%] 126s tests/test_tokenizer.py::test_tokenizer[integration:wikilink_inside_external_link-CTokenizer] PASSED [ 62%] 126s tests/test_tokenizer.py::test_tokenizer[integration:wikilink_inside_external_link-PyTokenizer] PASSED [ 62%] 126s tests/test_tokenizer.py::test_tokenizer[integration:external_link_inside_wikilink-CTokenizer] PASSED [ 62%] 126s tests/test_tokenizer.py::test_tokenizer[integration:external_link_inside_wikilink-PyTokenizer] PASSED [ 62%] 126s tests/test_tokenizer.py::test_tokenizer[integration:external_link_inside_wikilink_brackets-CTokenizer] PASSED [ 62%] 126s tests/test_tokenizer.py::test_tokenizer[integration:external_link_inside_wikilink_brackets-PyTokenizer] PASSED [ 62%] 126s tests/test_tokenizer.py::test_tokenizer[integration:external_link_inside_wikilink_title-CTokenizer] PASSED [ 62%] 126s tests/test_tokenizer.py::test_tokenizer[integration:external_link_inside_wikilink_title-PyTokenizer] PASSED [ 62%] 126s tests/test_tokenizer.py::test_tokenizer[integration:italics_inside_external_link_inside_incomplete_list-CTokenizer] PASSED [ 62%] 126s tests/test_tokenizer.py::test_tokenizer[integration:italics_inside_external_link_inside_incomplete_list-PyTokenizer] PASSED [ 62%] 126s tests/test_tokenizer.py::test_tokenizer[integration:nodes_inside_external_link_after_punct-CTokenizer] PASSED [ 62%] 126s tests/test_tokenizer.py::test_tokenizer[integration:nodes_inside_external_link_after_punct-PyTokenizer] PASSED [ 62%] 126s tests/test_tokenizer.py::test_tokenizer[integration:newline_and_comment_in_template_name-CTokenizer] PASSED [ 62%] 126s tests/test_tokenizer.py::test_tokenizer[integration:newline_and_comment_in_template_name-PyTokenizer] PASSED [ 62%] 126s tests/test_tokenizer.py::test_tokenizer[integration:newline_and_comment_in_template_name_2-CTokenizer] PASSED [ 62%] 126s tests/test_tokenizer.py::test_tokenizer[integration:newline_and_comment_in_template_name_2-PyTokenizer] PASSED [ 63%] 126s tests/test_tokenizer.py::test_tokenizer[integration:newline_and_comment_in_template_name_3-CTokenizer] PASSED [ 63%] 126s tests/test_tokenizer.py::test_tokenizer[integration:newline_and_comment_in_template_name_3-PyTokenizer] PASSED [ 63%] 126s tests/test_tokenizer.py::test_tokenizer[integration:newline_and_comment_in_template_name_4-CTokenizer] PASSED [ 63%] 126s tests/test_tokenizer.py::test_tokenizer[integration:newline_and_comment_in_template_name_4-PyTokenizer] PASSED [ 63%] 126s tests/test_tokenizer.py::test_tokenizer[integration:newline_and_comment_in_template_name_5-CTokenizer] PASSED [ 63%] 126s tests/test_tokenizer.py::test_tokenizer[integration:newline_and_comment_in_template_name_5-PyTokenizer] PASSED [ 63%] 126s tests/test_tokenizer.py::test_tokenizer[integration:newline_and_comment_in_template_name_6-CTokenizer] PASSED [ 63%] 126s tests/test_tokenizer.py::test_tokenizer[integration:newline_and_comment_in_template_name_6-PyTokenizer] PASSED [ 63%] 126s tests/test_tokenizer.py::test_tokenizer[integration:newline_and_comment_in_template_name_7-CTokenizer] PASSED [ 63%] 126s tests/test_tokenizer.py::test_tokenizer[integration:newline_and_comment_in_template_name_7-PyTokenizer] PASSED [ 63%] 126s tests/test_tokenizer.py::test_tokenizer[integration:newline_and_comment_in_template_name_8-CTokenizer] PASSED [ 63%] 126s tests/test_tokenizer.py::test_tokenizer[integration:newline_and_comment_in_template_name_8-PyTokenizer] PASSED [ 63%] 126s tests/test_tokenizer.py::test_tokenizer[integration:tag_in_link_title-CTokenizer] PASSED [ 63%] 126s tests/test_tokenizer.py::test_tokenizer[integration:tag_in_link_title-PyTokenizer] PASSED [ 63%] 126s tests/test_tokenizer.py::test_tokenizer[integration:tag_in_template_name-CTokenizer] PASSED [ 63%] 126s tests/test_tokenizer.py::test_tokenizer[integration:tag_in_template_name-PyTokenizer] PASSED [ 63%] 126s tests/test_tokenizer.py::test_tokenizer[integration:tag_in_link_text-CTokenizer] PASSED [ 63%] 126s tests/test_tokenizer.py::test_tokenizer[integration:tag_in_link_text-PyTokenizer] PASSED [ 63%] 126s tests/test_tokenizer.py::test_tokenizer[integration:comment_in_link_title-CTokenizer] PASSED [ 63%] 126s tests/test_tokenizer.py::test_tokenizer[integration:comment_in_link_title-PyTokenizer] PASSED [ 64%] 126s tests/test_tokenizer.py::test_tokenizer[integration:incomplete_comment_in_link_title-CTokenizer] PASSED [ 64%] 126s tests/test_tokenizer.py::test_tokenizer[integration:incomplete_comment_in_link_title-PyTokenizer] PASSED [ 64%] 126s tests/test_tokenizer.py::test_tokenizer[integration:incomplete_comment_in_link_title_2-CTokenizer] PASSED [ 64%] 126s tests/test_tokenizer.py::test_tokenizer[integration:incomplete_comment_in_link_title_2-PyTokenizer] PASSED [ 64%] 126s tests/test_tokenizer.py::test_tokenizer[integration:incomplete_comment_in_link_title_3-CTokenizer] PASSED [ 64%] 126s tests/test_tokenizer.py::test_tokenizer[integration:incomplete_comment_in_link_title_3-PyTokenizer] PASSED [ 64%] 126s tests/test_tokenizer.py::test_tokenizer[integration:incomplete_comment_in_link_title_4-CTokenizer] PASSED [ 64%] 126s tests/test_tokenizer.py::test_tokenizer[integration:incomplete_comment_in_link_title_4-PyTokenizer] PASSED [ 64%] 126s tests/test_tokenizer.py::test_tokenizer[integration:incomplete_comment_in_link_title_5-CTokenizer] PASSED [ 64%] 126s tests/test_tokenizer.py::test_tokenizer[integration:incomplete_comment_in_link_title_5-PyTokenizer] PASSED [ 64%] 126s tests/test_tokenizer.py::test_tokenizer[integration:incomplete_comment_in_link_title_6-CTokenizer] PASSED [ 64%] 126s tests/test_tokenizer.py::test_tokenizer[integration:incomplete_comment_in_link_title_6-PyTokenizer] PASSED [ 64%] 126s tests/test_tokenizer.py::test_tokenizer[integration:wikilink_to_external_link_fallback-CTokenizer] PASSED [ 64%] 126s tests/test_tokenizer.py::test_tokenizer[integration:wikilink_to_external_link_fallback-PyTokenizer] PASSED [ 64%] 126s tests/test_tokenizer.py::test_tokenizer[integration:wikilink_to_external_link_fallback_2-CTokenizer] PASSED [ 64%] 126s tests/test_tokenizer.py::test_tokenizer[integration:wikilink_to_external_link_fallback_2-PyTokenizer] PASSED [ 64%] 126s tests/test_tokenizer.py::test_tokenizer[integration:tables_in_templates-CTokenizer] PASSED [ 64%] 126s tests/test_tokenizer.py::test_tokenizer[integration:tables_in_templates-PyTokenizer] PASSED [ 64%] 126s tests/test_tokenizer.py::test_tokenizer[integration:tables_in_templates_2-CTokenizer] PASSED [ 64%] 126s tests/test_tokenizer.py::test_tokenizer[integration:tables_in_templates_2-PyTokenizer] PASSED [ 65%] 126s tests/test_tokenizer.py::test_tokenizer[integration:many_invalid_nested_tags-CTokenizer] PASSED [ 65%] 126s tests/test_tokenizer.py::test_tokenizer[integration:many_invalid_nested_tags-PyTokenizer] PASSED [ 65%] 126s tests/test_tokenizer.py::test_tokenizer[integration:nested_templates_and_style_tags-CTokenizer] PASSED [ 65%] 126s tests/test_tokenizer.py::test_tokenizer[integration:nested_templates_and_style_tags-PyTokenizer] PASSED [ 65%] 126s tests/test_tokenizer.py::test_tokenizer[integration:wikilink_nested_with_nowiki-CTokenizer] PASSED [ 65%] 126s tests/test_tokenizer.py::test_tokenizer[integration:wikilink_nested_with_nowiki-PyTokenizer] PASSED [ 65%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:blank-CTokenizer] PASSED [ 65%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:blank-PyTokenizer] PASSED [ 65%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:blank_with_default-CTokenizer] PASSED [ 65%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:blank_with_default-PyTokenizer] PASSED [ 65%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:basic-CTokenizer] PASSED [ 65%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:basic-PyTokenizer] PASSED [ 65%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:default-CTokenizer] PASSED [ 65%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:default-PyTokenizer] PASSED [ 65%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:blank_with_multiple_defaults-CTokenizer] PASSED [ 65%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:blank_with_multiple_defaults-PyTokenizer] PASSED [ 65%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:multiple_defaults-CTokenizer] PASSED [ 65%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:multiple_defaults-PyTokenizer] PASSED [ 65%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:newline-CTokenizer] PASSED [ 65%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:newline-PyTokenizer] PASSED [ 66%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:right_braces-CTokenizer] PASSED [ 66%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:right_braces-PyTokenizer] PASSED [ 66%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:right_braces_default-CTokenizer] PASSED [ 66%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:right_braces_default-PyTokenizer] PASSED [ 66%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:nested-CTokenizer] PASSED [ 66%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:nested-PyTokenizer] PASSED [ 66%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:invalid_braces-CTokenizer] PASSED [ 66%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:invalid_braces-PyTokenizer] PASSED [ 66%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:incomplete_open_only-CTokenizer] PASSED [ 66%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:incomplete_open_only-PyTokenizer] PASSED [ 66%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:incomplete_open_text-CTokenizer] PASSED [ 66%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:incomplete_open_text-PyTokenizer] PASSED [ 66%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:incomplete_open_text_pipe-CTokenizer] PASSED [ 66%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:incomplete_open_text_pipe-PyTokenizer] PASSED [ 66%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:incomplete_open_pipe-CTokenizer] PASSED [ 66%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:incomplete_open_pipe-PyTokenizer] PASSED [ 66%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:incomplete_open_pipe_text-CTokenizer] PASSED [ 66%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:incomplete_open_pipe_text-PyTokenizer] PASSED [ 66%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:incomplete_open_pipes_text-CTokenizer] PASSED [ 66%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:incomplete_open_pipes_text-PyTokenizer] PASSED [ 67%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:incomplete_open_partial_close-CTokenizer] PASSED [ 67%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:incomplete_open_partial_close-PyTokenizer] PASSED [ 67%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:incomplete_preserve_previous-CTokenizer] PASSED [ 67%] 126s tests/test_tokenizer.py::test_tokenizer[arguments:incomplete_preserve_previous-PyTokenizer] PASSED [ 67%] 126s tests/test_tokenizer.py::test_roundtrip[wikilinks:blank] PASSED [ 67%] 126s tests/test_tokenizer.py::test_roundtrip[wikilinks:blank_with_text] PASSED [ 67%] 126s tests/test_tokenizer.py::test_roundtrip[wikilinks:basic] PASSED [ 67%] 126s tests/test_tokenizer.py::test_roundtrip[wikilinks:with_text] PASSED [ 67%] 126s tests/test_tokenizer.py::test_roundtrip[wikilinks:blank_with_multiple_texts] PASSED [ 67%] 126s tests/test_tokenizer.py::test_roundtrip[wikilinks:multiple_texts] PASSED [ 67%] 126s tests/test_tokenizer.py::test_roundtrip[wikilinks:newline_text] PASSED [ 67%] 126s tests/test_tokenizer.py::test_roundtrip[wikilinks:bracket_text] PASSED [ 67%] 126s tests/test_tokenizer.py::test_roundtrip[wikilinks:nested] PASSED [ 67%] 126s tests/test_tokenizer.py::test_roundtrip[wikilinks:nested_padding] PASSED [ 67%] 126s tests/test_tokenizer.py::test_roundtrip[wikilinks:invalid_newline] PASSED [ 67%] 126s tests/test_tokenizer.py::test_roundtrip[wikilinks:invalid_right_brace] PASSED [ 67%] 126s tests/test_tokenizer.py::test_roundtrip[wikilinks:invalid_left_brace] PASSED [ 67%] 126s tests/test_tokenizer.py::test_roundtrip[wikilinks:invalid_right_bracket] PASSED [ 67%] 126s tests/test_tokenizer.py::test_roundtrip[wikilinks:invalid_left_bracket] PASSED [ 67%] 126s tests/test_tokenizer.py::test_roundtrip[wikilinks:invalid_nested_title] PASSED [ 68%] 126s tests/test_tokenizer.py::test_roundtrip[wikilinks:invalid_nested_title_and_text] PASSED [ 68%] 126s tests/test_tokenizer.py::test_roundtrip[wikilinks:invalid_nested_no_close] PASSED [ 68%] 126s tests/test_tokenizer.py::test_roundtrip[wikilinks:invalid_left_angle_bracket] PASSED [ 68%] 126s tests/test_tokenizer.py::test_roundtrip[wikilinks:invalid_right_angle_bracket] PASSED [ 68%] 126s tests/test_tokenizer.py::test_roundtrip[wikilinks:invalid_newline_at_start] PASSED [ 68%] 126s tests/test_tokenizer.py::test_roundtrip[wikilinks:invalid_newline_at_end] PASSED [ 68%] 126s tests/test_tokenizer.py::test_roundtrip[wikilinks:incomplete_open_only] PASSED [ 68%] 126s tests/test_tokenizer.py::test_roundtrip[wikilinks:incomplete_open_text] PASSED [ 68%] 126s tests/test_tokenizer.py::test_roundtrip[wikilinks:incomplete_open_text_pipe] PASSED [ 68%] 126s tests/test_tokenizer.py::test_roundtrip[wikilinks:incomplete_open_pipe] PASSED [ 68%] 126s tests/test_tokenizer.py::test_roundtrip[wikilinks:incomplete_open_pipe_text] PASSED [ 68%] 126s tests/test_tokenizer.py::test_roundtrip[wikilinks:incomplete_open_pipes_text] PASSED [ 68%] 126s tests/test_tokenizer.py::test_roundtrip[wikilinks:incomplete_open_partial_close] PASSED [ 68%] 126s tests/test_tokenizer.py::test_roundtrip[wikilinks:incomplete_preserve_previous] PASSED [ 68%] 126s tests/test_tokenizer.py::test_roundtrip[tags:basic] PASSED [ 68%] 126s tests/test_tokenizer.py::test_roundtrip[tags:basic_selfclosing] PASSED [ 68%] 126s tests/test_tokenizer.py::test_roundtrip[tags:content] PASSED [ 68%] 126s tests/test_tokenizer.py::test_roundtrip[tags:padded_open] PASSED [ 68%] 126s tests/test_tokenizer.py::test_roundtrip[tags:padded_close] PASSED [ 68%] 126s tests/test_tokenizer.py::test_roundtrip[tags:padded_selfclosing] PASSED [ 69%] 126s tests/test_tokenizer.py::test_roundtrip[tags:attribute] PASSED [ 69%] 126s tests/test_tokenizer.py::test_roundtrip[tags:attribute_value] PASSED [ 69%] 126s tests/test_tokenizer.py::test_roundtrip[tags:attribute_quoted] PASSED [ 69%] 126s tests/test_tokenizer.py::test_roundtrip[tags:attribute_single_quoted] PASSED [ 69%] 126s tests/test_tokenizer.py::test_roundtrip[tags:attribute_hyphen] PASSED [ 69%] 126s tests/test_tokenizer.py::test_roundtrip[tags:attribute_quoted_hyphen] PASSED [ 69%] 126s tests/test_tokenizer.py::test_roundtrip[tags:attribute_selfclosing] PASSED [ 69%] 126s tests/test_tokenizer.py::test_roundtrip[tags:attribute_selfclosing_value] PASSED [ 69%] 126s tests/test_tokenizer.py::test_roundtrip[tags:attribute_selfclosing_value_quoted] PASSED [ 69%] 126s tests/test_tokenizer.py::test_roundtrip[tags:nested_tag] PASSED [ 69%] 126s tests/test_tokenizer.py::test_roundtrip[tags:nested_tag_quoted] PASSED [ 69%] 126s tests/test_tokenizer.py::test_roundtrip[tags:nested_troll_tag] PASSED [ 69%] 126s tests/test_tokenizer.py::test_roundtrip[tags:nested_troll_tag_quoted] PASSED [ 69%] 126s tests/test_tokenizer.py::test_roundtrip[tags:nested_tag_selfclosing] PASSED [ 69%] 126s tests/test_tokenizer.py::test_roundtrip[tags:invalid_space_begin_open] PASSED [ 69%] 126s tests/test_tokenizer.py::test_roundtrip[tags:invalid_space_begin_close] PASSED [ 69%] 126s tests/test_tokenizer.py::test_roundtrip[tags:valid_space_end] PASSED [ 69%] 126s tests/test_tokenizer.py::test_roundtrip[tags:invalid_template_ends] PASSED [ 69%] 126s tests/test_tokenizer.py::test_roundtrip[tags:invalid_template_ends_nospace] PASSED [ 69%] 126s tests/test_tokenizer.py::test_roundtrip[tags:valid_template_end_open] PASSED [ 70%] 126s tests/test_tokenizer.py::test_roundtrip[tags:valid_template_end_open_space_end_close] PASSED [ 70%] 126s tests/test_tokenizer.py::test_roundtrip[tags:invalid_template_end_open_nospace] PASSED [ 70%] 126s tests/test_tokenizer.py::test_roundtrip[tags:invalid_template_start_close] PASSED [ 70%] 126s tests/test_tokenizer.py::test_roundtrip[tags:invalid_template_start_open] PASSED [ 70%] 126s tests/test_tokenizer.py::test_roundtrip[tags:unclosed_quote] PASSED [ 70%] 126s tests/test_tokenizer.py::test_roundtrip[tags:fake_quote] PASSED [ 70%] 126s tests/test_tokenizer.py::test_roundtrip[tags:fake_quote_complex] PASSED [ 70%] 126s tests/test_tokenizer.py::test_roundtrip[tags:quotes_in_quotes] PASSED [ 70%] 126s tests/test_tokenizer.py::test_roundtrip[tags:quotes_in_quotes_2] PASSED [ 70%] 126s tests/test_tokenizer.py::test_roundtrip[tags:quotes_in_quotes_3] PASSED [ 70%] 126s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_lbracket] PASSED [ 70%] 126s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_lbracket_junk] PASSED [ 70%] 126s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_unclosed_open] PASSED [ 70%] 126s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_unclosed_open_space] PASSED [ 70%] 126s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_unclosed_open_unnamed_attr] PASSED [ 70%] 126s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_unclosed_open_attr_equals] PASSED [ 70%] 126s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_unclosed_open_attr_equals_quoted] PASSED [ 70%] 126s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_unclosed_open_attr] PASSED [ 70%] 126s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_unclosed_open_attr_quoted] PASSED [ 70%] 126s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_open] PASSED [ 71%] 126s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_open_unnamed_attr] PASSED [ 71%] 126s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_open_attr_equals] PASSED [ 71%] 126s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_open_attr] PASSED [ 71%] 126s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_open_attr_quoted] PASSED [ 71%] 126s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_open_text] PASSED [ 71%] 126s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_open_attr_text] PASSED [ 71%] 126s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_open_text_lbracket] PASSED [ 71%] 126s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_open_text_lbracket_slash] PASSED [ 71%] 126s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_open_text_unclosed_close] PASSED [ 71%] 126s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_open_text_wrong_close] PASSED [ 71%] 126s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_unclosed_close] PASSED [ 71%] 126s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_unclosed_close_text] PASSED [ 71%] 126s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_close] PASSED [ 71%] 126s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_no_tag_name_open] PASSED [ 71%] 126s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_no_tag_name_selfclosing] PASSED [ 71%] 126s tests/test_tokenizer.py::test_roundtrip[tags:incomplete_no_tag_name_open_close] PASSED [ 71%] 126s tests/test_tokenizer.py::test_roundtrip[tags:backslash_premature_before] PASSED [ 71%] 126s tests/test_tokenizer.py::test_roundtrip[tags:backslash_premature_after] PASSED [ 71%] 126s tests/test_tokenizer.py::test_roundtrip[tags:backslash_premature_middle] PASSED [ 71%] 126s tests/test_tokenizer.py::test_roundtrip[tags:backslash_adjacent] PASSED [ 72%] 126s tests/test_tokenizer.py::test_roundtrip[tags:backslash_endquote] PASSED [ 72%] 126s tests/test_tokenizer.py::test_roundtrip[tags:backslash_double] PASSED [ 72%] 126s tests/test_tokenizer.py::test_roundtrip[tags:backslash_triple] PASSED [ 72%] 126s tests/test_tokenizer.py::test_roundtrip[tags:backslash_unaffecting] PASSED [ 72%] 126s tests/test_tokenizer.py::test_roundtrip[tags:unparsable] PASSED [ 72%] 126s tests/test_tokenizer.py::test_roundtrip[tags:unparsable_complex] PASSED [ 72%] 126s tests/test_tokenizer.py::test_roundtrip[tags:unparsable_attributed] PASSED [ 72%] 126s tests/test_tokenizer.py::test_roundtrip[tags:unparsable_incomplete] PASSED [ 72%] 126s tests/test_tokenizer.py::test_roundtrip[tags:unparsable_entity] PASSED [ 72%] 126s tests/test_tokenizer.py::test_roundtrip[tags:unparsable_entity_incomplete] PASSED [ 72%] 126s tests/test_tokenizer.py::test_roundtrip[tags:unparsable_entity_incomplete_2] PASSED [ 72%] 126s tests/test_tokenizer.py::test_roundtrip[tags:single_open_close] PASSED [ 72%] 126s tests/test_tokenizer.py::test_roundtrip[tags:single_open] PASSED [ 72%] 126s tests/test_tokenizer.py::test_roundtrip[tags:single_selfclose] PASSED [ 72%] 126s tests/test_tokenizer.py::test_roundtrip[tags:single_close] PASSED [ 72%] 126s tests/test_tokenizer.py::test_roundtrip[tags:single_only_open_close] PASSED [ 72%] 126s tests/test_tokenizer.py::test_roundtrip[tags:single_only_open] PASSED [ 72%] 126s tests/test_tokenizer.py::test_roundtrip[tags:single_only_selfclose] PASSED [ 72%] 126s tests/test_tokenizer.py::test_roundtrip[tags:single_only_close] PASSED [ 72%] 126s tests/test_tokenizer.py::test_roundtrip[tags:single_only_double] PASSED [ 73%] 126s tests/test_tokenizer.py::test_roundtrip[tags:single_only_close_attribute] PASSED [ 73%] 126s tests/test_tokenizer.py::test_roundtrip[tags:capitalization] PASSED [ 73%] 126s tests/test_tokenizer.py::test_roundtrip[tags:unparsable_incomplete_close] PASSED [ 73%] 126s tests/test_tokenizer.py::test_roundtrip[tags:unparsable_with_intermediates] PASSED [ 73%] 126s tests/test_tokenizer.py::test_roundtrip[tags:unparsable_with_intermediates_normalize] PASSED [ 73%] 126s tests/test_tokenizer.py::test_roundtrip[tags:non_ascii_open] PASSED [ 73%] 126s tests/test_tokenizer.py::test_roundtrip[tags:non_ascii_full] PASSED [ 73%] 126s tests/test_tokenizer.py::test_roundtrip[tags:single_nested_selfclosing] PASSED [ 73%] 126s tests/test_tokenizer.py::test_roundtrip[html_entities:named] PASSED [ 73%] 126s tests/test_tokenizer.py::test_roundtrip[html_entities:numeric_decimal] PASSED [ 73%] 126s tests/test_tokenizer.py::test_roundtrip[html_entities:numeric_hexadecimal_x] PASSED [ 73%] 126s tests/test_tokenizer.py::test_roundtrip[html_entities:numeric_hexadecimal_X] PASSED [ 73%] 126s tests/test_tokenizer.py::test_roundtrip[html_entities:numeric_decimal_max] PASSED [ 73%] 126s tests/test_tokenizer.py::test_roundtrip[html_entities:numeric_hex_max] PASSED [ 73%] 126s tests/test_tokenizer.py::test_roundtrip[html_entities:numeric_zeros] PASSED [ 73%] 126s tests/test_tokenizer.py::test_roundtrip[html_entities:numeric_hex_zeros] PASSED [ 73%] 126s tests/test_tokenizer.py::test_roundtrip[html_entities:invalid_named_too_long] PASSED [ 73%] 126s tests/test_tokenizer.py::test_roundtrip[html_entities:invalid_named_undefined] PASSED [ 73%] 126s tests/test_tokenizer.py::test_roundtrip[html_entities:invalid_named_nonascii] PASSED [ 73%] 126s tests/test_tokenizer.py::test_roundtrip[html_entities:invalid_numeric_out_of_range_1] PASSED [ 74%] 126s tests/test_tokenizer.py::test_roundtrip[html_entities:invalid_numeric_out_of_range_2] PASSED [ 74%] 126s tests/test_tokenizer.py::test_roundtrip[html_entities:invalid_numeric_out_of_range_3] PASSED [ 74%] 126s tests/test_tokenizer.py::test_roundtrip[html_entities:invalid_numeric_out_of_range_4] PASSED [ 74%] 126s tests/test_tokenizer.py::test_roundtrip[html_entities:invalid_partial_amp] PASSED [ 74%] 126s tests/test_tokenizer.py::test_roundtrip[html_entities:invalid_partial_amp_semicolon] PASSED [ 74%] 126s tests/test_tokenizer.py::test_roundtrip[html_entities:invalid_partial_amp_pound] PASSED [ 74%] 126s tests/test_tokenizer.py::test_roundtrip[html_entities:invalid_partial_amp_pound_x] PASSED [ 74%] 126s tests/test_tokenizer.py::test_roundtrip[html_entities:invalid_partial_amp_pound_semicolon] PASSED [ 74%] 126s tests/test_tokenizer.py::test_roundtrip[html_entities:invalid_partial_amp_pound_x_semicolon0] PASSED [ 74%] 126s tests/test_tokenizer.py::test_roundtrip[html_entities:invalid_partial_amp_pound_numbers] PASSED [ 74%] 126s tests/test_tokenizer.py::test_roundtrip[html_entities:invalid_partial_amp_pound_x_semicolon1] PASSED [ 74%] 126s tests/test_tokenizer.py::test_roundtrip[html_entities:invalid_zeros_before_named] PASSED [ 74%] 126s tests/test_tokenizer.py::test_roundtrip[headings:level_1] PASSED [ 74%] 126s tests/test_tokenizer.py::test_roundtrip[headings:level_2] PASSED [ 74%] 126s tests/test_tokenizer.py::test_roundtrip[headings:level_3] PASSED [ 74%] 126s tests/test_tokenizer.py::test_roundtrip[headings:level_4] PASSED [ 74%] 126s tests/test_tokenizer.py::test_roundtrip[headings:level_5] PASSED [ 74%] 126s tests/test_tokenizer.py::test_roundtrip[headings:level_6] PASSED [ 74%] 126s tests/test_tokenizer.py::test_roundtrip[headings:level_7] PASSED [ 74%] 126s tests/test_tokenizer.py::test_roundtrip[headings:level_3_2] PASSED [ 75%] 126s tests/test_tokenizer.py::test_roundtrip[headings:level_4_6] PASSED [ 75%] 126s tests/test_tokenizer.py::test_roundtrip[headings:newline_before] PASSED [ 75%] 126s tests/test_tokenizer.py::test_roundtrip[headings:text_after] PASSED [ 75%] 126s tests/test_tokenizer.py::test_roundtrip[headings:invalid_text_before] PASSED [ 75%] 126s tests/test_tokenizer.py::test_roundtrip[headings:invalid_newline_middle] PASSED [ 75%] 126s tests/test_tokenizer.py::test_roundtrip[headings:invalid_newline_end] PASSED [ 75%] 126s tests/test_tokenizer.py::test_roundtrip[headings:invalid_nesting] PASSED [ 75%] 126s tests/test_tokenizer.py::test_roundtrip[headings:incomplete] PASSED [ 75%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:basic_italics] PASSED [ 75%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:basic_bold] PASSED [ 75%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:basic_ul] PASSED [ 75%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:basic_ol] PASSED [ 75%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:basic_dt] PASSED [ 75%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:basic_dd] PASSED [ 75%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:basic_hr] PASSED [ 75%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:complex_italics] PASSED [ 75%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:multiline_italics] PASSED [ 75%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:unending_italics] PASSED [ 75%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:misleading_italics_end] PASSED [ 75%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:italics_start_outside_end_inside] PASSED [ 76%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:italics_start_inside_end_outside] PASSED [ 76%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:complex_bold] PASSED [ 76%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:multiline_bold] PASSED [ 76%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:unending_bold] PASSED [ 76%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:misleading_bold_end] PASSED [ 76%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:bold_start_outside_end_inside] PASSED [ 76%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:bold_start_inside_end_outside] PASSED [ 76%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:bold_and_italics] PASSED [ 76%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:both_then_bold] PASSED [ 76%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:both_then_italics] PASSED [ 76%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:bold_then_both] PASSED [ 76%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:italics_then_both] PASSED [ 76%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:italics_then_bold] PASSED [ 76%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:bold_then_italics] PASSED [ 76%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:five_three] PASSED [ 76%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:five_two] PASSED [ 76%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:four] PASSED [ 76%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:four_two] PASSED [ 76%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:two_three] PASSED [ 76%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:two_four] PASSED [ 77%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:two_three_two] PASSED [ 77%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:two_four_four] PASSED [ 77%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:seven] PASSED [ 77%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:unending_bold_and_italics] PASSED [ 77%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:complex_ul] PASSED [ 77%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:ul_multiline_template] PASSED [ 77%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:ul_adjacent] PASSED [ 77%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:ul_depths] PASSED [ 77%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:ul_space_before] PASSED [ 77%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:ul_interruption] PASSED [ 77%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:complex_ol] PASSED [ 77%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:ol_multiline_template] PASSED [ 77%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:ol_adjacent] PASSED [ 77%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:ol_depths] PASSED [ 77%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:ol_space_before] PASSED [ 77%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:ol_interruption] PASSED [ 77%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:ul_ol_mix] PASSED [ 77%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:complex_dt] PASSED [ 77%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:dt_multiline_template] PASSED [ 77%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:dt_adjacent] PASSED [ 78%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:dt_depths] PASSED [ 78%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:dt_space_before] PASSED [ 78%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:dt_interruption] PASSED [ 78%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:complex_dd] PASSED [ 78%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:dd_multiline_template] PASSED [ 78%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:dd_adjacent] PASSED [ 78%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:dd_depths] PASSED [ 78%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:dd_space_before] PASSED [ 78%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:dd_interruption] PASSED [ 78%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:dt_dd_mix] PASSED [ 78%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:dt_dd_mix2] PASSED [ 78%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:dt_dd_mix3] PASSED [ 78%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:dt_dd_mix4] PASSED [ 78%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:ul_ol_dt_dd_mix] PASSED [ 78%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:hr_text_before] PASSED [ 78%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:hr_text_after] PASSED [ 78%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:hr_text_before_after] PASSED [ 78%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:hr_newlines] PASSED [ 78%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:hr_adjacent] PASSED [ 78%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:hr_adjacent_space] PASSED [ 79%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:hr_short] PASSED [ 79%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:hr_long] PASSED [ 79%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:hr_interruption_short] PASSED [ 79%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:hr_interruption_long] PASSED [ 79%] 126s tests/test_tokenizer.py::test_roundtrip[tags_wikimarkup:nowiki_cancel] PASSED [ 79%] 126s tests/test_tokenizer.py::test_roundtrip[templates:no_params] PASSED [ 79%] 126s tests/test_tokenizer.py::test_roundtrip[templates:one_param_unnamed] PASSED [ 79%] 126s tests/test_tokenizer.py::test_roundtrip[templates:one_param_named] PASSED [ 79%] 126s tests/test_tokenizer.py::test_roundtrip[templates:multiple_unnamed_params] PASSED [ 79%] 126s tests/test_tokenizer.py::test_roundtrip[templates:multiple_named_params] PASSED [ 79%] 126s tests/test_tokenizer.py::test_roundtrip[templates:multiple_mixed_params] PASSED [ 79%] 126s tests/test_tokenizer.py::test_roundtrip[templates:multiple_mixed_params2] PASSED [ 79%] 126s tests/test_tokenizer.py::test_roundtrip[templates:blank_params] PASSED [ 79%] 126s tests/test_tokenizer.py::test_roundtrip[templates:nested_unnamed_param] PASSED [ 79%] 126s tests/test_tokenizer.py::test_roundtrip[templates:nested_named_param_value] PASSED [ 79%] 126s tests/test_tokenizer.py::test_roundtrip[templates:nested_named_param_name_and_value] PASSED [ 79%] 126s tests/test_tokenizer.py::test_roundtrip[templates:nested_name_start] PASSED [ 79%] 126s tests/test_tokenizer.py::test_roundtrip[templates:nested_name_start_unnamed_param] PASSED [ 79%] 126s tests/test_tokenizer.py::test_roundtrip[templates:nested_name_start_named_param_value] PASSED [ 79%] 126s tests/test_tokenizer.py::test_roundtrip[templates:nested_name_start_named_param_name_and_value] PASSED [ 80%] 126s tests/test_tokenizer.py::test_roundtrip[templates:nested_name_end] PASSED [ 80%] 126s tests/test_tokenizer.py::test_roundtrip[templates:nested_name_end_unnamed_param] PASSED [ 80%] 126s tests/test_tokenizer.py::test_roundtrip[templates:nested_name_end_named_param_value] PASSED [ 80%] 126s tests/test_tokenizer.py::test_roundtrip[templates:nested_name_end_named_param_name_and_value] PASSED [ 80%] 126s tests/test_tokenizer.py::test_roundtrip[templates:nested_name_mid] PASSED [ 80%] 126s tests/test_tokenizer.py::test_roundtrip[templates:nested_name_mid_unnamed_param] PASSED [ 80%] 126s tests/test_tokenizer.py::test_roundtrip[templates:nested_name_mid_named_param_value] PASSED [ 80%] 126s tests/test_tokenizer.py::test_roundtrip[templates:nested_name_mid_named_param_name_and_value] PASSED [ 80%] 126s tests/test_tokenizer.py::test_roundtrip[templates:nested_name_start_end] PASSED [ 80%] 126s tests/test_tokenizer.py::test_roundtrip[templates:nested_name_start_end_unnamed_param] PASSED [ 80%] 126s tests/test_tokenizer.py::test_roundtrip[templates:nested_name_start_end_named_param_value] PASSED [ 80%] 126s tests/test_tokenizer.py::test_roundtrip[templates:nested_name_start_end_named_param_name_and_value] PASSED [ 80%] 126s tests/test_tokenizer.py::test_roundtrip[templates:nested_names_multiple] PASSED [ 80%] 126s tests/test_tokenizer.py::test_roundtrip[templates:nested_names_multiple_unnamed_param] PASSED [ 80%] 126s tests/test_tokenizer.py::test_roundtrip[templates:nested_names_multiple_named_param_value] PASSED [ 80%] 126s tests/test_tokenizer.py::test_roundtrip[templates:nested_names_multiple_named_param_name_and_value] PASSED [ 80%] 126s tests/test_tokenizer.py::test_roundtrip[templates:mixed_nested_templates] PASSED [ 80%] 126s tests/test_tokenizer.py::test_roundtrip[templates:nested_two_args] PASSED [ 80%] 126s tests/test_tokenizer.py::test_roundtrip[templates:newlines_start] PASSED [ 80%] 126s tests/test_tokenizer.py::test_roundtrip[templates:newlines_end] PASSED [ 80%] 126s tests/test_tokenizer.py::test_roundtrip[templates:newlines_start_end] PASSED [ 81%] 126s tests/test_tokenizer.py::test_roundtrip[templates:newlines_mid] PASSED [ 81%] 126s tests/test_tokenizer.py::test_roundtrip[templates:newlines_start_mid] PASSED [ 81%] 126s tests/test_tokenizer.py::test_roundtrip[templates:newlines_mid_end] PASSED [ 81%] 126s tests/test_tokenizer.py::test_roundtrip[templates:newlines_start_mid_end] PASSED [ 81%] 126s tests/test_tokenizer.py::test_roundtrip[templates:newlines_unnamed_param] PASSED [ 81%] 126s tests/test_tokenizer.py::test_roundtrip[templates:newlines_enclose_template_name_unnamed_param] PASSED [ 81%] 126s tests/test_tokenizer.py::test_roundtrip[templates:newlines_within_template_name_unnamed_param] PASSED [ 81%] 126s tests/test_tokenizer.py::test_roundtrip[templates:newlines_enclose_template_name_named_param_value] PASSED [ 81%] 126s tests/test_tokenizer.py::test_roundtrip[templates:newlines_within_template_name_named_param_value] PASSED [ 81%] 126s tests/test_tokenizer.py::test_roundtrip[templates:newlines_named_param_name] PASSED [ 81%] 126s tests/test_tokenizer.py::test_roundtrip[templates:newlines_named_param_name_param_value] PASSED [ 81%] 126s tests/test_tokenizer.py::test_roundtrip[templates:newlines_enclose_template_name_named_param_name] PASSED [ 81%] 126s tests/test_tokenizer.py::test_roundtrip[templates:newlines_enclose_template_name_named_param_name_param_value] PASSED [ 81%] 126s tests/test_tokenizer.py::test_roundtrip[templates:newlines_within_template_name_named_param_name] PASSED [ 81%] 126s tests/test_tokenizer.py::test_roundtrip[templates:newlines_within_template_name_named_param_name_param_value] PASSED [ 81%] 126s tests/test_tokenizer.py::test_roundtrip[templates:newlines_wildcard] PASSED [ 81%] 126s tests/test_tokenizer.py::test_roundtrip[templates:newlines_wildcard_redux] PASSED [ 81%] 126s tests/test_tokenizer.py::test_roundtrip[templates:newlines_wildcard_redux_invalid] PASSED [ 81%] 126s tests/test_tokenizer.py::test_roundtrip[templates:newlines_spaces] PASSED [ 81%] 126s tests/test_tokenizer.py::test_roundtrip[templates:newlines_spaces_param] PASSED [ 82%] 126s tests/test_tokenizer.py::test_roundtrip[templates:invalid_blank] PASSED [ 82%] 126s tests/test_tokenizer.py::test_roundtrip[templates:invalid_blank_whitespace] PASSED [ 82%] 126s tests/test_tokenizer.py::test_roundtrip[templates:invalid_blank_pipe] PASSED [ 82%] 126s tests/test_tokenizer.py::test_roundtrip[templates:invalid_blank_whitespace_pipe] PASSED [ 82%] 126s tests/test_tokenizer.py::test_roundtrip[templates:invalid_name_left_brace_middle] PASSED [ 82%] 126s tests/test_tokenizer.py::test_roundtrip[templates:invalid_name_right_brace_middle] PASSED [ 82%] 126s tests/test_tokenizer.py::test_roundtrip[templates:invalid_name_left_braces] PASSED [ 82%] 126s tests/test_tokenizer.py::test_roundtrip[templates:invalid_name_left_bracket_middle] PASSED [ 82%] 126s tests/test_tokenizer.py::test_roundtrip[templates:invalid_name_right_bracket_middle] PASSED [ 82%] 126s tests/test_tokenizer.py::test_roundtrip[templates:invalid_name_left_bracket_start] PASSED [ 82%] 126s tests/test_tokenizer.py::test_roundtrip[templates:invalid_name_right_bracket_start] PASSED [ 82%] 126s tests/test_tokenizer.py::test_roundtrip[templates:valid_name_left_brace_start] PASSED [ 82%] 126s tests/test_tokenizer.py::test_roundtrip[templates:valid_unnamed_param_left_brace] PASSED [ 82%] 126s tests/test_tokenizer.py::test_roundtrip[templates:valid_unnamed_param_braces] PASSED [ 82%] 126s tests/test_tokenizer.py::test_roundtrip[templates:valid_param_name_braces] PASSED [ 82%] 126s tests/test_tokenizer.py::test_roundtrip[templates:valid_param_name_brackets] PASSED [ 82%] 126s tests/test_tokenizer.py::test_roundtrip[templates:valid_param_name_double_left_brackets] PASSED [ 82%] 126s tests/test_tokenizer.py::test_roundtrip[templates:valid_param_name_double_right_brackets] PASSED [ 82%] 126s tests/test_tokenizer.py::test_roundtrip[templates:valid_param_name_double_brackets] PASSED [ 82%] 126s tests/test_tokenizer.py::test_roundtrip[templates:invalid_param_name_double_left_braces] PASSED [ 83%] 126s tests/test_tokenizer.py::test_roundtrip[templates:invalid_param_name_double_braces] PASSED [ 83%] 126s tests/test_tokenizer.py::test_roundtrip[templates:invalid_left_angle_bracket] PASSED [ 83%] 126s tests/test_tokenizer.py::test_roundtrip[templates:invalid_right_angle_bracket] PASSED [ 83%] 126s tests/test_tokenizer.py::test_roundtrip[templates:incomplete_stub] PASSED [ 83%] 126s tests/test_tokenizer.py::test_roundtrip[templates:incomplete_plain] PASSED [ 83%] 126s tests/test_tokenizer.py::test_roundtrip[templates:incomplete_right_brace] PASSED [ 83%] 126s tests/test_tokenizer.py::test_roundtrip[templates:incomplete_pipe] PASSED [ 83%] 126s tests/test_tokenizer.py::test_roundtrip[templates:incomplete_unnamed_param] PASSED [ 83%] 126s tests/test_tokenizer.py::test_roundtrip[templates:incomplete_unnamed_param_pipe] PASSED [ 83%] 126s tests/test_tokenizer.py::test_roundtrip[templates:incomplete_valueless_param] PASSED [ 83%] 126s tests/test_tokenizer.py::test_roundtrip[templates:incomplete_valueless_param_pipe] PASSED [ 83%] 126s tests/test_tokenizer.py::test_roundtrip[templates:incomplete_named_param] PASSED [ 83%] 126s tests/test_tokenizer.py::test_roundtrip[templates:incomplete_named_param_pipe] PASSED [ 83%] 126s tests/test_tokenizer.py::test_roundtrip[templates:incomplete_two_unnamed_params] PASSED [ 83%] 126s tests/test_tokenizer.py::test_roundtrip[templates:incomplete_unnamed_param_valueless_param] PASSED [ 83%] 126s tests/test_tokenizer.py::test_roundtrip[templates:incomplete_unnamed_param_named_param] PASSED [ 83%] 126s tests/test_tokenizer.py::test_roundtrip[templates:incomplete_named_param_unnamed_param] PASSED [ 83%] 126s tests/test_tokenizer.py::test_roundtrip[templates:incomplete_named_param_valueless_param] PASSED [ 83%] 126s tests/test_tokenizer.py::test_roundtrip[templates:incomplete_two_named_params] PASSED [ 83%] 126s tests/test_tokenizer.py::test_roundtrip[templates:incomplete_nested_template_as_unnamed_param] PASSED [ 84%] 126s tests/test_tokenizer.py::test_roundtrip[templates:incomplete_nested_template_as_param_value] PASSED [ 84%] 126s tests/test_tokenizer.py::test_roundtrip[templates:recursion_five_hundred_opens] PASSED [ 84%] 126s tests/test_tokenizer.py::test_roundtrip[templates:recursion_one_hundred_opens] PASSED [ 84%] 126s tests/test_tokenizer.py::test_roundtrip[templates:recursion_opens_and_closes] PASSED [ 84%] 126s tests/test_tokenizer.py::test_roundtrip[templates:invalid_section_level_1] PASSED [ 84%] 126s tests/test_tokenizer.py::test_roundtrip[templates:section_level_2] PASSED [ 84%] 126s tests/test_tokenizer.py::test_roundtrip[templates:invalid_section_level_2] PASSED [ 84%] 126s tests/test_tokenizer.py::test_roundtrip[templates:section_level_2_after_template_parameter] PASSED [ 84%] 126s tests/test_tokenizer.py::test_roundtrip[text:basic] PASSED [ 84%] 126s tests/test_tokenizer.py::test_roundtrip[text:newlines] PASSED [ 84%] 126s tests/test_tokenizer.py::test_roundtrip[text:unicode] PASSED [ 84%] 126s tests/test_tokenizer.py::test_roundtrip[text:unicode2] PASSED [ 84%] 126s tests/test_tokenizer.py::test_roundtrip[text:large] PASSED [ 84%] 126s tests/test_tokenizer.py::test_roundtrip[tables:empty_table] PASSED [ 84%] 126s tests/test_tokenizer.py::test_roundtrip[tables:inline_table] PASSED [ 84%] 126s tests/test_tokenizer.py::test_roundtrip[tables:no_table_close_simple] PASSED [ 84%] 126s tests/test_tokenizer.py::test_roundtrip[tables:no_table_close_newline] PASSED [ 84%] 126s tests/test_tokenizer.py::test_roundtrip[tables:no_table_close_inside_cell] PASSED [ 84%] 126s tests/test_tokenizer.py::test_roundtrip[tables:no_table_close_inside_cell_after_newline] PASSED [ 84%] 126s tests/test_tokenizer.py::test_roundtrip[tables:no_table_close_inside_cell_with_attributes] PASSED [ 85%] 126s tests/test_tokenizer.py::test_roundtrip[tables:no_table_close_inside_row] PASSED [ 85%] 126s tests/test_tokenizer.py::test_roundtrip[tables:no_table_close_inside_row_after_newline] PASSED [ 85%] 126s tests/test_tokenizer.py::test_roundtrip[tables:no_table_close_row_and_cell] PASSED [ 85%] 126s tests/test_tokenizer.py::test_roundtrip[tables:no_table_close_attributes] PASSED [ 85%] 126s tests/test_tokenizer.py::test_roundtrip[tables:no_table_close_unclosed_attributes] PASSED [ 85%] 126s tests/test_tokenizer.py::test_roundtrip[tables:no_table_close_row_attributes] PASSED [ 85%] 126s tests/test_tokenizer.py::test_roundtrip[tables:no_table_close_cell] PASSED [ 85%] 126s tests/test_tokenizer.py::test_roundtrip[tables:crazy_no_table_close] PASSED [ 85%] 126s tests/test_tokenizer.py::test_roundtrip[tables:leading_whitespace_table] PASSED [ 85%] 126s tests/test_tokenizer.py::test_roundtrip[tables:whitespace_after_table] PASSED [ 85%] 126s tests/test_tokenizer.py::test_roundtrip[tables:different_whitespace_after_table] PASSED [ 85%] 126s tests/test_tokenizer.py::test_roundtrip[tables:characters_after_table] PASSED [ 85%] 126s tests/test_tokenizer.py::test_roundtrip[tables:characters_after_inline_table] PASSED [ 85%] 126s tests/test_tokenizer.py::test_roundtrip[tables:leading_characters_table] PASSED [ 85%] 126s tests/test_tokenizer.py::test_roundtrip[tables:table_row_simple] PASSED [ 85%] 126s tests/test_tokenizer.py::test_roundtrip[tables:table_row_multiple] PASSED [ 85%] 126s tests/test_tokenizer.py::test_roundtrip[tables:table_cell_simple] PASSED [ 85%] 126s tests/test_tokenizer.py::test_roundtrip[tables:table_cell_inline] PASSED [ 85%] 126s tests/test_tokenizer.py::test_roundtrip[tables:table_cell_multiple] PASSED [ 85%] 126s tests/test_tokenizer.py::test_roundtrip[tables:table_header_simple] PASSED [ 86%] 126s tests/test_tokenizer.py::test_roundtrip[tables:table_header_inline] PASSED [ 86%] 126s tests/test_tokenizer.py::test_roundtrip[tables:table_header_multiple] PASSED [ 86%] 126s tests/test_tokenizer.py::test_roundtrip[tables:nested_cells_and_rows] PASSED [ 86%] 126s tests/test_tokenizer.py::test_roundtrip[tables:table_cell_fake_close] PASSED [ 86%] 126s tests/test_tokenizer.py::test_roundtrip[tables:table_cell_more_fake_close] PASSED [ 86%] 126s tests/test_tokenizer.py::test_roundtrip[tables:table_cell_extra_close] PASSED [ 86%] 126s tests/test_tokenizer.py::test_roundtrip[tables:nowiki_inside_table] PASSED [ 86%] 126s tests/test_tokenizer.py::test_roundtrip[tables:table_text_outside_cell] PASSED [ 86%] 126s tests/test_tokenizer.py::test_roundtrip[tables:no_table_cell_with_leading_characters] PASSED [ 86%] 126s tests/test_tokenizer.py::test_roundtrip[tables:no_table_row_with_leading_characters] PASSED [ 86%] 126s tests/test_tokenizer.py::test_roundtrip[tables:template_inside_table_cell] PASSED [ 86%] 126s tests/test_tokenizer.py::test_roundtrip[tables:table_cell_attributes] PASSED [ 86%] 126s tests/test_tokenizer.py::test_roundtrip[tables:table_cell_empty_attributes] PASSED [ 86%] 126s tests/test_tokenizer.py::test_roundtrip[tables:table_cell_with_dash] PASSED [ 86%] 126s tests/test_tokenizer.py::test_roundtrip[tables:table_cell_attributes_quote_with_pipe] PASSED [ 86%] 126s tests/test_tokenizer.py::test_roundtrip[tables:table_cell_attributes_name_with_pipe] PASSED [ 86%] 126s tests/test_tokenizer.py::test_roundtrip[tables:table_cell_attributes_pipe_after_equals] PASSED [ 86%] 126s tests/test_tokenizer.py::test_roundtrip[tables:table_cell_attributes_templates] PASSED [ 86%] 126s tests/test_tokenizer.py::test_roundtrip[tables:header_cell_attributes] PASSED [ 86%] 126s tests/test_tokenizer.py::test_roundtrip[tables:inline_cell_attributes] PASSED [ 87%] 126s tests/test_tokenizer.py::test_roundtrip[tables:table_row_attributes] PASSED [ 87%] 126s tests/test_tokenizer.py::test_roundtrip[tables:table_row_attributes_crazy_whitespace] PASSED [ 87%] 126s tests/test_tokenizer.py::test_roundtrip[tables:table_attributes] PASSED [ 87%] 126s tests/test_tokenizer.py::test_roundtrip[tables:inline_table_attributes] PASSED [ 87%] 126s tests/test_tokenizer.py::test_roundtrip[tables:table_incorrect_attributes] PASSED [ 87%] 126s tests/test_tokenizer.py::test_roundtrip[tables:templates_in_table_attribute] PASSED [ 87%] 126s tests/test_tokenizer.py::test_roundtrip[tables:templates_in_table_attribute_2] PASSED [ 87%] 126s tests/test_tokenizer.py::test_roundtrip[tables:inappropriate_marker_at_line_start] PASSED [ 87%] 126s tests/test_tokenizer.py::test_roundtrip[tables:fake_close_near_start] PASSED [ 87%] 126s tests/test_tokenizer.py::test_roundtrip[tables:fake_close_near_start_2] PASSED [ 87%] 126s tests/test_tokenizer.py::test_roundtrip[tables:junk_after_table_start] PASSED [ 87%] 126s tests/test_tokenizer.py::test_roundtrip[tables:junk_after_table_row] PASSED [ 87%] 126s tests/test_tokenizer.py::test_roundtrip[tables:incomplete_nested_open_only] PASSED [ 87%] 126s tests/test_tokenizer.py::test_roundtrip[tables:incomplete_nested_open_and_row] PASSED [ 87%] 126s tests/test_tokenizer.py::test_roundtrip[comments:blank] PASSED [ 87%] 126s tests/test_tokenizer.py::test_roundtrip[comments:basic] PASSED [ 87%] 126s tests/test_tokenizer.py::test_roundtrip[comments:tons_of_nonsense] PASSED [ 87%] 126s tests/test_tokenizer.py::test_roundtrip[comments:incomplete_blank] PASSED [ 87%] 126s tests/test_tokenizer.py::test_roundtrip[comments:incomplete_text] PASSED [ 87%] 126s tests/test_tokenizer.py::test_roundtrip[comments:incomplete_partial_close] PASSED [ 88%] 126s tests/test_tokenizer.py::test_roundtrip[comments:incomplete_part_only] PASSED [ 88%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:basic] PASSED [ 88%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:basic_brackets] PASSED [ 88%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_space] PASSED [ 88%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_title] PASSED [ 88%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_multiword_title] PASSED [ 88%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_adjacent] PASSED [ 88%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_newline_before] PASSED [ 88%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_newline_inside] PASSED [ 88%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_newline_after] PASSED [ 88%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_space_before] PASSED [ 88%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_title_like_url] PASSED [ 88%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_recursive] PASSED [ 88%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_recursive_2] PASSED [ 88%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:period_after] PASSED [ 88%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:colons_after] PASSED [ 88%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:close_paren_after_excluded] PASSED [ 88%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:close_paren_after_included] PASSED [ 88%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:open_bracket_inside] PASSED [ 88%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_period_after] PASSED [ 89%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_punct_after] PASSED [ 89%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_close_paren_after_included] PASSED [ 89%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_close_paren_after_included_2] PASSED [ 89%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_open_bracket_inside] PASSED [ 89%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:adjacent_space] PASSED [ 89%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:adjacent_newline] PASSED [ 89%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:adjacent_close_bracket] PASSED [ 89%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:html_entity_in_url] PASSED [ 89%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:template_in_url] PASSED [ 89%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:argument_in_url] PASSED [ 89%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:wikilink_in_url] PASSED [ 89%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:external_link_in_url] PASSED [ 89%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:spaces_padding] PASSED [ 89%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:text_and_spaces_padding] PASSED [ 89%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:template_before] PASSED [ 89%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:spaces_padding_no_slashes] PASSED [ 89%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:text_and_spaces_padding_no_slashes] PASSED [ 89%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:template_before_no_slashes] PASSED [ 89%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:no_slashes] PASSED [ 89%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:slashes_optional] PASSED [ 90%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:short] PASSED [ 90%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:slashes_missing] PASSED [ 90%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:no_scheme_but_slashes] PASSED [ 90%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:no_scheme_but_colon] PASSED [ 90%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:no_scheme_but_colon_and_slashes] PASSED [ 90%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:fake_scheme_no_slashes] PASSED [ 90%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:fake_scheme_slashes] PASSED [ 90%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:fake_scheme_brackets_no_slashes] PASSED [ 90%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:fake_scheme_brackets_slashes] PASSED [ 90%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:interrupted_scheme] PASSED [ 90%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:interrupted_scheme_brackets] PASSED [ 90%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:no_slashes_brackets] PASSED [ 90%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:space_before_no_slashes_brackets] PASSED [ 90%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:slashes_optional_brackets] PASSED [ 90%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:short_brackets] PASSED [ 90%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:slashes_missing_brackets] PASSED [ 90%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:protcol_relative] PASSED [ 90%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:scheme_missing_but_colon_brackets] PASSED [ 90%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:scheme_missing_but_colon_slashes_brackets] PASSED [ 90%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:unclosed_protocol_relative] PASSED [ 91%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:space_before_protcol_relative] PASSED [ 91%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:unclosed_just_scheme] PASSED [ 91%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:unclosed_scheme_colon] PASSED [ 91%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:unclosed_scheme_colon_slashes] PASSED [ 91%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:incomplete_bracket] PASSED [ 91%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:incomplete_scheme_colon] PASSED [ 91%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:incomplete_scheme_colon_slashes] PASSED [ 91%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_scheme_but_no_url] PASSED [ 91%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_scheme_slashes_but_no_url] PASSED [ 91%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_scheme_title_but_no_url] PASSED [ 91%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:url_preceded_by_non_word_character] PASSED [ 91%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:url_preceded_by_underscore] PASSED [ 91%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:url_terminated_by_double_quote] PASSED [ 91%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:url_not_terminated_by_single_quote] PASSED [ 91%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:url_terminated_by_two_single_quotes] PASSED [ 91%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:url_terminated_by_left_angle] PASSED [ 91%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:url_terminated_by_right_angle] PASSED [ 91%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_terminated_by_double_quote] PASSED [ 91%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_not_terminated_by_single_quote] PASSED [ 91%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_terminated_by_two_single_quotes] PASSED [ 92%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_terminated_by_left_angle] PASSED [ 92%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:brackets_terminated_by_right_angle] PASSED [ 92%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:scheme_case] PASSED [ 92%] 126s tests/test_tokenizer.py::test_roundtrip[external_links:bracket_scheme_case] PASSED [ 92%] 126s tests/test_tokenizer.py::test_roundtrip[integration:empty] PASSED [ 92%] 126s tests/test_tokenizer.py::test_roundtrip[integration:template_argument_mix] PASSED [ 92%] 126s tests/test_tokenizer.py::test_roundtrip[integration:link_in_template_name] PASSED [ 92%] 126s tests/test_tokenizer.py::test_roundtrip[integration:rich_heading] PASSED [ 92%] 126s tests/test_tokenizer.py::test_roundtrip[integration:html_entity_with_template] PASSED [ 92%] 126s tests/test_tokenizer.py::test_roundtrip[integration:html_entity_with_comment] PASSED [ 92%] 126s tests/test_tokenizer.py::test_roundtrip[integration:rich_tags] PASSED [ 92%] 126s tests/test_tokenizer.py::test_roundtrip[integration:wildcard] PASSED [ 92%] 126s tests/test_tokenizer.py::test_roundtrip[integration:wildcard_redux] PASSED [ 92%] 126s tests/test_tokenizer.py::test_roundtrip[integration:link_inside_dl] PASSED [ 92%] 126s tests/test_tokenizer.py::test_roundtrip[integration:link_inside_dl_2] PASSED [ 92%] 126s tests/test_tokenizer.py::test_roundtrip[integration:link_inside_template] PASSED [ 92%] 126s tests/test_tokenizer.py::test_roundtrip[integration:link_inside_template_2] PASSED [ 92%] 126s tests/test_tokenizer.py::test_roundtrip[integration:link_inside_template_3] PASSED [ 92%] 126s tests/test_tokenizer.py::test_roundtrip[integration:link_inside_argument] PASSED [ 92%] 126s tests/test_tokenizer.py::test_roundtrip[integration:link_inside_heading] PASSED [ 93%] 126s tests/test_tokenizer.py::test_roundtrip[integration:link_inside_tag_body] PASSED [ 93%] 126s tests/test_tokenizer.py::test_roundtrip[integration:link_inside_tag_style] PASSED [ 93%] 126s tests/test_tokenizer.py::test_roundtrip[integration:style_tag_inside_link] PASSED [ 93%] 126s tests/test_tokenizer.py::test_roundtrip[integration:comment_inside_link] PASSED [ 93%] 126s tests/test_tokenizer.py::test_roundtrip[integration:bracketed_link_inside_template] PASSED [ 93%] 126s tests/test_tokenizer.py::test_roundtrip[integration:comment_inside_bracketed_link] PASSED [ 93%] 126s tests/test_tokenizer.py::test_roundtrip[integration:wikilink_inside_external_link] PASSED [ 93%] 126s tests/test_tokenizer.py::test_roundtrip[integration:external_link_inside_wikilink] PASSED [ 93%] 126s tests/test_tokenizer.py::test_roundtrip[integration:external_link_inside_wikilink_brackets] PASSED [ 93%] 126s tests/test_tokenizer.py::test_roundtrip[integration:external_link_inside_wikilink_title] PASSED [ 93%] 126s tests/test_tokenizer.py::test_roundtrip[integration:italics_inside_external_link_inside_incomplete_list] PASSED [ 93%] 126s tests/test_tokenizer.py::test_roundtrip[integration:nodes_inside_external_link_after_punct] PASSED [ 93%] 126s tests/test_tokenizer.py::test_roundtrip[integration:newline_and_comment_in_template_name] PASSED [ 93%] 126s tests/test_tokenizer.py::test_roundtrip[integration:newline_and_comment_in_template_name_2] PASSED [ 93%] 126s tests/test_tokenizer.py::test_roundtrip[integration:newline_and_comment_in_template_name_3] PASSED [ 93%] 126s tests/test_tokenizer.py::test_roundtrip[integration:newline_and_comment_in_template_name_4] PASSED [ 93%] 126s tests/test_tokenizer.py::test_roundtrip[integration:newline_and_comment_in_template_name_5] PASSED [ 93%] 126s tests/test_tokenizer.py::test_roundtrip[integration:newline_and_comment_in_template_name_6] PASSED [ 93%] 126s tests/test_tokenizer.py::test_roundtrip[integration:newline_and_comment_in_template_name_7] PASSED [ 93%] 126s tests/test_tokenizer.py::test_roundtrip[integration:newline_and_comment_in_template_name_8] PASSED [ 94%] 126s tests/test_tokenizer.py::test_roundtrip[integration:tag_in_link_title] PASSED [ 94%] 126s tests/test_tokenizer.py::test_roundtrip[integration:tag_in_template_name] PASSED [ 94%] 126s tests/test_tokenizer.py::test_roundtrip[integration:tag_in_link_text] PASSED [ 94%] 126s tests/test_tokenizer.py::test_roundtrip[integration:comment_in_link_title] PASSED [ 94%] 126s tests/test_tokenizer.py::test_roundtrip[integration:incomplete_comment_in_link_title] PASSED [ 94%] 126s tests/test_tokenizer.py::test_roundtrip[integration:incomplete_comment_in_link_title_2] PASSED [ 94%] 126s tests/test_tokenizer.py::test_roundtrip[integration:incomplete_comment_in_link_title_3] PASSED [ 94%] 126s tests/test_tokenizer.py::test_roundtrip[integration:incomplete_comment_in_link_title_4] PASSED [ 94%] 126s tests/test_tokenizer.py::test_roundtrip[integration:incomplete_comment_in_link_title_5] PASSED [ 94%] 126s tests/test_tokenizer.py::test_roundtrip[integration:incomplete_comment_in_link_title_6] PASSED [ 94%] 126s tests/test_tokenizer.py::test_roundtrip[integration:wikilink_to_external_link_fallback] PASSED [ 94%] 126s tests/test_tokenizer.py::test_roundtrip[integration:wikilink_to_external_link_fallback_2] PASSED [ 94%] 126s tests/test_tokenizer.py::test_roundtrip[integration:tables_in_templates] PASSED [ 94%] 126s tests/test_tokenizer.py::test_roundtrip[integration:tables_in_templates_2] PASSED [ 94%] 126s tests/test_tokenizer.py::test_roundtrip[integration:many_invalid_nested_tags] PASSED [ 94%] 126s tests/test_tokenizer.py::test_roundtrip[integration:nested_templates_and_style_tags] PASSED [ 94%] 126s tests/test_tokenizer.py::test_roundtrip[integration:wikilink_nested_with_nowiki] PASSED [ 94%] 126s tests/test_tokenizer.py::test_roundtrip[arguments:blank] PASSED [ 94%] 126s tests/test_tokenizer.py::test_roundtrip[arguments:blank_with_default] PASSED [ 94%] 126s tests/test_tokenizer.py::test_roundtrip[arguments:basic] PASSED [ 95%] 126s tests/test_tokenizer.py::test_roundtrip[arguments:default] PASSED [ 95%] 126s tests/test_tokenizer.py::test_roundtrip[arguments:blank_with_multiple_defaults] PASSED [ 95%] 126s tests/test_tokenizer.py::test_roundtrip[arguments:multiple_defaults] PASSED [ 95%] 126s tests/test_tokenizer.py::test_roundtrip[arguments:newline] PASSED [ 95%] 126s tests/test_tokenizer.py::test_roundtrip[arguments:right_braces] PASSED [ 95%] 126s tests/test_tokenizer.py::test_roundtrip[arguments:right_braces_default] PASSED [ 95%] 126s tests/test_tokenizer.py::test_roundtrip[arguments:nested] PASSED [ 95%] 126s tests/test_tokenizer.py::test_roundtrip[arguments:invalid_braces] PASSED [ 95%] 126s tests/test_tokenizer.py::test_roundtrip[arguments:incomplete_open_only] PASSED [ 95%] 126s tests/test_tokenizer.py::test_roundtrip[arguments:incomplete_open_text] PASSED [ 95%] 126s tests/test_tokenizer.py::test_roundtrip[arguments:incomplete_open_text_pipe] PASSED [ 95%] 126s tests/test_tokenizer.py::test_roundtrip[arguments:incomplete_open_pipe] PASSED [ 95%] 126s tests/test_tokenizer.py::test_roundtrip[arguments:incomplete_open_pipe_text] PASSED [ 95%] 126s tests/test_tokenizer.py::test_roundtrip[arguments:incomplete_open_pipes_text] PASSED [ 95%] 126s tests/test_tokenizer.py::test_roundtrip[arguments:incomplete_open_partial_close] PASSED [ 95%] 126s tests/test_tokenizer.py::test_roundtrip[arguments:incomplete_preserve_previous] PASSED [ 95%] 126s tests/test_tokenizer.py::test_c_tokenizer_uses_c PASSED [ 95%] 126s tests/test_tokenizer.py::test_describe_context PASSED [ 95%] 126s tests/test_tokens.py::test_issubclass[Token] PASSED [ 95%] 126s tests/test_tokens.py::test_issubclass[Text] PASSED [ 96%] 126s tests/test_tokens.py::test_issubclass[TemplateOpen] PASSED [ 96%] 126s tests/test_tokens.py::test_issubclass[TemplateParamSeparator] PASSED [ 96%] 126s tests/test_tokens.py::test_issubclass[TemplateParamEquals] PASSED [ 96%] 126s tests/test_tokens.py::test_issubclass[TemplateClose] PASSED [ 96%] 126s tests/test_tokens.py::test_issubclass[ArgumentOpen] PASSED [ 96%] 126s tests/test_tokens.py::test_issubclass[ArgumentSeparator] PASSED [ 96%] 126s tests/test_tokens.py::test_issubclass[ArgumentClose] PASSED [ 96%] 126s tests/test_tokens.py::test_issubclass[WikilinkOpen] PASSED [ 96%] 126s tests/test_tokens.py::test_issubclass[WikilinkSeparator] PASSED [ 96%] 126s tests/test_tokens.py::test_issubclass[WikilinkClose] PASSED [ 96%] 126s tests/test_tokens.py::test_issubclass[ExternalLinkOpen] PASSED [ 96%] 126s tests/test_tokens.py::test_issubclass[ExternalLinkSeparator] PASSED [ 96%] 126s tests/test_tokens.py::test_issubclass[ExternalLinkClose] PASSED [ 96%] 126s tests/test_tokens.py::test_issubclass[HTMLEntityStart] PASSED [ 96%] 126s tests/test_tokens.py::test_issubclass[HTMLEntityNumeric] PASSED [ 96%] 126s tests/test_tokens.py::test_issubclass[HTMLEntityHex] PASSED [ 96%] 126s tests/test_tokens.py::test_issubclass[HTMLEntityEnd] PASSED [ 96%] 126s tests/test_tokens.py::test_issubclass[HeadingStart] PASSED [ 96%] 126s tests/test_tokens.py::test_issubclass[HeadingEnd] PASSED [ 96%] 126s tests/test_tokens.py::test_issubclass[CommentStart] PASSED [ 97%] 126s tests/test_tokens.py::test_issubclass[CommentEnd] PASSED [ 97%] 126s tests/test_tokens.py::test_issubclass[TagOpenOpen] PASSED [ 97%] 126s tests/test_tokens.py::test_issubclass[TagAttrStart] PASSED [ 97%] 126s tests/test_tokens.py::test_issubclass[TagAttrEquals] PASSED [ 97%] 126s tests/test_tokens.py::test_issubclass[TagAttrQuote] PASSED [ 97%] 126s tests/test_tokens.py::test_issubclass[TagCloseOpen] PASSED [ 97%] 126s tests/test_tokens.py::test_issubclass[TagCloseSelfclose] PASSED [ 97%] 126s tests/test_tokens.py::test_issubclass[TagOpenClose] PASSED [ 97%] 126s tests/test_tokens.py::test_issubclass[TagCloseClose] PASSED [ 97%] 126s tests/test_tokens.py::test_attributes PASSED [ 97%] 126s tests/test_tokens.py::test_repr PASSED [ 97%] 126s tests/test_tokens.py::test_equality PASSED [ 97%] 126s tests/test_tokens.py::test_repr_equality[token0] PASSED [ 97%] 126s tests/test_tokens.py::test_repr_equality[token1] PASSED [ 97%] 126s tests/test_tokens.py::test_repr_equality[token2] PASSED [ 97%] 126s tests/test_utils.py::test_parse_anything_valid[test0-valid0] PASSED [ 97%] 126s tests/test_utils.py::test_parse_anything_valid[test1-valid1] PASSED [ 97%] 126s tests/test_utils.py::test_parse_anything_valid[f\xf3\xf3bar-valid2] PASSED [ 97%] 126s tests/test_utils.py::test_parse_anything_valid[foob\xc3\xa1r-valid3] PASSED [ 97%] 126s tests/test_utils.py::test_parse_anything_valid[123-valid4] PASSED [ 98%] 126s tests/test_utils.py::test_parse_anything_valid[True-valid5] PASSED [ 98%] 126s tests/test_utils.py::test_parse_anything_valid[None-valid6] PASSED [ 98%] 126s tests/test_utils.py::test_parse_anything_valid[test7-valid7] PASSED [ 98%] 126s tests/test_utils.py::test_parse_anything_valid[test8-valid8] PASSED [ 98%] 126s tests/test_utils.py::test_parse_anything_valid[test9-valid9] PASSED [ 98%] 126s tests/test_utils.py::test_parse_anything_invalid[invalid0] PASSED [ 98%] 126s tests/test_utils.py::test_parse_anything_invalid[object] PASSED [ 98%] 126s tests/test_utils.py::test_parse_anything_invalid[invalid2] PASSED [ 98%] 126s tests/test_utils.py::test_parse_anything_invalid[type] PASSED [ 98%] 126s tests/test_utils.py::test_parse_anything_invalid[invalid4] PASSED [ 98%] 126s tests/test_wikicode.py::test_str PASSED [ 98%] 126s tests/test_wikicode.py::test_nodes PASSED [ 98%] 126s tests/test_wikicode.py::test_pickling[0] PASSED [ 98%] 126s tests/test_wikicode.py::test_pickling[1] PASSED [ 98%] 126s tests/test_wikicode.py::test_pickling[2] PASSED [ 98%] 126s tests/test_wikicode.py::test_pickling[3] PASSED [ 98%] 126s tests/test_wikicode.py::test_pickling[4] PASSED [ 98%] 126s tests/test_wikicode.py::test_pickling[5] PASSED [ 98%] 126s tests/test_wikicode.py::test_get PASSED [ 98%] 126s tests/test_wikicode.py::test_set PASSED [ 99%] 126s tests/test_wikicode.py::test_contains PASSED [ 99%] 126s tests/test_wikicode.py::test_index PASSED [ 99%] 126s tests/test_wikicode.py::test_get_ancestors_parent PASSED [ 99%] 126s tests/test_wikicode.py::test_insert PASSED [ 99%] 126s tests/test_wikicode.py::test_insert_before PASSED [ 99%] 126s tests/test_wikicode.py::test_insert_after PASSED [ 99%] 126s tests/test_wikicode.py::test_replace PASSED [ 99%] 126s tests/test_wikicode.py::test_append PASSED [ 99%] 126s tests/test_wikicode.py::test_remove PASSED [ 99%] 126s tests/test_wikicode.py::test_matches PASSED [ 99%] 126s tests/test_wikicode.py::test_filter_family PASSED [ 99%] 126s tests/test_wikicode.py::test_get_sections PASSED [ 99%] 126s tests/test_wikicode.py::test_strip_code PASSED [ 99%] 126s tests/test_wikicode.py::test_get_tree PASSED [ 99%] 126s tests/test_wikilink.py::test_str PASSED [ 99%] 126s tests/test_wikilink.py::test_children PASSED [ 99%] 126s tests/test_wikilink.py::test_strip PASSED [ 99%] 126s tests/test_wikilink.py::test_showtree PASSED [ 99%] 126s tests/test_wikilink.py::test_title PASSED [ 99%] 126s tests/test_wikilink.py::test_text PASSED [100%] 126s 126s ======================= 2004 passed, 1 skipped in 3.17s ======================== 127s autopkgtest [18:45:13]: test unittest: -----------------------] 127s autopkgtest [18:45:13]: test unittest: - - - - - - - - - - results - - - - - - - - - - 127s unittest PASS 128s autopkgtest [18:45:14]: @@@@@@@@@@@@@@@@@@@@ summary 128s unittest PASS 132s virt: nova [W] Using flock in prodstack6-ppc64el 132s virt: Creating nova instance adt-plucky-ppc64el-mwparserfromhell-20241113-184306-juju-7f2275-prod-proposed-migration-environment-2-a0df3ed6-eb33-4575-b4a1-b42665828348 from image adt/ubuntu-plucky-ppc64el-server-20241113.img (UUID 0c5715b6-5cca-4485-b8bf-b85dfd917a5f)...