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