Diff of the two buildlogs: -- --- b1/build.log 2020-03-07 00:18:58.622475998 +0000 +++ b2/build.log 2020-03-07 00:19:39.813678239 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Fri Mar 6 12:10:13 -12 2020 -I: pbuilder-time-stamp: 1583539813 +I: Current time: Fri Apr 9 20:41:59 +14 2021 +I: pbuilder-time-stamp: 1617950519 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/buster-reproducible-base.tgz] I: copying local configuration @@ -18,7 +18,7 @@ I: Extracting source gpgv: unknown type of key resource 'trustedkeys.kbx' gpgv: keyblock resource '/root/.gnupg/trustedkeys.kbx': General error -gpgv: Signature made Fri Mar 1 08:35:46 2019 -12 +gpgv: Signature made Sat Mar 2 10:35:46 2019 +14 gpgv: using RSA key D8CB59F05DBB9E0538C4819DF105F8101B05269B gpgv: issuer "legoktm@debian.org" gpgv: Can't check signature: No public key @@ -28,6 +28,18 @@ dpkg-source: info: unpacking mwparserfromhell_0.5.2-2.debian.tar.xz I: Not using root during the build. I: Installing the build-deps +I: user script /srv/workspace/pbuilder/51016/tmp/hooks/D01_modify_environment starting +disorder-fs debug: Running on profitbricks-build16-i386. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +Removing 'diversion of /bin/sh to /bin/sh.distrib by dash' +Adding 'diversion of /bin/sh to /bin/sh.distrib by bash' +Removing 'diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by dash' +Adding 'diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by bash' +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/51016/tmp/hooks/D01_modify_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -155,7 +167,7 @@ Get: 80 http://deb.debian.org/debian buster/main i386 python3-all-dev i386 3.7.3-1 [1068 B] Get: 81 http://deb.debian.org/debian buster/main i386 python3-pkg-resources all 40.8.0-1 [153 kB] Get: 82 http://deb.debian.org/debian buster/main i386 python3-setuptools all 40.8.0-1 [306 kB] -Fetched 114 MB in 34s (3363 kB/s) +Fetched 114 MB in 1s (88.5 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libbsd0:i386. (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 ... 19231 files and directories currently installed.) @@ -505,7 +517,7 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/mwparserfromhell-0.5.2/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b +I: Running cd /build/mwparserfromhell-0.5.2/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b dpkg-buildpackage: info: source package mwparserfromhell dpkg-buildpackage: info: source version 0.5.2-2 dpkg-buildpackage: info: source distribution unstable @@ -541,29 +553,29 @@ running build running build_py creating /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell -copying mwparserfromhell/smart_list.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell -copying mwparserfromhell/definitions.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell -copying mwparserfromhell/compat.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell copying mwparserfromhell/wikicode.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell +copying mwparserfromhell/definitions.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell copying mwparserfromhell/__init__.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell copying mwparserfromhell/string_mixin.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell copying mwparserfromhell/utils.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell +copying mwparserfromhell/smart_list.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell +copying mwparserfromhell/compat.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell creating /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes -copying mwparserfromhell/nodes/comment.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes -copying mwparserfromhell/nodes/text.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes -copying mwparserfromhell/nodes/html_entity.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes -copying mwparserfromhell/nodes/external_link.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes -copying mwparserfromhell/nodes/wikilink.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes copying mwparserfromhell/nodes/template.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes -copying mwparserfromhell/nodes/tag.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes -copying mwparserfromhell/nodes/__init__.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes -copying mwparserfromhell/nodes/argument.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes +copying mwparserfromhell/nodes/external_link.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes copying mwparserfromhell/nodes/heading.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes +copying mwparserfromhell/nodes/html_entity.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes +copying mwparserfromhell/nodes/argument.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes +copying mwparserfromhell/nodes/text.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes +copying mwparserfromhell/nodes/__init__.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes +copying mwparserfromhell/nodes/comment.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes +copying mwparserfromhell/nodes/tag.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes +copying mwparserfromhell/nodes/wikilink.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes creating /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/parser -copying mwparserfromhell/parser/builder.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/parser copying mwparserfromhell/parser/tokens.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/parser -copying mwparserfromhell/parser/__init__.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/parser copying mwparserfromhell/parser/tokenizer.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/parser +copying mwparserfromhell/parser/builder.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/parser +copying mwparserfromhell/parser/__init__.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/parser copying mwparserfromhell/parser/contexts.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/parser creating /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes/extras copying mwparserfromhell/nodes/extras/attribute.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes/extras @@ -589,29 +601,29 @@ running build running build_py creating /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell -copying mwparserfromhell/smart_list.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell -copying mwparserfromhell/definitions.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell -copying mwparserfromhell/compat.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell copying mwparserfromhell/wikicode.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell +copying mwparserfromhell/definitions.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell copying mwparserfromhell/__init__.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell copying mwparserfromhell/string_mixin.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell copying mwparserfromhell/utils.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell +copying mwparserfromhell/smart_list.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell +copying mwparserfromhell/compat.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell creating /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes -copying mwparserfromhell/nodes/comment.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes -copying mwparserfromhell/nodes/text.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes -copying mwparserfromhell/nodes/html_entity.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes -copying mwparserfromhell/nodes/external_link.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes -copying mwparserfromhell/nodes/wikilink.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes copying mwparserfromhell/nodes/template.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes -copying mwparserfromhell/nodes/tag.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes -copying mwparserfromhell/nodes/__init__.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes -copying mwparserfromhell/nodes/argument.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes +copying mwparserfromhell/nodes/external_link.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes copying mwparserfromhell/nodes/heading.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes +copying mwparserfromhell/nodes/html_entity.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes +copying mwparserfromhell/nodes/argument.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes +copying mwparserfromhell/nodes/text.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes +copying mwparserfromhell/nodes/__init__.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes +copying mwparserfromhell/nodes/comment.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes +copying mwparserfromhell/nodes/tag.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes +copying mwparserfromhell/nodes/wikilink.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes creating /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/parser -copying mwparserfromhell/parser/builder.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/parser copying mwparserfromhell/parser/tokens.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/parser -copying mwparserfromhell/parser/__init__.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/parser copying mwparserfromhell/parser/tokenizer.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/parser +copying mwparserfromhell/parser/builder.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/parser +copying mwparserfromhell/parser/__init__.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/parser copying mwparserfromhell/parser/contexts.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/parser creating /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes/extras copying mwparserfromhell/nodes/extras/attribute.py -> /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes/extras @@ -1746,6 +1758,28 @@ incomplete wikilinks: an open, then one right brace ... ok test_wikilinks30_incomplete_preserve_previous (tests.test_roundtripping.TestRoundtripping) incomplete wikilinks: a valid wikilink followed by an invalid one ... ok +test_children (tests.test_argument.TestArgument) +test Argument.__children__() ... ok +test_default (tests.test_argument.TestArgument) +test getter/setter for the default attribute ... ok +test_name (tests.test_argument.TestArgument) +test getter/setter for the name attribute ... ok +test_showtree (tests.test_argument.TestArgument) +test Argument.__showtree__() ... ok +test_strip (tests.test_argument.TestArgument) +test Argument.__strip__() ... ok +test_unicode (tests.test_argument.TestArgument) +test Argument.__unicode__() ... ok +test_attributes (tests.test_tokens.TestTokens) +check that Token attributes can be managed properly ... ok +test_equality (tests.test_tokens.TestTokens) +check that equivalent tokens are considered equal ... ok +test_issubclass (tests.test_tokens.TestTokens) +check that all classes within the tokens module are really Tokens ... ok +test_repr (tests.test_tokens.TestTokens) +check that repr() on a Token works as expected ... ok +test_repr_equality (tests.test_tokens.TestTokens) +check that eval(repr(token)) == token ... ok test_readme_1 (tests.test_docs.TestDocs) test a block of example code in the README ... ok test_readme_2 (tests.test_docs.TestDocs) @@ -1756,6 +1790,1180 @@ test a block of example code in the README ... ok test_readme_5 (tests.test_docs.TestDocs) test a block of example code in the README; includes a web call ... skipped 'cannot continue because of unsuccessful web call' +test_children (tests.test_html_entity.TestHTMLEntity) +test HTMLEntity.__children__() ... ok +test_hex_char (tests.test_html_entity.TestHTMLEntity) +test getter/setter for the hex_char attribute ... ok +test_hexadecimal (tests.test_html_entity.TestHTMLEntity) +test getter/setter for the hexadecimal attribute ... ok +test_named (tests.test_html_entity.TestHTMLEntity) +test getter/setter for the named attribute ... ok +test_normalize (tests.test_html_entity.TestHTMLEntity) +test getter/setter for the normalize attribute ... ok +test_showtree (tests.test_html_entity.TestHTMLEntity) +test HTMLEntity.__showtree__() ... ok +test_strip (tests.test_html_entity.TestHTMLEntity) +test HTMLEntity.__strip__() ... ok +test_unicode (tests.test_html_entity.TestHTMLEntity) +test HTMLEntity.__unicode__() ... ok +test_value (tests.test_html_entity.TestHTMLEntity) +test getter/setter for the value attribute ... ok +test_append (tests.test_wikicode.TestWikicode) +test Wikicode.append() ... ok +test_contains (tests.test_wikicode.TestWikicode) +test Wikicode.contains() ... ok +test_filter_family (tests.test_wikicode.TestWikicode) +test the Wikicode.i?filter() family of functions ... ok +test_get (tests.test_wikicode.TestWikicode) +test Wikicode.get() ... ok +test_get_ancestors_parent (tests.test_wikicode.TestWikicode) +test Wikicode.get_ancestors() and Wikicode.get_parent() ... ok +test_get_sections (tests.test_wikicode.TestWikicode) +test Wikicode.get_sections() ... ok +test_get_tree (tests.test_wikicode.TestWikicode) +test Wikicode.get_tree() ... ok +test_index (tests.test_wikicode.TestWikicode) +test Wikicode.index() ... ok +test_insert (tests.test_wikicode.TestWikicode) +test Wikicode.insert() ... ok +test_insert_after (tests.test_wikicode.TestWikicode) +test Wikicode.insert_after() ... ok +test_insert_before (tests.test_wikicode.TestWikicode) +test Wikicode.insert_before() ... ok +test_matches (tests.test_wikicode.TestWikicode) +test Wikicode.matches() ... ok +test_nodes (tests.test_wikicode.TestWikicode) +test getter/setter for the nodes attribute ... ok +test_remove (tests.test_wikicode.TestWikicode) +test Wikicode.remove() ... ok +test_replace (tests.test_wikicode.TestWikicode) +test Wikicode.replace() ... ok +test_set (tests.test_wikicode.TestWikicode) +test Wikicode.set() ... ok +test_strip_code (tests.test_wikicode.TestWikicode) +test Wikicode.strip_code() ... ok +test_unicode (tests.test_wikicode.TestWikicode) +test Wikicode.__unicode__() ... ok +test_children (tests.test_heading.TestHeading) +test Heading.__children__() ... ok +test_level (tests.test_heading.TestHeading) +test getter/setter for the level attribute ... ok +test_showtree (tests.test_heading.TestHeading) +test Heading.__showtree__() ... ok +test_strip (tests.test_heading.TestHeading) +test Heading.__strip__() ... ok +test_title (tests.test_heading.TestHeading) +test getter/setter for the title attribute ... ok +test_unicode (tests.test_heading.TestHeading) +test Heading.__unicode__() ... ok +test_parsing (tests.test_parser.TestParser) +integration test for parsing overall ... ok +test_skip_style_tags (tests.test_parser.TestParser) +test Parser.parse(skip_style_tags=True) ... ok +test_use_c (tests.test_parser.TestParser) +make sure the correct tokenizer is used ... ok +test_arguments01_blank (tests.test_pytokenizer.TestPyTokenizer) +argument with no content ... ok +test_arguments02_blank_with_default (tests.test_pytokenizer.TestPyTokenizer) +argument with no content but a pipe ... ok +test_arguments03_basic (tests.test_pytokenizer.TestPyTokenizer) +simplest type of argument ... ok +test_arguments04_default (tests.test_pytokenizer.TestPyTokenizer) +argument with a default value ... ok +test_arguments05_blank_with_multiple_defaults (tests.test_pytokenizer.TestPyTokenizer) +no content, multiple pipes ... ok +test_arguments06_multiple_defaults (tests.test_pytokenizer.TestPyTokenizer) +multiple values separated by pipes ... ok +test_arguments07_newline (tests.test_pytokenizer.TestPyTokenizer) +newline as only content ... ok +test_arguments08_right_braces (tests.test_pytokenizer.TestPyTokenizer) +multiple } scattered throughout text ... ok +test_arguments09_right_braces_default (tests.test_pytokenizer.TestPyTokenizer) +multiple } scattered throughout text, with a default value ... ok +test_arguments10_nested (tests.test_pytokenizer.TestPyTokenizer) +an argument nested within another argument ... ok +test_arguments11_invalid_braces (tests.test_pytokenizer.TestPyTokenizer) +invalid argument: multiple braces that are not part of a template or argument ... ok +test_arguments12_incomplete_open_only (tests.test_pytokenizer.TestPyTokenizer) +incomplete arguments: just an open ... ok +test_arguments13_incomplete_open_text (tests.test_pytokenizer.TestPyTokenizer) +incomplete arguments: an open with some text ... ok +test_arguments14_incomplete_open_text_pipe (tests.test_pytokenizer.TestPyTokenizer) +incomplete arguments: an open, text, then a pipe ... ok +test_arguments15_incomplete_open_pipe (tests.test_pytokenizer.TestPyTokenizer) +incomplete arguments: an open, then a pipe ... ok +test_arguments16_incomplete_open_pipe_text (tests.test_pytokenizer.TestPyTokenizer) +incomplete arguments: an open, then a pipe, then text ... ok +test_arguments17_incomplete_open_pipes_text (tests.test_pytokenizer.TestPyTokenizer) +incomplete arguments: a pipe, then text then two pipes ... ok +test_arguments18_incomplete_open_partial_close (tests.test_pytokenizer.TestPyTokenizer) +incomplete arguments: an open, then one right brace ... ok +test_arguments19_incomplete_preserve_previous (tests.test_pytokenizer.TestPyTokenizer) +incomplete arguments: a valid argument followed by an invalid one ... ok +test_comments1_blank (tests.test_pytokenizer.TestPyTokenizer) +a blank comment ... ok +test_comments2_basic (tests.test_pytokenizer.TestPyTokenizer) +a basic comment ... ok +test_comments3_tons_of_nonsense (tests.test_pytokenizer.TestPyTokenizer) +a comment with tons of ignorable garbage in it ... ok +test_comments4_incomplete_blank (tests.test_pytokenizer.TestPyTokenizer) +a comment that doesn't close ... ok +test_comments5_incomplete_text (tests.test_pytokenizer.TestPyTokenizer) +a comment that doesn't close, with text ... ok +test_comments6_incomplete_partial_close (tests.test_pytokenizer.TestPyTokenizer) +a comment that doesn't close, with a partial close ... ok +test_comments7_incomplete_part_only (tests.test_pytokenizer.TestPyTokenizer) +a comment that only has a < and ! ... ok +test_external_links01_basic (tests.test_pytokenizer.TestPyTokenizer) +basic external link ... ok +test_external_links02_basic_brackets (tests.test_pytokenizer.TestPyTokenizer) +basic external link in brackets ... ok +test_external_links03_brackets_space (tests.test_pytokenizer.TestPyTokenizer) +basic external link in brackets, with a space after ... ok +test_external_links04_brackets_title (tests.test_pytokenizer.TestPyTokenizer) +basic external link in brackets, with a title ... ok +test_external_links05_brackets_multiword_title (tests.test_pytokenizer.TestPyTokenizer) +basic external link in brackets, with a multi-word title ... ok +test_external_links06_brackets_adjacent (tests.test_pytokenizer.TestPyTokenizer) +three adjacent bracket-enclosed external links ... ok +test_external_links07_brackets_newline_before (tests.test_pytokenizer.TestPyTokenizer) +bracket-enclosed link with a newline before the title ... ok +test_external_links08_brackets_newline_inside (tests.test_pytokenizer.TestPyTokenizer) +bracket-enclosed link with a newline in the title ... ok +test_external_links09_brackets_newline_after (tests.test_pytokenizer.TestPyTokenizer) +bracket-enclosed link with a newline after the title ... ok +test_external_links10_brackets_space_before (tests.test_pytokenizer.TestPyTokenizer) +bracket-enclosed link with a space before the URL ... ok +test_external_links11_brackets_title_like_url (tests.test_pytokenizer.TestPyTokenizer) +bracket-enclosed link with a title that looks like a URL ... ok +test_external_links12_brackets_recursive (tests.test_pytokenizer.TestPyTokenizer) +bracket-enclosed link with a bracket-enclosed link as the title ... ok +test_external_links13_brackets_recursive_2 (tests.test_pytokenizer.TestPyTokenizer) +bracket-enclosed link with a double bracket-enclosed link as the title ... ok +test_external_links14_period_after (tests.test_pytokenizer.TestPyTokenizer) +a period after a free link that is excluded ... ok +test_external_links15_colons_after (tests.test_pytokenizer.TestPyTokenizer) +colons after a free link that are excluded ... ok +test_external_links16_close_paren_after_excluded (tests.test_pytokenizer.TestPyTokenizer) +a closing parenthesis after a free link that is excluded ... ok +test_external_links17_close_paren_after_included (tests.test_pytokenizer.TestPyTokenizer) +a closing parenthesis after a free link that is included because of an opening parenthesis in the URL ... ok +test_external_links18_open_bracket_inside (tests.test_pytokenizer.TestPyTokenizer) +an open bracket inside a free link that causes it to be ended abruptly ... ok +test_external_links19_brackets_period_after (tests.test_pytokenizer.TestPyTokenizer) +a period after a bracket-enclosed link that is included ... ok +test_external_links20_brackets_punct_after (tests.test_pytokenizer.TestPyTokenizer) +punctuation after a bracket-enclosed link that are included ... ok +test_external_links21_brackets_close_paren_after_included (tests.test_pytokenizer.TestPyTokenizer) +a closing parenthesis after a bracket-enclosed link that is included ... ok +test_external_links22_brackets_close_paren_after_included_2 (tests.test_pytokenizer.TestPyTokenizer) +a closing parenthesis after a bracket-enclosed link that is also included ... ok +test_external_links23_brackets_open_bracket_inside (tests.test_pytokenizer.TestPyTokenizer) +an open bracket inside a bracket-enclosed link that is also included ... ok +test_external_links24_adjacent_space (tests.test_pytokenizer.TestPyTokenizer) +two free links separated by a space ... ok +test_external_links25_adjacent_newline (tests.test_pytokenizer.TestPyTokenizer) +two free links separated by a newline ... ok +test_external_links26_adjacent_close_bracket (tests.test_pytokenizer.TestPyTokenizer) +two free links separated by a close bracket ... ok +test_external_links27_html_entity_in_url (tests.test_pytokenizer.TestPyTokenizer) +a HTML entity parsed correctly inside a free link ... ok +test_external_links28_template_in_url (tests.test_pytokenizer.TestPyTokenizer) +a template parsed correctly inside a free link ... ok +test_external_links29_argument_in_url (tests.test_pytokenizer.TestPyTokenizer) +an argument parsed correctly inside a free link ... ok +test_external_links30_wikilink_in_url (tests.test_pytokenizer.TestPyTokenizer) +a wikilink that destroys a free link ... ok +test_external_links31_external_link_in_url (tests.test_pytokenizer.TestPyTokenizer) +a bracketed link that destroys a free link ... ok +test_external_links32_spaces_padding (tests.test_pytokenizer.TestPyTokenizer) +spaces padding a free link ... ok +test_external_links33_text_and_spaces_padding (tests.test_pytokenizer.TestPyTokenizer) +text and spaces padding a free link ... ok +test_external_links34_template_before (tests.test_pytokenizer.TestPyTokenizer) +a template before a free link ... ok +test_external_links35_spaces_padding_no_slashes (tests.test_pytokenizer.TestPyTokenizer) +spaces padding a free link with no slashes after the colon ... ok +test_external_links36_text_and_spaces_padding_no_slashes (tests.test_pytokenizer.TestPyTokenizer) +text and spaces padding a free link with no slashes after the colon ... ok +test_external_links37_template_before_no_slashes (tests.test_pytokenizer.TestPyTokenizer) +a template before a free link with no slashes after the colon ... ok +test_external_links38_no_slashes (tests.test_pytokenizer.TestPyTokenizer) +a free link with no slashes after the colon ... ok +test_external_links39_slashes_optional (tests.test_pytokenizer.TestPyTokenizer) +a free link using a scheme that doesn't need slashes, but has them anyway ... ok +test_external_links40_short (tests.test_pytokenizer.TestPyTokenizer) +a very short free link ... ok +test_external_links41_slashes_missing (tests.test_pytokenizer.TestPyTokenizer) +slashes missing from a free link with a scheme that requires them ... ok +test_external_links42_no_scheme_but_slashes (tests.test_pytokenizer.TestPyTokenizer) +no scheme in a free link, but slashes (protocol-relative free links are not supported) ... ok +test_external_links43_no_scheme_but_colon (tests.test_pytokenizer.TestPyTokenizer) +no scheme in a free link, but a colon ... ok +test_external_links44_no_scheme_but_colon_and_slashes (tests.test_pytokenizer.TestPyTokenizer) +no scheme in a free link, but a colon and slashes ... ok +test_external_links45_fake_scheme_no_slashes (tests.test_pytokenizer.TestPyTokenizer) +a nonexistent scheme in a free link, without slashes ... ok +test_external_links46_fake_scheme_slashes (tests.test_pytokenizer.TestPyTokenizer) +a nonexistent scheme in a free link, with slashes ... ok +test_external_links47_fake_scheme_brackets_no_slashes (tests.test_pytokenizer.TestPyTokenizer) +a nonexistent scheme in a bracketed link, without slashes ... ok +test_external_links48_fake_scheme_brackets_slashes (tests.test_pytokenizer.TestPyTokenizer) +#=a nonexistent scheme in a bracketed link, with slashes ... ok +test_external_links49_interrupted_scheme (tests.test_pytokenizer.TestPyTokenizer) +an otherwise valid scheme with something in the middle of it, in a free link ... ok +test_external_links50_interrupted_scheme_brackets (tests.test_pytokenizer.TestPyTokenizer) +an otherwise valid scheme with something in the middle of it, in a bracketed link ... ok +test_external_links51_no_slashes_brackets (tests.test_pytokenizer.TestPyTokenizer) +no slashes after the colon in a bracketed link ... ok +test_external_links52_space_before_no_slashes_brackets (tests.test_pytokenizer.TestPyTokenizer) +a space before a bracketed link with no slashes after the colon ... ok +test_external_links53_slashes_optional_brackets (tests.test_pytokenizer.TestPyTokenizer) +a bracketed link using a scheme that doesn't need slashes, but has them anyway ... ok +test_external_links54_short_brackets (tests.test_pytokenizer.TestPyTokenizer) +a very short link in brackets ... ok +test_external_links55_slashes_missing_brackets (tests.test_pytokenizer.TestPyTokenizer) +slashes missing from a scheme that requires them in a bracketed link ... ok +test_external_links56_protcol_relative (tests.test_pytokenizer.TestPyTokenizer) +a protocol-relative link (in brackets) ... ok +test_external_links57_scheme_missing_but_colon_brackets (tests.test_pytokenizer.TestPyTokenizer) +scheme missing from a bracketed link, but with a colon ... ok +test_external_links58_scheme_missing_but_colon_slashes_brackets (tests.test_pytokenizer.TestPyTokenizer) +scheme missing from a bracketed link, but with a colon and slashes ... ok +test_external_links59_unclosed_protocol_relative (tests.test_pytokenizer.TestPyTokenizer) +an unclosed protocol-relative bracketed link ... ok +test_external_links60_space_before_protcol_relative (tests.test_pytokenizer.TestPyTokenizer) +a space before a protocol-relative bracketed link ... ok +test_external_links61_unclosed_just_scheme (tests.test_pytokenizer.TestPyTokenizer) +an unclosed bracketed link, ending after the scheme ... ok +test_external_links62_unclosed_scheme_colon (tests.test_pytokenizer.TestPyTokenizer) +an unclosed bracketed link, ending after the colon ... ok +test_external_links63_unclosed_scheme_colon_slashes (tests.test_pytokenizer.TestPyTokenizer) +an unclosed bracketed link, ending after the slashes ... ok +test_external_links64_incomplete_bracket (tests.test_pytokenizer.TestPyTokenizer) +just an open bracket ... ok +test_external_links65_incomplete_scheme_colon (tests.test_pytokenizer.TestPyTokenizer) +a free link with just a scheme and a colon ... ok +test_external_links66_incomplete_scheme_colon_slashes (tests.test_pytokenizer.TestPyTokenizer) +a free link with just a scheme, colon, and slashes ... ok +test_external_links67_brackets_scheme_but_no_url (tests.test_pytokenizer.TestPyTokenizer) +brackets around a scheme and a colon ... ok +test_external_links68_brackets_scheme_slashes_but_no_url (tests.test_pytokenizer.TestPyTokenizer) +brackets around a scheme, colon, and slashes ... ok +test_external_links69_brackets_scheme_title_but_no_url (tests.test_pytokenizer.TestPyTokenizer) +brackets around a scheme, colon, and slashes, with a title ... ok +test_headings01_level_1 (tests.test_pytokenizer.TestPyTokenizer) +a basic level-1 heading ... ok +test_headings02_level_2 (tests.test_pytokenizer.TestPyTokenizer) +a basic level-2 heading ... ok +test_headings03_level_3 (tests.test_pytokenizer.TestPyTokenizer) +a basic level-3 heading ... ok +test_headings04_level_4 (tests.test_pytokenizer.TestPyTokenizer) +a basic level-4 heading ... ok +test_headings05_level_5 (tests.test_pytokenizer.TestPyTokenizer) +a basic level-5 heading ... ok +test_headings06_level_6 (tests.test_pytokenizer.TestPyTokenizer) +a basic level-6 heading ... ok +test_headings07_level_7 (tests.test_pytokenizer.TestPyTokenizer) +a level-6 heading that pretends to be a level-7 heading ... ok +test_headings08_level_3_2 (tests.test_pytokenizer.TestPyTokenizer) +a level-2 heading that pretends to be a level-3 heading ... ok +test_headings09_level_4_6 (tests.test_pytokenizer.TestPyTokenizer) +a level-4 heading that pretends to be a level-6 heading ... ok +test_headings10_newline_before (tests.test_pytokenizer.TestPyTokenizer) +a heading that starts after a newline ... ok +test_headings11_text_after (tests.test_pytokenizer.TestPyTokenizer) +text on the same line after ... ok +test_headings12_invalid_text_before (tests.test_pytokenizer.TestPyTokenizer) +invalid headings: text on the same line before ... ok +test_headings13_invalid_newline_middle (tests.test_pytokenizer.TestPyTokenizer) +invalid headings: newline in the middle ... ok +test_headings14_invalid_newline_end (tests.test_pytokenizer.TestPyTokenizer) +invalid headings: newline in the middle ... ok +test_headings15_invalid_nesting (tests.test_pytokenizer.TestPyTokenizer) +invalid headings: attempts at nesting ... ok +test_headings16_incomplete (tests.test_pytokenizer.TestPyTokenizer) +a heading that starts but doesn't finish ... ok +test_html_entities01_named (tests.test_pytokenizer.TestPyTokenizer) +a basic named HTML entity ... ok +test_html_entities02_numeric_decimal (tests.test_pytokenizer.TestPyTokenizer) +a basic decimal HTML entity ... ok +test_html_entities03_numeric_hexadecimal_x (tests.test_pytokenizer.TestPyTokenizer) +a basic hexadecimal HTML entity, using 'x' as a signal ... ok +test_html_entities04_numeric_hexadecimal_X (tests.test_pytokenizer.TestPyTokenizer) +a basic hexadecimal HTML entity, using 'X' as a signal ... ok +test_html_entities05_numeric_decimal_max (tests.test_pytokenizer.TestPyTokenizer) +the maximum acceptable decimal numeric entity ... ok +test_html_entities06_numeric_hex_max (tests.test_pytokenizer.TestPyTokenizer) +the maximum acceptable hexadecimal numeric entity ... ok +test_html_entities07_numeric_zeros (tests.test_pytokenizer.TestPyTokenizer) +zeros accepted at the beginning of a numeric entity ... ok +test_html_entities08_numeric_hex_zeros (tests.test_pytokenizer.TestPyTokenizer) +zeros accepted at the beginning of a hex numeric entity ... ok +test_html_entities09_invalid_named_too_long (tests.test_pytokenizer.TestPyTokenizer) +a named entity that is too long ... ok +test_html_entities10_invalid_named_undefined (tests.test_pytokenizer.TestPyTokenizer) +a named entity that doesn't exist ... ok +test_html_entities11_invalid_named_nonascii (tests.test_pytokenizer.TestPyTokenizer) +a named entity with non-ASCII characters ... ok +test_html_entities12_invalid_numeric_out_of_range_1 (tests.test_pytokenizer.TestPyTokenizer) +a numeric entity that is out of range: < 1 ... ok +test_html_entities13_invalid_numeric_out_of_range_2 (tests.test_pytokenizer.TestPyTokenizer) +a hex numeric entity that is out of range: < 1 ... ok +test_html_entities14_invalid_numeric_out_of_range_3 (tests.test_pytokenizer.TestPyTokenizer) +a numeric entity that is out of range: > 0x10FFFF ... ok +test_html_entities15_invalid_numeric_out_of_range_4 (tests.test_pytokenizer.TestPyTokenizer) +a hex numeric entity that is out of range: > 0x10FFFF ... ok +test_html_entities16_invalid_partial_amp (tests.test_pytokenizer.TestPyTokenizer) +invalid entities: just an ampersand ... ok +test_html_entities17_invalid_partial_amp_semicolon (tests.test_pytokenizer.TestPyTokenizer) +invalid entities: an ampersand and semicolon ... ok +test_html_entities18_invalid_partial_amp_pound (tests.test_pytokenizer.TestPyTokenizer) +invalid entities: just an ampersand, pound sign ... ok +test_html_entities19_invalid_partial_amp_pound_x (tests.test_pytokenizer.TestPyTokenizer) +invalid entities: just an ampersand, pound sign, x ... ok +test_html_entities20_invalid_partial_amp_pound_semicolon (tests.test_pytokenizer.TestPyTokenizer) +invalid entities: an ampersand, pound sign, and semicolon ... ok +test_html_entities21_invalid_partial_amp_pound_x_semicolon (tests.test_pytokenizer.TestPyTokenizer) +invalid entities: an ampersand, pound sign, x, and semicolon ... ok +test_html_entities22_invalid_partial_amp_pound_numbers (tests.test_pytokenizer.TestPyTokenizer) +invalid entities: an ampersand, pound sign, numbers ... ok +test_html_entities23_invalid_partial_amp_pound_x_semicolon (tests.test_pytokenizer.TestPyTokenizer) +invalid entities: an ampersand, pound sign, and x ... ok +test_integration01_empty (tests.test_pytokenizer.TestPyTokenizer) +sanity check that parsing an empty string yields nothing ... ok +test_integration02_template_argument_mix (tests.test_pytokenizer.TestPyTokenizer) +an ambiguous mix of templates and arguments ... ok +test_integration03_link_in_template_name (tests.test_pytokenizer.TestPyTokenizer) +a wikilink inside a template name, which breaks the template ... ok +test_integration04_rich_heading (tests.test_pytokenizer.TestPyTokenizer) +a heading with templates/wikilinks in it ... ok +test_integration05_html_entity_with_template (tests.test_pytokenizer.TestPyTokenizer) +a HTML entity with a template embedded inside ... ok +test_integration06_html_entity_with_comment (tests.test_pytokenizer.TestPyTokenizer) +a HTML entity with a comment embedded inside ... ok +test_integration07_rich_tags (tests.test_pytokenizer.TestPyTokenizer) +a HTML tag with tons of other things in it ... ok +test_integration08_wildcard (tests.test_pytokenizer.TestPyTokenizer) +a wildcard assortment of various things ... ok +test_integration09_wildcard_redux (tests.test_pytokenizer.TestPyTokenizer) +an even wilder assortment of various things ... ok +test_integration10_link_inside_dl (tests.test_pytokenizer.TestPyTokenizer) +an external link inside a def list, such that the external link is parsed ... ok +test_integration11_link_inside_dl_2 (tests.test_pytokenizer.TestPyTokenizer) +an external link inside a def list, such that the external link is not parsed ... ok +test_integration12_link_inside_template (tests.test_pytokenizer.TestPyTokenizer) +an external link nested inside a template, before the end ... ok +test_integration13_link_inside_template_2 (tests.test_pytokenizer.TestPyTokenizer) +an external link nested inside a template, before a separator ... ok +test_integration14_link_inside_template_3 (tests.test_pytokenizer.TestPyTokenizer) +an external link nested inside a template, before an equal sign ... ok +test_integration15_link_inside_argument (tests.test_pytokenizer.TestPyTokenizer) +an external link nested inside an argument ... ok +test_integration16_link_inside_heading (tests.test_pytokenizer.TestPyTokenizer) +an external link nested inside a heading ... ok +test_integration17_link_inside_tag_body (tests.test_pytokenizer.TestPyTokenizer) +an external link nested inside the body of a tag ... ok +test_integration18_link_inside_tag_style (tests.test_pytokenizer.TestPyTokenizer) +an external link nested inside style tags ... ok +test_integration19_style_tag_inside_link (tests.test_pytokenizer.TestPyTokenizer) +style tags disrupting an external link ... ok +test_integration20_comment_inside_link (tests.test_pytokenizer.TestPyTokenizer) +an HTML comment inside an external link ... ok +test_integration21_bracketed_link_inside_template (tests.test_pytokenizer.TestPyTokenizer) +a bracketed external link nested inside a template, before the end ... ok +test_integration22_comment_inside_bracketed_link (tests.test_pytokenizer.TestPyTokenizer) +an HTML comment inside a bracketed external link ... ok +test_integration23_wikilink_inside_external_link (tests.test_pytokenizer.TestPyTokenizer) +a wikilink inside an external link, which the parser considers valid (see issue #61) ... ok +test_integration24_external_link_inside_wikilink (tests.test_pytokenizer.TestPyTokenizer) +an external link inside a wikilink, valid in the case of images (see issue #62) ... ok +test_integration25_external_link_inside_wikilink_brackets (tests.test_pytokenizer.TestPyTokenizer) +an external link with brackets inside a wikilink ... ok +test_integration26_external_link_inside_wikilink_title (tests.test_pytokenizer.TestPyTokenizer) +an external link inside a wikilink title, which is not parsed ... ok +test_integration27_italics_inside_external_link_inside_incomplete_list (tests.test_pytokenizer.TestPyTokenizer) +italic text inside an external link inside an incomplete list ... ok +test_integration28_nodes_inside_external_link_after_punct (tests.test_pytokenizer.TestPyTokenizer) +various complex nodes inside an external link following punctuation ... ok +test_integration29_newline_and_comment_in_template_name (tests.test_pytokenizer.TestPyTokenizer) +a template name containing a newline followed by a comment ... ok +test_integration30_newline_and_comment_in_template_name_2 (tests.test_pytokenizer.TestPyTokenizer) +a template name containing a newline followed by a comment ... ok +test_integration31_newline_and_comment_in_template_name_3 (tests.test_pytokenizer.TestPyTokenizer) +a template name containing a newline followed by a comment ... ok +test_integration32_newline_and_comment_in_template_name_4 (tests.test_pytokenizer.TestPyTokenizer) +a template name containing a newline followed by a comment ... ok +test_integration33_newline_and_comment_in_template_name_5 (tests.test_pytokenizer.TestPyTokenizer) +a template name containing a newline followed by a comment ... ok +test_integration34_newline_and_comment_in_template_name_6 (tests.test_pytokenizer.TestPyTokenizer) +a template name containing a newline followed by a comment ... ok +test_integration35_newline_and_comment_in_template_name_7 (tests.test_pytokenizer.TestPyTokenizer) +a template name containing a newline followed by a comment ... ok +test_integration36_newline_and_comment_in_template_name_8 (tests.test_pytokenizer.TestPyTokenizer) +a template name containing a newline followed by a comment ... ok +test_integration37_tag_in_link_title (tests.test_pytokenizer.TestPyTokenizer) +HTML tags are invalid in link titles, even when complete ... ok +test_integration38_tag_in_template_name (tests.test_pytokenizer.TestPyTokenizer) +HTML tags are invalid in template names, even when complete ... ok +test_integration39_tag_in_link_text (tests.test_pytokenizer.TestPyTokenizer) +HTML tags are valid in link text ... ok +test_integration40_comment_in_link_title (tests.test_pytokenizer.TestPyTokenizer) +comments are valid in link titles ... ok +test_integration41_incomplete_comment_in_link_title (tests.test_pytokenizer.TestPyTokenizer) +incomplete comments are invalid in link titles ... ok +test_integration42_incomplete_comment_in_link_title_2 (tests.test_pytokenizer.TestPyTokenizer) +incomplete comments are invalid in link titles ... ok +test_integration43_incomplete_comment_in_link_title_3 (tests.test_pytokenizer.TestPyTokenizer) +incomplete comments are invalid in link titles ... ok +test_integration44_incomplete_comment_in_link_title_4 (tests.test_pytokenizer.TestPyTokenizer) +incomplete comments are invalid in link titles ... ok +test_integration45_incomplete_comment_in_link_title_5 (tests.test_pytokenizer.TestPyTokenizer) +incomplete comments are invalid in link titles ... ok +test_integration46_incomplete_comment_in_link_title_6 (tests.test_pytokenizer.TestPyTokenizer) +incomplete comments are invalid in link titles ... ok +test_integration47_wikilink_to_external_link_fallback (tests.test_pytokenizer.TestPyTokenizer) +an external link enclosed in an extra pair of brackets (see issue #120) ... ok +test_integration48_wikilink_to_external_link_fallback_2 (tests.test_pytokenizer.TestPyTokenizer) +an external link enclosed in an extra pair of brackets (see issue #120) ... ok +test_integration49_tables_in_templates (tests.test_pytokenizer.TestPyTokenizer) +catch error handling mistakes when wikitables are inside templates ... ok +test_integration50_tables_in_templates_2 (tests.test_pytokenizer.TestPyTokenizer) +catch error handling mistakes when wikitables are inside templates ... ok +test_integration51_many_invalid_nested_tags (tests.test_pytokenizer.TestPyTokenizer) +many unending nested tags that should be treated as plain text, followed by valid wikitext (see issues #42, #183) ... ok +test_tables01_empty_table (tests.test_pytokenizer.TestPyTokenizer) +parsing an empty table ... ok +test_tables02_inline_table (tests.test_pytokenizer.TestPyTokenizer) +tables with a close on the same line are not valid ... ok +test_tables03_no_table_close_simple (tests.test_pytokenizer.TestPyTokenizer) +no table close on inline table ... ok +test_tables04_no_table_close_newline (tests.test_pytokenizer.TestPyTokenizer) +no table close with a newline ... ok +test_tables05_no_table_close_inside_cell (tests.test_pytokenizer.TestPyTokenizer) +no table close while inside of a cell ... ok +test_tables06_no_table_close_inside_cell_after_newline (tests.test_pytokenizer.TestPyTokenizer) +no table close while inside of a cell after a newline ... ok +test_tables07_no_table_close_inside_cell_with_attributes (tests.test_pytokenizer.TestPyTokenizer) +no table close while inside of a cell with attributes ... ok +test_tables08_no_table_close_inside_row (tests.test_pytokenizer.TestPyTokenizer) +no table close while inside of a row ... ok +test_tables09_no_table_close_inside_row_after_newline (tests.test_pytokenizer.TestPyTokenizer) +no table close while inside of a row after a newline ... ok +test_tables10_no_table_close_row_and_cell (tests.test_pytokenizer.TestPyTokenizer) +no table close while inside a cell inside a row ... ok +test_tables11_no_table_close_attributes (tests.test_pytokenizer.TestPyTokenizer) +don't parse attributes as attributes if the table doesn't exist ... ok +test_tables12_no_table_close_unclosed_attributes (tests.test_pytokenizer.TestPyTokenizer) +don't parse unclosed attributes if the table doesn't exist ... ok +test_tables13_no_table_close_row_attributes (tests.test_pytokenizer.TestPyTokenizer) +don't parse row attributes as attributes if the table doesn't exist ... ok +test_tables14_no_table_close_cell (tests.test_pytokenizer.TestPyTokenizer) +don't parse cells if the table doesn't close ... ok +test_tables15_crazy_no_table_close (tests.test_pytokenizer.TestPyTokenizer) +lots of opened wiki syntax without closes ... ok +test_tables16_leading_whitespace_table (tests.test_pytokenizer.TestPyTokenizer) +handle leading whitespace for a table ... ok +test_tables17_whitespace_after_table (tests.test_pytokenizer.TestPyTokenizer) +handle whitespace after a table close ... ok +test_tables18_different_whitespace_after_table (tests.test_pytokenizer.TestPyTokenizer) +handle spaces after a table close ... ok +test_tables19_characters_after_table (tests.test_pytokenizer.TestPyTokenizer) +handle characters after a table close ... ok +test_tables20_characters_after_inline_table (tests.test_pytokenizer.TestPyTokenizer) +handle characters after an inline table close ... ok +test_tables21_leading_characters_table (tests.test_pytokenizer.TestPyTokenizer) +don't parse as a table when leading characters are not newline or whitespace ... ok +test_tables22_table_row_simple (tests.test_pytokenizer.TestPyTokenizer) +simple table row ... ok +test_tables23_table_row_multiple (tests.test_pytokenizer.TestPyTokenizer) +simple table row ... ok +test_tables24_table_cell_simple (tests.test_pytokenizer.TestPyTokenizer) +simple table cell ... ok +test_tables25_table_cell_inline (tests.test_pytokenizer.TestPyTokenizer) +multiple inline table cells ... ok +test_tables26_table_cell_multiple (tests.test_pytokenizer.TestPyTokenizer) +multiple table cells (non-inline) ... ok +test_tables27_table_header_simple (tests.test_pytokenizer.TestPyTokenizer) +simple header cell ... ok +test_tables28_table_header_inline (tests.test_pytokenizer.TestPyTokenizer) +multiple inline header cells ... ok +test_tables29_table_header_multiple (tests.test_pytokenizer.TestPyTokenizer) +multiple table header cells (non-inline) ... ok +test_tables30_nested_cells_and_rows (tests.test_pytokenizer.TestPyTokenizer) +combination of cells and rows in a table ... ok +test_tables31_table_cell_fake_close (tests.test_pytokenizer.TestPyTokenizer) +looks like a table close but is not ... ok +test_tables32_table_cell_more_fake_close (tests.test_pytokenizer.TestPyTokenizer) +looks like a table close but is not ... ok +test_tables33_table_cell_extra_close (tests.test_pytokenizer.TestPyTokenizer) +process second close as text ... ok +test_tables34_nowiki_inside_table (tests.test_pytokenizer.TestPyTokenizer) +nowiki handles pipe characters in tables ... ok +test_tables35_table_text_outside_cell (tests.test_pytokenizer.TestPyTokenizer) +parse text inside table but outside of a cell ... ok +test_tables36_no_table_cell_with_leading_characters (tests.test_pytokenizer.TestPyTokenizer) +fail to create a table cell when there are leading non-whitespace characters ... ok +test_tables37_no_table_row_with_leading_characters (tests.test_pytokenizer.TestPyTokenizer) +fail to create a table row when there are leading non-whitespace characters ... ok +test_tables38_template_inside_table_cell (tests.test_pytokenizer.TestPyTokenizer) +template within table cell ... ok +test_tables39_table_cell_attributes (tests.test_pytokenizer.TestPyTokenizer) +parse table cell style attributes ... ok +test_tables40_table_cell_empty_attributes (tests.test_pytokenizer.TestPyTokenizer) +parse table cell with style markers but no attributes ... ok +test_tables41_table_cell_with_dash (tests.test_pytokenizer.TestPyTokenizer) +parse a situation in which a cell line looks like a row line ... ok +test_tables42_table_cell_attributes_quote_with_pipe (tests.test_pytokenizer.TestPyTokenizer) +pipe inside an attribute quote should still be used as a style separator ... ok +test_tables43_table_cell_attributes_name_with_pipe (tests.test_pytokenizer.TestPyTokenizer) +pipe inside an attribute name should still be used as a style separator ... ok +test_tables44_table_cell_attributes_pipe_after_equals (tests.test_pytokenizer.TestPyTokenizer) +pipe inside an attribute should still be used as a style separator after an equals ... ok +test_tables45_table_cell_attributes_templates (tests.test_pytokenizer.TestPyTokenizer) +pipe inside attributes shouldn't be style separator ... ok +test_tables46_header_cell_attributes (tests.test_pytokenizer.TestPyTokenizer) +parse header cell style attributes ... ok +test_tables47_inline_cell_attributes (tests.test_pytokenizer.TestPyTokenizer) +parse cell style attributes of inline cells ... ok +test_tables48_table_row_attributes (tests.test_pytokenizer.TestPyTokenizer) +parse table row style attributes ... ok +test_tables49_table_row_attributes_crazy_whitespace (tests.test_pytokenizer.TestPyTokenizer) +parse table row style attributes with different whitespace ... ok +test_tables50_table_attributes (tests.test_pytokenizer.TestPyTokenizer) +parse table style attributes ... ok +test_tables51_inline_table_attributes (tests.test_pytokenizer.TestPyTokenizer) +handle attributes in inline tables ... ok +test_tables52_table_incorrect_attributes (tests.test_pytokenizer.TestPyTokenizer) +parse incorrect table style attributes ... ok +test_tables53_templates_in_table_attribute (tests.test_pytokenizer.TestPyTokenizer) +templates in the attributes of a table, after the start ... ok +test_tables54_templates_in_table_attribute_2 (tests.test_pytokenizer.TestPyTokenizer) +templates in the attributes of a table, after the start ... ok +test_tables55_inappropriate_marker_at_line_start (tests.test_pytokenizer.TestPyTokenizer) +an inappropriate marker (a right bracket) at the start of a line in the table ... ok +test_tables56_fake_close_near_start (tests.test_pytokenizer.TestPyTokenizer) +a fake closing token at the end of the first line in the table ... ok +test_tables57_fake_close_near_start_2 (tests.test_pytokenizer.TestPyTokenizer) +a fake closing token at the end of the first line in the table ... ok +test_tables58_junk_after_table_start (tests.test_pytokenizer.TestPyTokenizer) +ignore more junk on the first line of the table ... ok +test_tables59_junk_after_table_row (tests.test_pytokenizer.TestPyTokenizer) +ignore junk on the first line of a table row ... ok +test_tags01_basic (tests.test_pytokenizer.TestPyTokenizer) +a basic tag with an open and close ... ok +test_tags02_basic_selfclosing (tests.test_pytokenizer.TestPyTokenizer) +a basic self-closing tag ... ok +test_tags03_content (tests.test_pytokenizer.TestPyTokenizer) +a tag with some content in the middle ... ok +test_tags04_padded_open (tests.test_pytokenizer.TestPyTokenizer) +a tag with some padding in the open tag ... ok +test_tags05_padded_close (tests.test_pytokenizer.TestPyTokenizer) +a tag with some padding in the close tag ... ok +test_tags06_padded_selfclosing (tests.test_pytokenizer.TestPyTokenizer) +a self-closing tag with padding ... ok +test_tags07_attribute (tests.test_pytokenizer.TestPyTokenizer) +a tag with a single attribute ... ok +test_tags08_attribute_value (tests.test_pytokenizer.TestPyTokenizer) +a tag with a single attribute with a value ... ok +test_tags09_attribute_quoted (tests.test_pytokenizer.TestPyTokenizer) +a tag with a single quoted attribute ... ok +test_tags10_attribute_single_quoted (tests.test_pytokenizer.TestPyTokenizer) +a tag with a single singly-quoted attribute ... ok +test_tags11_attribute_hyphen (tests.test_pytokenizer.TestPyTokenizer) +a tag with a single attribute, containing a hyphen ... ok +test_tags12_attribute_quoted_hyphen (tests.test_pytokenizer.TestPyTokenizer) +a tag with a single quoted attribute, containing a hyphen ... ok +test_tags13_attribute_selfclosing (tests.test_pytokenizer.TestPyTokenizer) +a self-closing tag with a single attribute ... ok +test_tags14_attribute_selfclosing_value (tests.test_pytokenizer.TestPyTokenizer) +a self-closing tag with a single attribute with a value ... ok +test_tags15_attribute_selfclosing_value_quoted (tests.test_pytokenizer.TestPyTokenizer) +a self-closing tag with a single quoted attribute ... ok +test_tags16_nested_tag (tests.test_pytokenizer.TestPyTokenizer) +a tag nested within the attributes of another ... ok +test_tags17_nested_tag_quoted (tests.test_pytokenizer.TestPyTokenizer) +a tag nested within the attributes of another, quoted ... ok +test_tags18_nested_troll_tag (tests.test_pytokenizer.TestPyTokenizer) +a bogus tag that appears to be nested within the attributes of another ... ok +test_tags19_nested_troll_tag_quoted (tests.test_pytokenizer.TestPyTokenizer) +a bogus tag that appears to be nested within the attributes of another, quoted ... ok +test_tags20_nested_tag_selfclosing (tests.test_pytokenizer.TestPyTokenizer) +a tag nested within the attributes of another; outer tag implicitly self-closing ... ok +test_tags21_invalid_space_begin_open (tests.test_pytokenizer.TestPyTokenizer) +invalid tag: a space at the beginning of the open tag ... ok +test_tags22_invalid_space_begin_close (tests.test_pytokenizer.TestPyTokenizer) +invalid tag: a space at the beginning of the close tag ... ok +test_tags23_valid_space_end (tests.test_pytokenizer.TestPyTokenizer) +valid tag: spaces at the ends of both the open and close tags ... ok +test_tags24_invalid_template_ends (tests.test_pytokenizer.TestPyTokenizer) +invalid tag: a template at the ends of both the open and close tags ... ok +test_tags25_invalid_template_ends_nospace (tests.test_pytokenizer.TestPyTokenizer) +invalid tag: a template at the ends of both the open and close tags, without spacing ... ok +test_tags26_valid_template_end_open (tests.test_pytokenizer.TestPyTokenizer) +valid tag: a template at the end of the open tag ... ok +test_tags27_valid_template_end_open_space_end_close (tests.test_pytokenizer.TestPyTokenizer) +valid tag: a template at the end of the open tag; whitespace at the end of the close tag ... ok +test_tags28_invalid_template_end_open_nospace (tests.test_pytokenizer.TestPyTokenizer) +invalid tag: a template at the end of the open tag, without spacing ... ok +test_tags29_invalid_template_start_close (tests.test_pytokenizer.TestPyTokenizer) +invalid tag: a template at the beginning of the close tag ... ok +test_tags30_invalid_template_start_open (tests.test_pytokenizer.TestPyTokenizer) +invalid tag: a template at the beginning of the open tag ... ok +test_tags31_unclosed_quote (tests.test_pytokenizer.TestPyTokenizer) +a quoted attribute that is never closed ... ok +test_tags32_fake_quote (tests.test_pytokenizer.TestPyTokenizer) +a fake quoted attribute ... ok +test_tags33_fake_quote_complex (tests.test_pytokenizer.TestPyTokenizer) +a fake quoted attribute, with spaces and templates and links ... ok +test_tags34_quotes_in_quotes (tests.test_pytokenizer.TestPyTokenizer) +singly-quoted text inside a doubly-quoted attribute ... ok +test_tags35_quotes_in_quotes_2 (tests.test_pytokenizer.TestPyTokenizer) +doubly-quoted text inside a singly-quoted attribute ... ok +test_tags36_quotes_in_quotes_3 (tests.test_pytokenizer.TestPyTokenizer) +doubly-quoted text inside a singly-quoted attribute, with backslashes ... ok +test_tags37_incomplete_lbracket (tests.test_pytokenizer.TestPyTokenizer) +incomplete tags: just a left bracket ... ok +test_tags38_incomplete_lbracket_junk (tests.test_pytokenizer.TestPyTokenizer) +incomplete tags: just a left bracket, surrounded by stuff ... ok +test_tags39_incomplete_unclosed_open (tests.test_pytokenizer.TestPyTokenizer) +incomplete tags: an unclosed open tag ... ok +test_tags40_incomplete_unclosed_open_space (tests.test_pytokenizer.TestPyTokenizer) +incomplete tags: an unclosed open tag, space ... ok +test_tags41_incomplete_unclosed_open_unnamed_attr (tests.test_pytokenizer.TestPyTokenizer) +incomplete tags: an unclosed open tag, unnamed attribute ... ok +test_tags42_incomplete_unclosed_open_attr_equals (tests.test_pytokenizer.TestPyTokenizer) +incomplete tags: an unclosed open tag, attribute, equal sign ... ok +test_tags43_incomplete_unclosed_open_attr_equals_quoted (tests.test_pytokenizer.TestPyTokenizer) +incomplete tags: an unclosed open tag, attribute, equal sign, quote ... ok +test_tags44_incomplete_unclosed_open_attr (tests.test_pytokenizer.TestPyTokenizer) +incomplete tags: an unclosed open tag, attribute with a key/value ... ok +test_tags45_incomplete_unclosed_open_attr_quoted (tests.test_pytokenizer.TestPyTokenizer) +incomplete tags: an unclosed open tag, attribute with a key/value, quoted ... ok +test_tags46_incomplete_open (tests.test_pytokenizer.TestPyTokenizer) +incomplete tags: an open tag ... ok +test_tags47_incomplete_open_unnamed_attr (tests.test_pytokenizer.TestPyTokenizer) +incomplete tags: an open tag, unnamed attribute ... ok +test_tags48_incomplete_open_attr_equals (tests.test_pytokenizer.TestPyTokenizer) +incomplete tags: an open tag, attribute, equal sign ... ok +test_tags49_incomplete_open_attr (tests.test_pytokenizer.TestPyTokenizer) +incomplete tags: an open tag, attribute with a key/value ... ok +test_tags50_incomplete_open_attr_quoted (tests.test_pytokenizer.TestPyTokenizer) +incomplete tags: an open tag, attribute with a key/value, quoted ... ok +test_tags51_incomplete_open_text (tests.test_pytokenizer.TestPyTokenizer) +incomplete tags: an open tag, text ... ok +test_tags52_incomplete_open_attr_text (tests.test_pytokenizer.TestPyTokenizer) +incomplete tags: an open tag, attribute with a key/value, text ... ok +test_tags53_incomplete_open_text_lbracket (tests.test_pytokenizer.TestPyTokenizer) +incomplete tags: an open tag, text, left open bracket ... ok +test_tags54_incomplete_open_text_lbracket_slash (tests.test_pytokenizer.TestPyTokenizer) +incomplete tags: an open tag, text, left bracket, slash ... ok +test_tags55_incomplete_open_text_unclosed_close (tests.test_pytokenizer.TestPyTokenizer) +incomplete tags: an open tag, text, unclosed close ... ok +test_tags56_incomplete_open_text_wrong_close (tests.test_pytokenizer.TestPyTokenizer) +incomplete tags: an open tag, text, wrong close ... ok +test_tags57_incomplete_unclosed_close (tests.test_pytokenizer.TestPyTokenizer) +incomplete tags: an unclosed close tag ... ok +test_tags58_incomplete_unclosed_close_text (tests.test_pytokenizer.TestPyTokenizer) +incomplete tags: an unclosed close tag, with text ... ok +test_tags59_incomplete_close (tests.test_pytokenizer.TestPyTokenizer) +incomplete tags: a close tag ... ok +test_tags60_incomplete_no_tag_name_open (tests.test_pytokenizer.TestPyTokenizer) +incomplete tags: no tag name within brackets; just an open ... ok +test_tags61_incomplete_no_tag_name_selfclosing (tests.test_pytokenizer.TestPyTokenizer) +incomplete tags: no tag name within brackets; self-closing ... ok +test_tags62_incomplete_no_tag_name_open_close (tests.test_pytokenizer.TestPyTokenizer) +incomplete tags: no tag name within brackets; open and close ... ok +test_tags63_backslash_premature_before (tests.test_pytokenizer.TestPyTokenizer) +a backslash before a quote before a space ... ok +test_tags64_backslash_premature_after (tests.test_pytokenizer.TestPyTokenizer) +a backslash before a quote after a space ... ok +test_tags65_backslash_premature_middle (tests.test_pytokenizer.TestPyTokenizer) +a backslash before a quote in the middle of a word ... ok +test_tags66_backslash_adjacent (tests.test_pytokenizer.TestPyTokenizer) +escaped quotes next to unescaped quotes ... ok +test_tags67_backslash_endquote (tests.test_pytokenizer.TestPyTokenizer) +backslashes before the end quote, causing the attribute to become unquoted ... ok +test_tags68_backslash_double (tests.test_pytokenizer.TestPyTokenizer) +two adjacent backslashes, which do *not* affect the quote ... ok +test_tags69_backslash_triple (tests.test_pytokenizer.TestPyTokenizer) +three adjacent backslashes, which do *not* affect the quote ... ok +test_tags70_backslash_unaffecting (tests.test_pytokenizer.TestPyTokenizer) +backslashes near quotes, but not immediately adjacent, thus having no effect ... ok +test_tags71_unparsable (tests.test_pytokenizer.TestPyTokenizer) +a tag that should not be put through the normal parser ... ok +test_tags72_unparsable_complex (tests.test_pytokenizer.TestPyTokenizer) +a tag that should not be put through the normal parser; lots of stuff inside ... ok +test_tags73_unparsable_attributed (tests.test_pytokenizer.TestPyTokenizer) +a tag that should not be put through the normal parser; parsed attributes ... ok +test_tags74_unparsable_incomplete (tests.test_pytokenizer.TestPyTokenizer) +a tag that should not be put through the normal parser; incomplete ... ok +test_tags75_unparsable_entity (tests.test_pytokenizer.TestPyTokenizer) +a HTML entity inside unparsable text is still parsed ... ok +test_tags76_unparsable_entity_incomplete (tests.test_pytokenizer.TestPyTokenizer) +an incomplete HTML entity inside unparsable text ... ok +test_tags77_unparsable_entity_incomplete_2 (tests.test_pytokenizer.TestPyTokenizer) +an incomplete HTML entity inside unparsable text ... ok +test_tags78_single_open_close (tests.test_pytokenizer.TestPyTokenizer) +a tag that supports being single; both an open and a close tag ... ok +test_tags79_single_open (tests.test_pytokenizer.TestPyTokenizer) +a tag that supports being single; just an open tag ... ok +test_tags80_single_selfclose (tests.test_pytokenizer.TestPyTokenizer) +a tag that supports being single; a self-closing tag ... ok +test_tags81_single_close (tests.test_pytokenizer.TestPyTokenizer) +a tag that supports being single; just a close tag ... ok +test_tags82_single_only_open_close (tests.test_pytokenizer.TestPyTokenizer) +a tag that can only be single; both an open and a close tag ... ok +test_tags83_single_only_open (tests.test_pytokenizer.TestPyTokenizer) +a tag that can only be single; just an open tag ... ok +test_tags84_single_only_selfclose (tests.test_pytokenizer.TestPyTokenizer) +a tag that can only be single; a self-closing tag ... ok +test_tags85_single_only_close (tests.test_pytokenizer.TestPyTokenizer) +a tag that can only be single; just a close tag ... ok +test_tags86_single_only_double (tests.test_pytokenizer.TestPyTokenizer) +a tag that can only be single; a tag with backslashes at the beginning and end ... ok +test_tags87_single_only_close_attribute (tests.test_pytokenizer.TestPyTokenizer) +a tag that can only be single; presented as a close tag with an attribute ... ok +test_tags88_capitalization (tests.test_pytokenizer.TestPyTokenizer) +caps should be ignored within tag names ... ok +test_tags89_unparsable_incomplete_close (tests.test_pytokenizer.TestPyTokenizer) +an unparsable tag with an incomplete close afterwards ... ok +test_tags90_unparsable_with_intermediates (tests.test_pytokenizer.TestPyTokenizer) +an unparsable tag with intermediate tags inside of it ... ok +test_tags91_unparsable_with_intermediates_normalize (tests.test_pytokenizer.TestPyTokenizer) +an unparsable tag with intermediate tags inside of it, requiring normalization ... ok +test_tags92_non_ascii_open (tests.test_pytokenizer.TestPyTokenizer) +a open tag containing non-ASCII characters ... ok +test_tags93_non_ascii_full (tests.test_pytokenizer.TestPyTokenizer) +an open/close tag pair containing non-ASCII characters ... ok +test_tags94_single_nested_selfclosing (tests.test_pytokenizer.TestPyTokenizer) +a single (unpaired) tag with a self-closing tag in the middle (see issue #147) ... ok +test_tags_wikimarkup01_basic_italics (tests.test_pytokenizer.TestPyTokenizer) +basic italic text ... ok +test_tags_wikimarkup02_basic_bold (tests.test_pytokenizer.TestPyTokenizer) +basic bold text ... ok +test_tags_wikimarkup03_basic_ul (tests.test_pytokenizer.TestPyTokenizer) +basic unordered list ... ok +test_tags_wikimarkup04_basic_ol (tests.test_pytokenizer.TestPyTokenizer) +basic ordered list ... ok +test_tags_wikimarkup05_basic_dt (tests.test_pytokenizer.TestPyTokenizer) +basic description term ... ok +test_tags_wikimarkup06_basic_dd (tests.test_pytokenizer.TestPyTokenizer) +basic description item ... ok +test_tags_wikimarkup07_basic_hr (tests.test_pytokenizer.TestPyTokenizer) +basic horizontal rule ... ok +test_tags_wikimarkup08_complex_italics (tests.test_pytokenizer.TestPyTokenizer) +italics with a lot in them ... ok +test_tags_wikimarkup09_multiline_italics (tests.test_pytokenizer.TestPyTokenizer) +italics spanning mulitple lines ... ok +test_tags_wikimarkup10_unending_italics (tests.test_pytokenizer.TestPyTokenizer) +italics without an ending tag ... ok +test_tags_wikimarkup11_misleading_italics_end (tests.test_pytokenizer.TestPyTokenizer) +italics with something that looks like an end but isn't ... ok +test_tags_wikimarkup12_italics_start_outside_end_inside (tests.test_pytokenizer.TestPyTokenizer) +italics that start outside a link and end inside it ... ok +test_tags_wikimarkup13_italics_start_inside_end_outside (tests.test_pytokenizer.TestPyTokenizer) +italics that start inside a link and end outside it ... ok +test_tags_wikimarkup14_complex_bold (tests.test_pytokenizer.TestPyTokenizer) +bold with a lot in it ... ok +test_tags_wikimarkup15_multiline_bold (tests.test_pytokenizer.TestPyTokenizer) +bold spanning mulitple lines ... ok +test_tags_wikimarkup16_unending_bold (tests.test_pytokenizer.TestPyTokenizer) +bold without an ending tag ... ok +test_tags_wikimarkup17_misleading_bold_end (tests.test_pytokenizer.TestPyTokenizer) +bold with something that looks like an end but isn't ... ok +test_tags_wikimarkup18_bold_start_outside_end_inside (tests.test_pytokenizer.TestPyTokenizer) +bold that start outside a link and end inside it ... ok +test_tags_wikimarkup19_bold_start_inside_end_outside (tests.test_pytokenizer.TestPyTokenizer) +bold that start inside a link and end outside it ... ok +test_tags_wikimarkup20_bold_and_italics (tests.test_pytokenizer.TestPyTokenizer) +bold and italics together ... ok +test_tags_wikimarkup21_both_then_bold (tests.test_pytokenizer.TestPyTokenizer) +text that starts bold/italic, then is just bold ... ok +test_tags_wikimarkup22_both_then_italics (tests.test_pytokenizer.TestPyTokenizer) +text that starts bold/italic, then is just italic ... ok +test_tags_wikimarkup23_bold_then_both (tests.test_pytokenizer.TestPyTokenizer) +text that starts just bold, then is bold/italic ... ok +test_tags_wikimarkup24_italics_then_both (tests.test_pytokenizer.TestPyTokenizer) +text that starts just italic, then is bold/italic ... ok +test_tags_wikimarkup25_italics_then_bold (tests.test_pytokenizer.TestPyTokenizer) +text that starts italic, then is bold ... ok +test_tags_wikimarkup26_bold_then_italics (tests.test_pytokenizer.TestPyTokenizer) +text that starts bold, then is italic ... ok +test_tags_wikimarkup27_five_three (tests.test_pytokenizer.TestPyTokenizer) +five ticks to open, three to close (bold) ... ok +test_tags_wikimarkup28_five_two (tests.test_pytokenizer.TestPyTokenizer) +five ticks to open, two to close (bold) ... ok +test_tags_wikimarkup29_four (tests.test_pytokenizer.TestPyTokenizer) +four ticks ... ok +test_tags_wikimarkup30_four_two (tests.test_pytokenizer.TestPyTokenizer) +four ticks to open, two to close ... ok +test_tags_wikimarkup31_two_three (tests.test_pytokenizer.TestPyTokenizer) +two ticks to open, three to close ... ok +test_tags_wikimarkup32_two_four (tests.test_pytokenizer.TestPyTokenizer) +two ticks to open, four to close ... ok +test_tags_wikimarkup33_two_three_two (tests.test_pytokenizer.TestPyTokenizer) +two ticks to open, three to close, two afterwards ... ok +test_tags_wikimarkup34_two_four_four (tests.test_pytokenizer.TestPyTokenizer) +two ticks to open, four to close, four afterwards ... ok +test_tags_wikimarkup35_seven (tests.test_pytokenizer.TestPyTokenizer) +seven ticks ... ok +test_tags_wikimarkup36_unending_bold_and_italics (tests.test_pytokenizer.TestPyTokenizer) +five ticks (bold and italics) that don't end ... ok +test_tags_wikimarkup37_complex_ul (tests.test_pytokenizer.TestPyTokenizer) +ul with a lot in it ... ok +test_tags_wikimarkup38_ul_multiline_template (tests.test_pytokenizer.TestPyTokenizer) +ul with a template that spans multiple lines ... ok +test_tags_wikimarkup39_ul_adjacent (tests.test_pytokenizer.TestPyTokenizer) +multiple adjacent uls ... ok +test_tags_wikimarkup40_ul_depths (tests.test_pytokenizer.TestPyTokenizer) +multiple adjacent uls, with differing depths ... ok +test_tags_wikimarkup41_ul_space_before (tests.test_pytokenizer.TestPyTokenizer) +uls with space before them ... ok +test_tags_wikimarkup42_ul_interruption (tests.test_pytokenizer.TestPyTokenizer) +high-depth ul with something blocking it ... ok +test_tags_wikimarkup43_complex_ol (tests.test_pytokenizer.TestPyTokenizer) +ol with a lot in it ... ok +test_tags_wikimarkup44_ol_multiline_template (tests.test_pytokenizer.TestPyTokenizer) +ol with a template that spans moltiple lines ... ok +test_tags_wikimarkup45_ol_adjacent (tests.test_pytokenizer.TestPyTokenizer) +moltiple adjacent ols ... ok +test_tags_wikimarkup46_ol_depths (tests.test_pytokenizer.TestPyTokenizer) +moltiple adjacent ols, with differing depths ... ok +test_tags_wikimarkup47_ol_space_before (tests.test_pytokenizer.TestPyTokenizer) +ols with space before them ... ok +test_tags_wikimarkup48_ol_interruption (tests.test_pytokenizer.TestPyTokenizer) +high-depth ol with something blocking it ... ok +test_tags_wikimarkup49_ul_ol_mix (tests.test_pytokenizer.TestPyTokenizer) +a mix of adjacent uls and ols ... ok +test_tags_wikimarkup50_complex_dt (tests.test_pytokenizer.TestPyTokenizer) +dt with a lot in it ... ok +test_tags_wikimarkup51_dt_multiline_template (tests.test_pytokenizer.TestPyTokenizer) +dt with a template that spans mdttiple lines ... ok +test_tags_wikimarkup52_dt_adjacent (tests.test_pytokenizer.TestPyTokenizer) +mdttiple adjacent dts ... ok +test_tags_wikimarkup53_dt_depths (tests.test_pytokenizer.TestPyTokenizer) +mdttiple adjacent dts, with differing depths ... ok +test_tags_wikimarkup54_dt_space_before (tests.test_pytokenizer.TestPyTokenizer) +dts with space before them ... ok +test_tags_wikimarkup55_dt_interruption (tests.test_pytokenizer.TestPyTokenizer) +high-depth dt with something blocking it ... ok +test_tags_wikimarkup56_complex_dd (tests.test_pytokenizer.TestPyTokenizer) +dd with a lot in it ... ok +test_tags_wikimarkup57_dd_multiline_template (tests.test_pytokenizer.TestPyTokenizer) +dd with a template that spans mddtiple lines ... ok +test_tags_wikimarkup58_dd_adjacent (tests.test_pytokenizer.TestPyTokenizer) +mddtiple adjacent dds ... ok +test_tags_wikimarkup59_dd_depths (tests.test_pytokenizer.TestPyTokenizer) +mddtiple adjacent dds, with differing depths ... ok +test_tags_wikimarkup60_dd_space_before (tests.test_pytokenizer.TestPyTokenizer) +dds with space before them ... ok +test_tags_wikimarkup61_dd_interruption (tests.test_pytokenizer.TestPyTokenizer) +high-depth dd with something blocking it ... ok +test_tags_wikimarkup62_dt_dd_mix (tests.test_pytokenizer.TestPyTokenizer) +a mix of adjacent dts and dds ... ok +test_tags_wikimarkup63_dt_dd_mix2 (tests.test_pytokenizer.TestPyTokenizer) +the correct usage of a dt/dd unit, as in a dl ... ok +test_tags_wikimarkup64_dt_dd_mix3 (tests.test_pytokenizer.TestPyTokenizer) +another example of correct (but strange) dt/dd usage ... ok +test_tags_wikimarkup65_dt_dd_mix4 (tests.test_pytokenizer.TestPyTokenizer) +another example of correct dt/dd usage, with a trigger for a specific parse route ... ok +test_tags_wikimarkup66_ul_ol_dt_dd_mix (tests.test_pytokenizer.TestPyTokenizer) +an assortment of uls, ols, dds, and dts ... ok +test_tags_wikimarkup67_hr_text_before (tests.test_pytokenizer.TestPyTokenizer) +text before an otherwise-valid hr ... ok +test_tags_wikimarkup68_hr_text_after (tests.test_pytokenizer.TestPyTokenizer) +text after a valid hr ... ok +test_tags_wikimarkup69_hr_text_before_after (tests.test_pytokenizer.TestPyTokenizer) +text at both ends of an otherwise-valid hr ... ok +test_tags_wikimarkup70_hr_newlines (tests.test_pytokenizer.TestPyTokenizer) +newlines surrounding a valid hr ... ok +test_tags_wikimarkup71_hr_adjacent (tests.test_pytokenizer.TestPyTokenizer) +two adjacent hrs ... ok +test_tags_wikimarkup72_hr_adjacent_space (tests.test_pytokenizer.TestPyTokenizer) +two adjacent hrs, with a space before the second one, making it invalid ... ok +test_tags_wikimarkup73_hr_short (tests.test_pytokenizer.TestPyTokenizer) +an invalid three-hyphen-long hr ... ok +test_tags_wikimarkup74_hr_long (tests.test_pytokenizer.TestPyTokenizer) +a very long, valid hr ... ok +test_tags_wikimarkup75_hr_interruption_short (tests.test_pytokenizer.TestPyTokenizer) +a hr that is interrupted, making it invalid ... ok +test_tags_wikimarkup76_hr_interruption_long (tests.test_pytokenizer.TestPyTokenizer) +a hr that is interrupted, but the first part remains valid because it is long enough ... ok +test_tags_wikimarkup77_nowiki_cancel (tests.test_pytokenizer.TestPyTokenizer) +a nowiki tag before a list causes it to not be parsed ... ok +test_templates001_no_params (tests.test_pytokenizer.TestPyTokenizer) +simplest type of template ... ok +test_templates002_one_param_unnamed (tests.test_pytokenizer.TestPyTokenizer) +basic template with one unnamed parameter ... ok +test_templates003_one_param_named (tests.test_pytokenizer.TestPyTokenizer) +basic template with one named parameter ... ok +test_templates004_multiple_unnamed_params (tests.test_pytokenizer.TestPyTokenizer) +basic template with multiple unnamed parameters ... ok +test_templates005_multiple_named_params (tests.test_pytokenizer.TestPyTokenizer) +basic template with multiple named parameters ... ok +test_templates006_multiple_mixed_params (tests.test_pytokenizer.TestPyTokenizer) +basic template with multiple unnamed/named parameters ... ok +test_templates007_multiple_mixed_params2 (tests.test_pytokenizer.TestPyTokenizer) +basic template with multiple unnamed/named parameters in another order ... ok +test_templates008_blank_params (tests.test_pytokenizer.TestPyTokenizer) +template with blank parameters (mix of pipes and equal signs) ... ok +test_templates009_nested_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) +nested template as an unnamed parameter ... ok +test_templates010_nested_named_param_value (tests.test_pytokenizer.TestPyTokenizer) +nested template as a parameter value with a named parameter ... ok +test_templates011_nested_named_param_name_and_value (tests.test_pytokenizer.TestPyTokenizer) +nested templates as a parameter name and value ... ok +test_templates012_nested_name_start (tests.test_pytokenizer.TestPyTokenizer) +nested template at the beginning of a template name ... ok +test_templates013_nested_name_start_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) +nested template at the beginning of a template name and as an unnamed parameter ... ok +test_templates014_nested_name_start_named_param_value (tests.test_pytokenizer.TestPyTokenizer) +nested template at the beginning of a template name and as a parameter value with a named parameter ... ok +test_templates015_nested_name_start_named_param_name_and_value (tests.test_pytokenizer.TestPyTokenizer) +nested template at the beginning of a template name and as a parameter name and value ... ok +test_templates016_nested_name_end (tests.test_pytokenizer.TestPyTokenizer) +nested template at the end of a template name ... ok +test_templates017_nested_name_end_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) +nested template at the end of a template name and as an unnamed parameter ... ok +test_templates018_nested_name_end_named_param_value (tests.test_pytokenizer.TestPyTokenizer) +nested template at the end of a template name and as a parameter value with a named parameter ... ok +test_templates019_nested_name_end_named_param_name_and_value (tests.test_pytokenizer.TestPyTokenizer) +nested template at the end of a template name and as a parameter name and value ... ok +test_templates020_nested_name_mid (tests.test_pytokenizer.TestPyTokenizer) +nested template in the middle of a template name ... ok +test_templates021_nested_name_mid_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) +nested template in the middle of a template name and as an unnamed parameter ... ok +test_templates022_nested_name_mid_named_param_value (tests.test_pytokenizer.TestPyTokenizer) +nested template in the middle of a template name and as a parameter value with a named parameter ... ok +test_templates023_nested_name_mid_named_param_name_and_value (tests.test_pytokenizer.TestPyTokenizer) +nested template in the middle of a template name and as a parameter name and value ... ok +test_templates024_nested_name_start_end (tests.test_pytokenizer.TestPyTokenizer) +nested template at the beginning and end of a template name ... ok +test_templates025_nested_name_start_end_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) +nested template at the beginning and end of a template name and as an unnamed parameter ... ok +test_templates026_nested_name_start_end_named_param_value (tests.test_pytokenizer.TestPyTokenizer) +nested template at the beginning and end of a template name and as a parameter value with a named parameter ... ok +test_templates027_nested_name_start_end_named_param_name_and_value (tests.test_pytokenizer.TestPyTokenizer) +nested template at the beginning and end of a template name and as a parameter name and value ... ok +test_templates028_nested_names_multiple (tests.test_pytokenizer.TestPyTokenizer) +multiple nested templates within nested templates ... ok +test_templates029_nested_names_multiple_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) +multiple nested templates within nested templates with a nested unnamed parameter ... ok +test_templates030_nested_names_multiple_named_param_value (tests.test_pytokenizer.TestPyTokenizer) +multiple nested templates within nested templates with a nested parameter value in a named parameter ... ok +test_templates031_nested_names_multiple_named_param_name_and_value (tests.test_pytokenizer.TestPyTokenizer) +multiple nested templates within nested templates with a nested parameter name and value ... ok +test_templates032_mixed_nested_templates (tests.test_pytokenizer.TestPyTokenizer) +mixed assortment of nested templates within template names, parameter names, and values ... ok +test_templates033_nested_two_args (tests.test_pytokenizer.TestPyTokenizer) +template whose first parameter is unnamed with two templates, followed by a named parameter ... ok +test_templates034_newlines_start (tests.test_pytokenizer.TestPyTokenizer) +a newline at the start of a template name ... ok +test_templates035_newlines_end (tests.test_pytokenizer.TestPyTokenizer) +a newline at the end of a template name ... ok +test_templates036_newlines_start_end (tests.test_pytokenizer.TestPyTokenizer) +a newline at the start and end of a template name ... ok +test_templates037_newlines_mid (tests.test_pytokenizer.TestPyTokenizer) +a newline at the middle of a template name ... ok +test_templates038_newlines_start_mid (tests.test_pytokenizer.TestPyTokenizer) +a newline at the start and middle of a template name ... ok +test_templates039_newlines_mid_end (tests.test_pytokenizer.TestPyTokenizer) +a newline at the middle and end of a template name ... ok +test_templates040_newlines_start_mid_end (tests.test_pytokenizer.TestPyTokenizer) +a newline at the start, middle, and end of a template name ... ok +test_templates041_newlines_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) +newlines within an unnamed template parameter ... ok +test_templates042_newlines_enclose_template_name_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) +newlines enclosing a template name and within an unnamed template parameter ... ok +test_templates043_newlines_within_template_name_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) +newlines within a template name and within an unnamed template parameter ... ok +test_templates044_newlines_enclose_template_name_named_param_value (tests.test_pytokenizer.TestPyTokenizer) +newlines enclosing a template name and within a named parameter value ... ok +test_templates045_newlines_within_template_name_named_param_value (tests.test_pytokenizer.TestPyTokenizer) +newlines within a template name and within a named parameter value ... ok +test_templates046_newlines_named_param_name (tests.test_pytokenizer.TestPyTokenizer) +newlines within a parameter name ... ok +test_templates047_newlines_named_param_name_param_value (tests.test_pytokenizer.TestPyTokenizer) +newlines within a parameter name and within a parameter value ... ok +test_templates048_newlines_enclose_template_name_named_param_name (tests.test_pytokenizer.TestPyTokenizer) +newlines enclosing a template name and within a parameter name ... ok +test_templates049_newlines_enclose_template_name_named_param_name_param_value (tests.test_pytokenizer.TestPyTokenizer) +newlines enclosing a template name and within a parameter name and within a parameter value ... ok +test_templates050_newlines_within_template_name_named_param_name (tests.test_pytokenizer.TestPyTokenizer) +newlines within a template name and within a parameter name ... ok +test_templates051_newlines_within_template_name_named_param_name_param_value (tests.test_pytokenizer.TestPyTokenizer) +newlines within a template name and within a parameter name and within a parameter value ... ok +test_templates052_newlines_wildcard (tests.test_pytokenizer.TestPyTokenizer) +a random, complex assortment of templates and newlines ... ok +test_templates053_newlines_wildcard_redux (tests.test_pytokenizer.TestPyTokenizer) +an even more random and complex assortment of templates and newlines ... ok +test_templates054_newlines_wildcard_redux_invalid (tests.test_pytokenizer.TestPyTokenizer) +a variation of the newlines_wildcard_redux test that is invalid ... ok +test_templates055_newlines_spaces (tests.test_pytokenizer.TestPyTokenizer) +newlines in the middle of a template name, followed by spaces ... ok +test_templates056_newlines_spaces_param (tests.test_pytokenizer.TestPyTokenizer) +newlines in the middle of a template name, followed by spaces, with a parameter ... ok +test_templates057_invalid_blank (tests.test_pytokenizer.TestPyTokenizer) +invalid template with no content ... ok +test_templates058_invalid_blank_whitespace (tests.test_pytokenizer.TestPyTokenizer) +invalid template with no content, but whitespace ... ok +test_templates059_invalid_blank_pipe (tests.test_pytokenizer.TestPyTokenizer) +invalid template with no content, but a parameter ... ok +test_templates060_invalid_blank_whitespace_pipe (tests.test_pytokenizer.TestPyTokenizer) +invalid template with no content, but whitespace and a parameter ... ok +test_templates061_invalid_name_left_brace_middle (tests.test_pytokenizer.TestPyTokenizer) +invalid characters in template name: left brace in middle ... ok +test_templates062_invalid_name_right_brace_middle (tests.test_pytokenizer.TestPyTokenizer) +invalid characters in template name: right brace in middle ... ok +test_templates063_invalid_name_left_braces (tests.test_pytokenizer.TestPyTokenizer) +invalid characters in template name: two left braces in middle ... ok +test_templates064_invalid_name_left_bracket_middle (tests.test_pytokenizer.TestPyTokenizer) +invalid characters in template name: left bracket in middle ... ok +test_templates065_invalid_name_right_bracket_middle (tests.test_pytokenizer.TestPyTokenizer) +invalid characters in template name: right bracket in middle ... ok +test_templates066_invalid_name_left_bracket_start (tests.test_pytokenizer.TestPyTokenizer) +invalid characters in template name: left bracket at start ... ok +test_templates067_invalid_name_right_bracket_start (tests.test_pytokenizer.TestPyTokenizer) +invalid characters in template name: right bracket at end ... ok +test_templates068_valid_name_left_brace_start (tests.test_pytokenizer.TestPyTokenizer) +valid characters in template name: left brace at start ... ok +test_templates069_valid_unnamed_param_left_brace (tests.test_pytokenizer.TestPyTokenizer) +valid characters in unnamed template parameter: left brace ... ok +test_templates070_valid_unnamed_param_braces (tests.test_pytokenizer.TestPyTokenizer) +valid characters in unnamed template parameter: left and right braces ... ok +test_templates071_valid_param_name_braces (tests.test_pytokenizer.TestPyTokenizer) +valid characters in template parameter name: left and right braces ... ok +test_templates072_valid_param_name_brackets (tests.test_pytokenizer.TestPyTokenizer) +valid characters in unnamed template parameter: left and right brackets ... ok +test_templates073_valid_param_name_double_left_brackets (tests.test_pytokenizer.TestPyTokenizer) +valid characters in unnamed template parameter: double left brackets ... ok +test_templates074_valid_param_name_double_right_brackets (tests.test_pytokenizer.TestPyTokenizer) +valid characters in unnamed template parameter: double right brackets ... ok +test_templates075_valid_param_name_double_brackets (tests.test_pytokenizer.TestPyTokenizer) +valid characters in unnamed template parameter: double left and right brackets ... ok +test_templates076_invalid_param_name_double_left_braces (tests.test_pytokenizer.TestPyTokenizer) +invalid characters in template parameter name: double left braces ... ok +test_templates077_invalid_param_name_double_braces (tests.test_pytokenizer.TestPyTokenizer) +invalid characters in template parameter name: double left and right braces ... ok +test_templates078_invalid_left_angle_bracket (tests.test_pytokenizer.TestPyTokenizer) +invalid template: left angle bracket in name ... ok +test_templates079_invalid_right_angle_bracket (tests.test_pytokenizer.TestPyTokenizer) +invalid template: right angle bracket in name ... ok +test_templates080_incomplete_stub (tests.test_pytokenizer.TestPyTokenizer) +incomplete templates that should fail gracefully: just an opening ... ok +test_templates081_incomplete_plain (tests.test_pytokenizer.TestPyTokenizer) +incomplete templates that should fail gracefully: no close whatsoever ... ok +test_templates082_incomplete_right_brace (tests.test_pytokenizer.TestPyTokenizer) +incomplete templates that should fail gracefully: only one right brace ... ok +test_templates083_incomplete_pipe (tests.test_pytokenizer.TestPyTokenizer) +incomplete templates that should fail gracefully: a pipe ... ok +test_templates084_incomplete_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) +incomplete templates that should fail gracefully: an unnamed parameter ... ok +test_templates085_incomplete_unnamed_param_pipe (tests.test_pytokenizer.TestPyTokenizer) +incomplete templates that should fail gracefully: an unnamed parameter, then a pipe ... ok +test_templates086_incomplete_valueless_param (tests.test_pytokenizer.TestPyTokenizer) +incomplete templates that should fail gracefully: an a named parameter with no value ... ok +test_templates087_incomplete_valueless_param_pipe (tests.test_pytokenizer.TestPyTokenizer) +incomplete templates that should fail gracefully: a named parameter with no value, then a pipe ... ok +test_templates088_incomplete_named_param (tests.test_pytokenizer.TestPyTokenizer) +incomplete templates that should fail gracefully: a named parameter with a value ... ok +test_templates089_incomplete_named_param_pipe (tests.test_pytokenizer.TestPyTokenizer) +incomplete templates that should fail gracefully: a named parameter with a value, then a paipe ... ok +test_templates090_incomplete_two_unnamed_params (tests.test_pytokenizer.TestPyTokenizer) +incomplete templates that should fail gracefully: two unnamed parameters ... ok +test_templates091_incomplete_unnamed_param_valueless_param (tests.test_pytokenizer.TestPyTokenizer) +incomplete templates that should fail gracefully: an unnamed parameter, then a named parameter with no value ... ok +test_templates092_incomplete_unnamed_param_named_param (tests.test_pytokenizer.TestPyTokenizer) +incomplete templates that should fail gracefully: an unnamed parameter, then a named parameter with a value ... ok +test_templates093_incomplete_named_param_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) +incomplete templates that should fail gracefully: a named parameter with a value, then an unnamed parameter ... ok +test_templates094_incomplete_named_param_valueless_param (tests.test_pytokenizer.TestPyTokenizer) +incomplete templates that should fail gracefully: a named parameter with a value, then a named parameter with no value ... ok +test_templates095_incomplete_two_named_params (tests.test_pytokenizer.TestPyTokenizer) +incomplete templates that should fail gracefully: two named parameters with values ... ok +test_templates096_incomplete_nested_template_as_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) +incomplete templates that should fail gracefully: a valid nested template as an unnamed parameter ... ok +test_templates097_incomplete_nested_template_as_param_value (tests.test_pytokenizer.TestPyTokenizer) +incomplete templates that should fail gracefully: a valid nested template as a parameter value ... ok +test_templates098_recursion_five_hundred_opens (tests.test_pytokenizer.TestPyTokenizer) +test potentially dangerous recursion: five hundred template openings, without spaces ... ok +test_templates099_recursion_one_hundred_opens (tests.test_pytokenizer.TestPyTokenizer) +test potentially dangerous recursion: one hundred template openings, with spaces ... ok +test_templates100_recursion_opens_and_closes (tests.test_pytokenizer.TestPyTokenizer) +test potentially dangerous recursion: template openings and closings ... ok +test_text1_basic (tests.test_pytokenizer.TestPyTokenizer) +sanity check for basic text parsing, no gimmicks ... ok +test_text2_newlines (tests.test_pytokenizer.TestPyTokenizer) +slightly more complex text parsing, with newlines ... ok +test_text3_unicode (tests.test_pytokenizer.TestPyTokenizer) +ensure unicode data is handled properly ... ok +test_text4_unicode2 (tests.test_pytokenizer.TestPyTokenizer) +additional unicode check for non-BMP codepoints ... ok +test_text5_large (tests.test_pytokenizer.TestPyTokenizer) +a lot of text, requiring proper storage in the C tokenizer ... ok +test_uses_c (tests.test_pytokenizer.TestPyTokenizer) +make sure the Python tokenizer identifies as not using C ... ok +test_wikilinks01_blank (tests.test_pytokenizer.TestPyTokenizer) +wikilink with no content ... ok +test_wikilinks02_blank_with_text (tests.test_pytokenizer.TestPyTokenizer) +wikilink with no content but a pipe ... ok +test_wikilinks03_basic (tests.test_pytokenizer.TestPyTokenizer) +simplest type of wikilink ... ok +test_wikilinks04_with_text (tests.test_pytokenizer.TestPyTokenizer) +wikilink with a text value ... ok +test_wikilinks05_blank_with_multiple_texts (tests.test_pytokenizer.TestPyTokenizer) +no content, multiple pipes ... ok +test_wikilinks06_multiple_texts (tests.test_pytokenizer.TestPyTokenizer) +multiple text values separated by pipes ... ok +test_wikilinks07_newline_text (tests.test_pytokenizer.TestPyTokenizer) +a newline in the middle of the text ... ok +test_wikilinks08_bracket_text (tests.test_pytokenizer.TestPyTokenizer) +a left bracket in the middle of the text ... ok +test_wikilinks09_nested (tests.test_pytokenizer.TestPyTokenizer) +a wikilink nested within another ... ok +test_wikilinks10_nested_padding (tests.test_pytokenizer.TestPyTokenizer) +a wikilink nested within another, separated by other data ... ok +test_wikilinks11_invalid_newline (tests.test_pytokenizer.TestPyTokenizer) +invalid wikilink: newline as only content ... ok +test_wikilinks12_invalid_right_brace (tests.test_pytokenizer.TestPyTokenizer) +invalid wikilink: right brace ... ok +test_wikilinks13_invalid_left_brace (tests.test_pytokenizer.TestPyTokenizer) +invalid wikilink: left brace ... ok +test_wikilinks14_invalid_right_bracket (tests.test_pytokenizer.TestPyTokenizer) +invalid wikilink: right bracket ... ok +test_wikilinks15_invalid_left_bracket (tests.test_pytokenizer.TestPyTokenizer) +invalid wikilink: left bracket ... ok +test_wikilinks16_invalid_nested (tests.test_pytokenizer.TestPyTokenizer) +invalid wikilink: trying to nest in the wrong context ... ok +test_wikilinks17_invalid_nested_padding (tests.test_pytokenizer.TestPyTokenizer) +invalid wikilink: trying to nest in the wrong context, with a text param ... ok +test_wikilinks18_invalid_nested_no_close (tests.test_pytokenizer.TestPyTokenizer) +invalid wikilink: a wikilink nested within the value of another, missing a pair of closing brackets ... ok +test_wikilinks19_invalid_left_angle_bracket (tests.test_pytokenizer.TestPyTokenizer) +invalid wikilink: left angle bracket ... ok +test_wikilinks20_invalid_right_angle_bracket (tests.test_pytokenizer.TestPyTokenizer) +invalid wikilink: right angle bracket ... ok +test_wikilinks21_invalid_newline_at_start (tests.test_pytokenizer.TestPyTokenizer) +invalid wikilink: newline at start of title ... ok +test_wikilinks22_invalid_newline_at_end (tests.test_pytokenizer.TestPyTokenizer) +invalid wikilink: newline at end of title ... ok +test_wikilinks23_incomplete_open_only (tests.test_pytokenizer.TestPyTokenizer) +incomplete wikilinks: just an open ... ok +test_wikilinks24_incomplete_open_text (tests.test_pytokenizer.TestPyTokenizer) +incomplete wikilinks: an open with some text ... ok +test_wikilinks25_incomplete_open_text_pipe (tests.test_pytokenizer.TestPyTokenizer) +incomplete wikilinks: an open, text, then a pipe ... ok +test_wikilinks26_incomplete_open_pipe (tests.test_pytokenizer.TestPyTokenizer) +incomplete wikilinks: an open, then a pipe ... ok +test_wikilinks27_incomplete_open_pipe_text (tests.test_pytokenizer.TestPyTokenizer) +incomplete wikilinks: an open, then a pipe, then text ... ok +test_wikilinks28_incomplete_open_pipes_text (tests.test_pytokenizer.TestPyTokenizer) +incomplete wikilinks: a pipe, then text then two pipes ... ok +test_wikilinks29_incomplete_open_partial_close (tests.test_pytokenizer.TestPyTokenizer) +incomplete wikilinks: an open, then one right brace ... ok +test_wikilinks30_incomplete_preserve_previous (tests.test_pytokenizer.TestPyTokenizer) +incomplete wikilinks: a valid wikilink followed by an invalid one ... ok test_name (tests.test_parameter.TestParameter) test getter/setter for the name attribute ... ok test_showkey (tests.test_parameter.TestParameter) @@ -1764,28 +2972,6 @@ test Parameter.__unicode__() ... ok test_value (tests.test_parameter.TestParameter) test getter/setter for the value attribute ... ok -test_children (tests.test_comment.TestComment) -test Comment.__children__() ... ok -test_contents (tests.test_comment.TestComment) -test getter/setter for the contents attribute ... ok -test_showtree (tests.test_comment.TestComment) -test Comment.__showtree__() ... ok -test_strip (tests.test_comment.TestComment) -test Comment.__strip__() ... ok -test_unicode (tests.test_comment.TestComment) -test Comment.__unicode__() ... ok -test_children (tests.test_argument.TestArgument) -test Argument.__children__() ... ok -test_default (tests.test_argument.TestArgument) -test getter/setter for the default attribute ... ok -test_name (tests.test_argument.TestArgument) -test getter/setter for the name attribute ... ok -test_showtree (tests.test_argument.TestArgument) -test Argument.__showtree__() ... ok -test_strip (tests.test_argument.TestArgument) -test Argument.__strip__() ... ok -test_unicode (tests.test_argument.TestArgument) -test Argument.__unicode__() ... ok test_add (tests.test_tag.TestTag) test Tag.add() ... ok test_attributes (tests.test_tag.TestTag) @@ -1824,6 +3010,112 @@ test getter/setter for the wiki_markup attribute ... ok test_wiki_style_separator (tests.test_tag.TestTag) test getter/setter for wiki_style_separator attribute ... ok +test_parse_anything_invalid (tests.test_utils.TestUtils) +tests for invalid input to utils.parse_anything() ... ok +test_parse_anything_valid (tests.test_utils.TestUtils) +tests for valid input to utils.parse_anything() ... ok +test_children (tests.test_comment.TestComment) +test Comment.__children__() ... ok +test_contents (tests.test_comment.TestComment) +test getter/setter for the contents attribute ... ok +test_showtree (tests.test_comment.TestComment) +test Comment.__showtree__() ... ok +test_strip (tests.test_comment.TestComment) +test Comment.__strip__() ... ok +test_unicode (tests.test_comment.TestComment) +test Comment.__unicode__() ... ok +test_children (tests.test_wikilink.TestWikilink) +test Wikilink.__children__() ... ok +test_showtree (tests.test_wikilink.TestWikilink) +test Wikilink.__showtree__() ... ok +test_strip (tests.test_wikilink.TestWikilink) +test Wikilink.__strip__() ... ok +test_text (tests.test_wikilink.TestWikilink) +test getter/setter for the text attribute ... ok +test_title (tests.test_wikilink.TestWikilink) +test getter/setter for the title attribute ... ok +test_unicode (tests.test_wikilink.TestWikilink) +test Wikilink.__unicode__() ... ok +test_brackets (tests.test_external_link.TestExternalLink) +test getter/setter for the brackets attribute ... ok +test_children (tests.test_external_link.TestExternalLink) +test ExternalLink.__children__() ... ok +test_showtree (tests.test_external_link.TestExternalLink) +test ExternalLink.__showtree__() ... ok +test_strip (tests.test_external_link.TestExternalLink) +test ExternalLink.__strip__() ... ok +test_title (tests.test_external_link.TestExternalLink) +test getter/setter for the title attribute ... ok +test_unicode (tests.test_external_link.TestExternalLink) +test ExternalLink.__unicode__() ... ok +test_url (tests.test_external_link.TestExternalLink) +test getter/setter for the url attribute ... ok +test_child_add (tests.test_smart_list.TestSmartList) +make sure _ListProxy's add/radd/iadd work ... ok +test_child_get_set_del (tests.test_smart_list.TestSmartList) +make sure _ListProxy's getitem/setitem/delitem work ... ok +test_child_methods (tests.test_smart_list.TestSmartList) +make sure _ListProxy's non-magic methods work, like append() ... ok +test_child_other_magics (tests.test_smart_list.TestSmartList) +make sure _ListProxy's other magically implemented features work ... ok +test_docs (tests.test_smart_list.TestSmartList) +make sure the methods of SmartList/_ListProxy have docstrings ... ok +test_doctest (tests.test_smart_list.TestSmartList) +make sure the test embedded in SmartList's docstring passes ... ok +test_influence (tests.test_smart_list.TestSmartList) +make sure changes are propagated from parents to children ... ok +test_parent_add (tests.test_smart_list.TestSmartList) +make sure SmartList's add/radd/iadd work ... ok +test_parent_get_set_del (tests.test_smart_list.TestSmartList) +make sure SmartList's getitem/setitem/delitem work ... ok +test_parent_methods (tests.test_smart_list.TestSmartList) +make sure SmartList's non-magic methods work, like append() ... ok +test_parent_other_magics (tests.test_smart_list.TestSmartList) +make sure SmartList's other magically implemented features work ... ok +test_comparisons (tests.test_string_mixin.TestStringMixIn) +make sure comparison operators work ... ok +test_docs (tests.test_string_mixin.TestStringMixIn) +make sure the various methods of StringMixIn have docstrings ... ok +test_other_magics (tests.test_string_mixin.TestStringMixIn) +test other magically implemented features, like len() and iter() ... ok +test_other_methods (tests.test_string_mixin.TestStringMixIn) +test the remaining non-magic methods of StringMixIn ... ok +test_types (tests.test_string_mixin.TestStringMixIn) +make sure StringMixIns convert to different types correctly ... ok +test_name (tests.test_attribute.TestAttribute) +test getter/setter for the name attribute ... ok +test_padding (tests.test_attribute.TestAttribute) +test getter/setter for the padding attributes ... ok +test_quotes (tests.test_attribute.TestAttribute) +test getter/setter for the quotes attribute ... ok +test_unicode (tests.test_attribute.TestAttribute) +test Attribute.__unicode__() ... ok +test_value (tests.test_attribute.TestAttribute) +test getter/setter for the value attribute ... ok +test_argument (tests.test_builder.TestBuilder) +tests for building Argument nodes ... ok +test_comment (tests.test_builder.TestBuilder) +tests for building Comment nodes ... ok +test_external_link (tests.test_builder.TestBuilder) +tests for building ExternalLink nodes ... ok +test_heading (tests.test_builder.TestBuilder) +tests for building Heading nodes ... ok +test_html_entity (tests.test_builder.TestBuilder) +tests for building HTMLEntity nodes ... ok +test_integration (tests.test_builder.TestBuilder) +a test for building a combination of templates together ... ok +test_integration2 (tests.test_builder.TestBuilder) +an even more audacious test for building a horrible wikicode mess ... ok +test_parser_errors (tests.test_builder.TestBuilder) +test whether ParserError gets thrown for bad input ... ok +test_tag (tests.test_builder.TestBuilder) +tests for building Tag nodes ... ok +test_template (tests.test_builder.TestBuilder) +tests for building Template nodes ... ok +test_text (tests.test_builder.TestBuilder) +tests for building Text nodes ... ok +test_wikilink (tests.test_builder.TestBuilder) +tests for building Wikilink nodes ... ok test_arguments01_blank (tests.test_ctokenizer.TestCTokenizer) argument with no content ... ok test_arguments02_blank_with_default (tests.test_ctokenizer.TestCTokenizer) @@ -2926,24 +4218,6 @@ incomplete wikilinks: an open, then one right brace ... ok test_wikilinks30_incomplete_preserve_previous (tests.test_ctokenizer.TestCTokenizer) incomplete wikilinks: a valid wikilink followed by an invalid one ... ok -test_children (tests.test_html_entity.TestHTMLEntity) -test HTMLEntity.__children__() ... ok -test_hex_char (tests.test_html_entity.TestHTMLEntity) -test getter/setter for the hex_char attribute ... ok -test_hexadecimal (tests.test_html_entity.TestHTMLEntity) -test getter/setter for the hexadecimal attribute ... ok -test_named (tests.test_html_entity.TestHTMLEntity) -test getter/setter for the named attribute ... ok -test_normalize (tests.test_html_entity.TestHTMLEntity) -test getter/setter for the normalize attribute ... ok -test_showtree (tests.test_html_entity.TestHTMLEntity) -test HTMLEntity.__showtree__() ... ok -test_strip (tests.test_html_entity.TestHTMLEntity) -test HTMLEntity.__strip__() ... ok -test_unicode (tests.test_html_entity.TestHTMLEntity) -test HTMLEntity.__unicode__() ... ok -test_value (tests.test_html_entity.TestHTMLEntity) -test getter/setter for the value attribute ... ok test_add (tests.test_template.TestTemplate) test Template.add() ... ok test_children (tests.test_template.TestTemplate) @@ -2966,1136 +4240,1144 @@ test Template.__strip__() ... ok test_unicode (tests.test_template.TestTemplate) test Template.__unicode__() ... ok -test_child_add (tests.test_smart_list.TestSmartList) -make sure _ListProxy's add/radd/iadd work ... ok -test_child_get_set_del (tests.test_smart_list.TestSmartList) -make sure _ListProxy's getitem/setitem/delitem work ... ok -test_child_methods (tests.test_smart_list.TestSmartList) -make sure _ListProxy's non-magic methods work, like append() ... ok -test_child_other_magics (tests.test_smart_list.TestSmartList) -make sure _ListProxy's other magically implemented features work ... ok -test_docs (tests.test_smart_list.TestSmartList) -make sure the methods of SmartList/_ListProxy have docstrings ... ok -test_doctest (tests.test_smart_list.TestSmartList) -make sure the test embedded in SmartList's docstring passes ... ok -test_influence (tests.test_smart_list.TestSmartList) -make sure changes are propagated from parents to children ... ok -test_parent_add (tests.test_smart_list.TestSmartList) -make sure SmartList's add/radd/iadd work ... ok -test_parent_get_set_del (tests.test_smart_list.TestSmartList) -make sure SmartList's getitem/setitem/delitem work ... ok -test_parent_methods (tests.test_smart_list.TestSmartList) -make sure SmartList's non-magic methods work, like append() ... ok -test_parent_other_magics (tests.test_smart_list.TestSmartList) -make sure SmartList's other magically implemented features work ... ok -test_arguments01_blank (tests.test_pytokenizer.TestPyTokenizer) +test_children (tests.test_text.TestText) +test Text.__children__() ... ok +test_showtree (tests.test_text.TestText) +test Text.__showtree__() ... ok +test_strip (tests.test_text.TestText) +test Text.__strip__() ... ok +test_unicode (tests.test_text.TestText) +test Text.__unicode__() ... ok +test_value (tests.test_text.TestText) +test getter/setter for the value attribute ... ok + +---------------------------------------------------------------------- +Ran 1796 tests in 0.283s + +OK (skipped=1) +I: pybuild base:217: python3.7 setup.py test +running test +running egg_info +writing mwparserfromhell.egg-info/PKG-INFO +writing dependency_links to mwparserfromhell.egg-info/dependency_links.txt +writing top-level names to mwparserfromhell.egg-info/top_level.txt +reading manifest file 'mwparserfromhell.egg-info/SOURCES.txt' +reading manifest template 'MANIFEST.in' +writing manifest file 'mwparserfromhell.egg-info/SOURCES.txt' +running build_ext +copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/parser/_tokenizer.cpython-37m-i386-linux-gnu.so -> mwparserfromhell/parser +test_arguments01_blank (tests.test_roundtripping.TestRoundtripping) argument with no content ... ok -test_arguments02_blank_with_default (tests.test_pytokenizer.TestPyTokenizer) +test_arguments02_blank_with_default (tests.test_roundtripping.TestRoundtripping) argument with no content but a pipe ... ok -test_arguments03_basic (tests.test_pytokenizer.TestPyTokenizer) +test_arguments03_basic (tests.test_roundtripping.TestRoundtripping) simplest type of argument ... ok -test_arguments04_default (tests.test_pytokenizer.TestPyTokenizer) +test_arguments04_default (tests.test_roundtripping.TestRoundtripping) argument with a default value ... ok -test_arguments05_blank_with_multiple_defaults (tests.test_pytokenizer.TestPyTokenizer) +test_arguments05_blank_with_multiple_defaults (tests.test_roundtripping.TestRoundtripping) no content, multiple pipes ... ok -test_arguments06_multiple_defaults (tests.test_pytokenizer.TestPyTokenizer) +test_arguments06_multiple_defaults (tests.test_roundtripping.TestRoundtripping) multiple values separated by pipes ... ok -test_arguments07_newline (tests.test_pytokenizer.TestPyTokenizer) +test_arguments07_newline (tests.test_roundtripping.TestRoundtripping) newline as only content ... ok -test_arguments08_right_braces (tests.test_pytokenizer.TestPyTokenizer) +test_arguments08_right_braces (tests.test_roundtripping.TestRoundtripping) multiple } scattered throughout text ... ok -test_arguments09_right_braces_default (tests.test_pytokenizer.TestPyTokenizer) +test_arguments09_right_braces_default (tests.test_roundtripping.TestRoundtripping) multiple } scattered throughout text, with a default value ... ok -test_arguments10_nested (tests.test_pytokenizer.TestPyTokenizer) +test_arguments10_nested (tests.test_roundtripping.TestRoundtripping) an argument nested within another argument ... ok -test_arguments11_invalid_braces (tests.test_pytokenizer.TestPyTokenizer) +test_arguments11_invalid_braces (tests.test_roundtripping.TestRoundtripping) invalid argument: multiple braces that are not part of a template or argument ... ok -test_arguments12_incomplete_open_only (tests.test_pytokenizer.TestPyTokenizer) +test_arguments12_incomplete_open_only (tests.test_roundtripping.TestRoundtripping) incomplete arguments: just an open ... ok -test_arguments13_incomplete_open_text (tests.test_pytokenizer.TestPyTokenizer) +test_arguments13_incomplete_open_text (tests.test_roundtripping.TestRoundtripping) incomplete arguments: an open with some text ... ok -test_arguments14_incomplete_open_text_pipe (tests.test_pytokenizer.TestPyTokenizer) +test_arguments14_incomplete_open_text_pipe (tests.test_roundtripping.TestRoundtripping) incomplete arguments: an open, text, then a pipe ... ok -test_arguments15_incomplete_open_pipe (tests.test_pytokenizer.TestPyTokenizer) +test_arguments15_incomplete_open_pipe (tests.test_roundtripping.TestRoundtripping) incomplete arguments: an open, then a pipe ... ok -test_arguments16_incomplete_open_pipe_text (tests.test_pytokenizer.TestPyTokenizer) +test_arguments16_incomplete_open_pipe_text (tests.test_roundtripping.TestRoundtripping) incomplete arguments: an open, then a pipe, then text ... ok -test_arguments17_incomplete_open_pipes_text (tests.test_pytokenizer.TestPyTokenizer) +test_arguments17_incomplete_open_pipes_text (tests.test_roundtripping.TestRoundtripping) incomplete arguments: a pipe, then text then two pipes ... ok -test_arguments18_incomplete_open_partial_close (tests.test_pytokenizer.TestPyTokenizer) +test_arguments18_incomplete_open_partial_close (tests.test_roundtripping.TestRoundtripping) incomplete arguments: an open, then one right brace ... ok -test_arguments19_incomplete_preserve_previous (tests.test_pytokenizer.TestPyTokenizer) +test_arguments19_incomplete_preserve_previous (tests.test_roundtripping.TestRoundtripping) incomplete arguments: a valid argument followed by an invalid one ... ok -test_comments1_blank (tests.test_pytokenizer.TestPyTokenizer) +test_comments1_blank (tests.test_roundtripping.TestRoundtripping) a blank comment ... ok -test_comments2_basic (tests.test_pytokenizer.TestPyTokenizer) +test_comments2_basic (tests.test_roundtripping.TestRoundtripping) a basic comment ... ok -test_comments3_tons_of_nonsense (tests.test_pytokenizer.TestPyTokenizer) +test_comments3_tons_of_nonsense (tests.test_roundtripping.TestRoundtripping) a comment with tons of ignorable garbage in it ... ok -test_comments4_incomplete_blank (tests.test_pytokenizer.TestPyTokenizer) +test_comments4_incomplete_blank (tests.test_roundtripping.TestRoundtripping) a comment that doesn't close ... ok -test_comments5_incomplete_text (tests.test_pytokenizer.TestPyTokenizer) +test_comments5_incomplete_text (tests.test_roundtripping.TestRoundtripping) a comment that doesn't close, with text ... ok -test_comments6_incomplete_partial_close (tests.test_pytokenizer.TestPyTokenizer) +test_comments6_incomplete_partial_close (tests.test_roundtripping.TestRoundtripping) a comment that doesn't close, with a partial close ... ok -test_comments7_incomplete_part_only (tests.test_pytokenizer.TestPyTokenizer) +test_comments7_incomplete_part_only (tests.test_roundtripping.TestRoundtripping) a comment that only has a < and ! ... ok -test_external_links01_basic (tests.test_pytokenizer.TestPyTokenizer) +test_external_links01_basic (tests.test_roundtripping.TestRoundtripping) basic external link ... ok -test_external_links02_basic_brackets (tests.test_pytokenizer.TestPyTokenizer) +test_external_links02_basic_brackets (tests.test_roundtripping.TestRoundtripping) basic external link in brackets ... ok -test_external_links03_brackets_space (tests.test_pytokenizer.TestPyTokenizer) +test_external_links03_brackets_space (tests.test_roundtripping.TestRoundtripping) basic external link in brackets, with a space after ... ok -test_external_links04_brackets_title (tests.test_pytokenizer.TestPyTokenizer) +test_external_links04_brackets_title (tests.test_roundtripping.TestRoundtripping) basic external link in brackets, with a title ... ok -test_external_links05_brackets_multiword_title (tests.test_pytokenizer.TestPyTokenizer) +test_external_links05_brackets_multiword_title (tests.test_roundtripping.TestRoundtripping) basic external link in brackets, with a multi-word title ... ok -test_external_links06_brackets_adjacent (tests.test_pytokenizer.TestPyTokenizer) +test_external_links06_brackets_adjacent (tests.test_roundtripping.TestRoundtripping) three adjacent bracket-enclosed external links ... ok -test_external_links07_brackets_newline_before (tests.test_pytokenizer.TestPyTokenizer) +test_external_links07_brackets_newline_before (tests.test_roundtripping.TestRoundtripping) bracket-enclosed link with a newline before the title ... ok -test_external_links08_brackets_newline_inside (tests.test_pytokenizer.TestPyTokenizer) +test_external_links08_brackets_newline_inside (tests.test_roundtripping.TestRoundtripping) bracket-enclosed link with a newline in the title ... ok -test_external_links09_brackets_newline_after (tests.test_pytokenizer.TestPyTokenizer) +test_external_links09_brackets_newline_after (tests.test_roundtripping.TestRoundtripping) bracket-enclosed link with a newline after the title ... ok -test_external_links10_brackets_space_before (tests.test_pytokenizer.TestPyTokenizer) +test_external_links10_brackets_space_before (tests.test_roundtripping.TestRoundtripping) bracket-enclosed link with a space before the URL ... ok -test_external_links11_brackets_title_like_url (tests.test_pytokenizer.TestPyTokenizer) +test_external_links11_brackets_title_like_url (tests.test_roundtripping.TestRoundtripping) bracket-enclosed link with a title that looks like a URL ... ok -test_external_links12_brackets_recursive (tests.test_pytokenizer.TestPyTokenizer) +test_external_links12_brackets_recursive (tests.test_roundtripping.TestRoundtripping) bracket-enclosed link with a bracket-enclosed link as the title ... ok -test_external_links13_brackets_recursive_2 (tests.test_pytokenizer.TestPyTokenizer) +test_external_links13_brackets_recursive_2 (tests.test_roundtripping.TestRoundtripping) bracket-enclosed link with a double bracket-enclosed link as the title ... ok -test_external_links14_period_after (tests.test_pytokenizer.TestPyTokenizer) +test_external_links14_period_after (tests.test_roundtripping.TestRoundtripping) a period after a free link that is excluded ... ok -test_external_links15_colons_after (tests.test_pytokenizer.TestPyTokenizer) +test_external_links15_colons_after (tests.test_roundtripping.TestRoundtripping) colons after a free link that are excluded ... ok -test_external_links16_close_paren_after_excluded (tests.test_pytokenizer.TestPyTokenizer) +test_external_links16_close_paren_after_excluded (tests.test_roundtripping.TestRoundtripping) a closing parenthesis after a free link that is excluded ... ok -test_external_links17_close_paren_after_included (tests.test_pytokenizer.TestPyTokenizer) +test_external_links17_close_paren_after_included (tests.test_roundtripping.TestRoundtripping) a closing parenthesis after a free link that is included because of an opening parenthesis in the URL ... ok -test_external_links18_open_bracket_inside (tests.test_pytokenizer.TestPyTokenizer) +test_external_links18_open_bracket_inside (tests.test_roundtripping.TestRoundtripping) an open bracket inside a free link that causes it to be ended abruptly ... ok -test_external_links19_brackets_period_after (tests.test_pytokenizer.TestPyTokenizer) +test_external_links19_brackets_period_after (tests.test_roundtripping.TestRoundtripping) a period after a bracket-enclosed link that is included ... ok -test_external_links20_brackets_punct_after (tests.test_pytokenizer.TestPyTokenizer) +test_external_links20_brackets_punct_after (tests.test_roundtripping.TestRoundtripping) punctuation after a bracket-enclosed link that are included ... ok -test_external_links21_brackets_close_paren_after_included (tests.test_pytokenizer.TestPyTokenizer) +test_external_links21_brackets_close_paren_after_included (tests.test_roundtripping.TestRoundtripping) a closing parenthesis after a bracket-enclosed link that is included ... ok -test_external_links22_brackets_close_paren_after_included_2 (tests.test_pytokenizer.TestPyTokenizer) +test_external_links22_brackets_close_paren_after_included_2 (tests.test_roundtripping.TestRoundtripping) a closing parenthesis after a bracket-enclosed link that is also included ... ok -test_external_links23_brackets_open_bracket_inside (tests.test_pytokenizer.TestPyTokenizer) +test_external_links23_brackets_open_bracket_inside (tests.test_roundtripping.TestRoundtripping) an open bracket inside a bracket-enclosed link that is also included ... ok -test_external_links24_adjacent_space (tests.test_pytokenizer.TestPyTokenizer) +test_external_links24_adjacent_space (tests.test_roundtripping.TestRoundtripping) two free links separated by a space ... ok -test_external_links25_adjacent_newline (tests.test_pytokenizer.TestPyTokenizer) +test_external_links25_adjacent_newline (tests.test_roundtripping.TestRoundtripping) two free links separated by a newline ... ok -test_external_links26_adjacent_close_bracket (tests.test_pytokenizer.TestPyTokenizer) +test_external_links26_adjacent_close_bracket (tests.test_roundtripping.TestRoundtripping) two free links separated by a close bracket ... ok -test_external_links27_html_entity_in_url (tests.test_pytokenizer.TestPyTokenizer) +test_external_links27_html_entity_in_url (tests.test_roundtripping.TestRoundtripping) a HTML entity parsed correctly inside a free link ... ok -test_external_links28_template_in_url (tests.test_pytokenizer.TestPyTokenizer) +test_external_links28_template_in_url (tests.test_roundtripping.TestRoundtripping) a template parsed correctly inside a free link ... ok -test_external_links29_argument_in_url (tests.test_pytokenizer.TestPyTokenizer) +test_external_links29_argument_in_url (tests.test_roundtripping.TestRoundtripping) an argument parsed correctly inside a free link ... ok -test_external_links30_wikilink_in_url (tests.test_pytokenizer.TestPyTokenizer) +test_external_links30_wikilink_in_url (tests.test_roundtripping.TestRoundtripping) a wikilink that destroys a free link ... ok -test_external_links31_external_link_in_url (tests.test_pytokenizer.TestPyTokenizer) +test_external_links31_external_link_in_url (tests.test_roundtripping.TestRoundtripping) a bracketed link that destroys a free link ... ok -test_external_links32_spaces_padding (tests.test_pytokenizer.TestPyTokenizer) +test_external_links32_spaces_padding (tests.test_roundtripping.TestRoundtripping) spaces padding a free link ... ok -test_external_links33_text_and_spaces_padding (tests.test_pytokenizer.TestPyTokenizer) +test_external_links33_text_and_spaces_padding (tests.test_roundtripping.TestRoundtripping) text and spaces padding a free link ... ok -test_external_links34_template_before (tests.test_pytokenizer.TestPyTokenizer) +test_external_links34_template_before (tests.test_roundtripping.TestRoundtripping) a template before a free link ... ok -test_external_links35_spaces_padding_no_slashes (tests.test_pytokenizer.TestPyTokenizer) +test_external_links35_spaces_padding_no_slashes (tests.test_roundtripping.TestRoundtripping) spaces padding a free link with no slashes after the colon ... ok -test_external_links36_text_and_spaces_padding_no_slashes (tests.test_pytokenizer.TestPyTokenizer) +test_external_links36_text_and_spaces_padding_no_slashes (tests.test_roundtripping.TestRoundtripping) text and spaces padding a free link with no slashes after the colon ... ok -test_external_links37_template_before_no_slashes (tests.test_pytokenizer.TestPyTokenizer) +test_external_links37_template_before_no_slashes (tests.test_roundtripping.TestRoundtripping) a template before a free link with no slashes after the colon ... ok -test_external_links38_no_slashes (tests.test_pytokenizer.TestPyTokenizer) +test_external_links38_no_slashes (tests.test_roundtripping.TestRoundtripping) a free link with no slashes after the colon ... ok -test_external_links39_slashes_optional (tests.test_pytokenizer.TestPyTokenizer) +test_external_links39_slashes_optional (tests.test_roundtripping.TestRoundtripping) a free link using a scheme that doesn't need slashes, but has them anyway ... ok -test_external_links40_short (tests.test_pytokenizer.TestPyTokenizer) +test_external_links40_short (tests.test_roundtripping.TestRoundtripping) a very short free link ... ok -test_external_links41_slashes_missing (tests.test_pytokenizer.TestPyTokenizer) +test_external_links41_slashes_missing (tests.test_roundtripping.TestRoundtripping) slashes missing from a free link with a scheme that requires them ... ok -test_external_links42_no_scheme_but_slashes (tests.test_pytokenizer.TestPyTokenizer) +test_external_links42_no_scheme_but_slashes (tests.test_roundtripping.TestRoundtripping) no scheme in a free link, but slashes (protocol-relative free links are not supported) ... ok -test_external_links43_no_scheme_but_colon (tests.test_pytokenizer.TestPyTokenizer) +test_external_links43_no_scheme_but_colon (tests.test_roundtripping.TestRoundtripping) no scheme in a free link, but a colon ... ok -test_external_links44_no_scheme_but_colon_and_slashes (tests.test_pytokenizer.TestPyTokenizer) +test_external_links44_no_scheme_but_colon_and_slashes (tests.test_roundtripping.TestRoundtripping) no scheme in a free link, but a colon and slashes ... ok -test_external_links45_fake_scheme_no_slashes (tests.test_pytokenizer.TestPyTokenizer) +test_external_links45_fake_scheme_no_slashes (tests.test_roundtripping.TestRoundtripping) a nonexistent scheme in a free link, without slashes ... ok -test_external_links46_fake_scheme_slashes (tests.test_pytokenizer.TestPyTokenizer) +test_external_links46_fake_scheme_slashes (tests.test_roundtripping.TestRoundtripping) a nonexistent scheme in a free link, with slashes ... ok -test_external_links47_fake_scheme_brackets_no_slashes (tests.test_pytokenizer.TestPyTokenizer) +test_external_links47_fake_scheme_brackets_no_slashes (tests.test_roundtripping.TestRoundtripping) a nonexistent scheme in a bracketed link, without slashes ... ok -test_external_links48_fake_scheme_brackets_slashes (tests.test_pytokenizer.TestPyTokenizer) +test_external_links48_fake_scheme_brackets_slashes (tests.test_roundtripping.TestRoundtripping) #=a nonexistent scheme in a bracketed link, with slashes ... ok -test_external_links49_interrupted_scheme (tests.test_pytokenizer.TestPyTokenizer) +test_external_links49_interrupted_scheme (tests.test_roundtripping.TestRoundtripping) an otherwise valid scheme with something in the middle of it, in a free link ... ok -test_external_links50_interrupted_scheme_brackets (tests.test_pytokenizer.TestPyTokenizer) +test_external_links50_interrupted_scheme_brackets (tests.test_roundtripping.TestRoundtripping) an otherwise valid scheme with something in the middle of it, in a bracketed link ... ok -test_external_links51_no_slashes_brackets (tests.test_pytokenizer.TestPyTokenizer) +test_external_links51_no_slashes_brackets (tests.test_roundtripping.TestRoundtripping) no slashes after the colon in a bracketed link ... ok -test_external_links52_space_before_no_slashes_brackets (tests.test_pytokenizer.TestPyTokenizer) +test_external_links52_space_before_no_slashes_brackets (tests.test_roundtripping.TestRoundtripping) a space before a bracketed link with no slashes after the colon ... ok -test_external_links53_slashes_optional_brackets (tests.test_pytokenizer.TestPyTokenizer) +test_external_links53_slashes_optional_brackets (tests.test_roundtripping.TestRoundtripping) a bracketed link using a scheme that doesn't need slashes, but has them anyway ... ok -test_external_links54_short_brackets (tests.test_pytokenizer.TestPyTokenizer) +test_external_links54_short_brackets (tests.test_roundtripping.TestRoundtripping) a very short link in brackets ... ok -test_external_links55_slashes_missing_brackets (tests.test_pytokenizer.TestPyTokenizer) +test_external_links55_slashes_missing_brackets (tests.test_roundtripping.TestRoundtripping) slashes missing from a scheme that requires them in a bracketed link ... ok -test_external_links56_protcol_relative (tests.test_pytokenizer.TestPyTokenizer) +test_external_links56_protcol_relative (tests.test_roundtripping.TestRoundtripping) a protocol-relative link (in brackets) ... ok -test_external_links57_scheme_missing_but_colon_brackets (tests.test_pytokenizer.TestPyTokenizer) +test_external_links57_scheme_missing_but_colon_brackets (tests.test_roundtripping.TestRoundtripping) scheme missing from a bracketed link, but with a colon ... ok -test_external_links58_scheme_missing_but_colon_slashes_brackets (tests.test_pytokenizer.TestPyTokenizer) +test_external_links58_scheme_missing_but_colon_slashes_brackets (tests.test_roundtripping.TestRoundtripping) scheme missing from a bracketed link, but with a colon and slashes ... ok -test_external_links59_unclosed_protocol_relative (tests.test_pytokenizer.TestPyTokenizer) +test_external_links59_unclosed_protocol_relative (tests.test_roundtripping.TestRoundtripping) an unclosed protocol-relative bracketed link ... ok -test_external_links60_space_before_protcol_relative (tests.test_pytokenizer.TestPyTokenizer) +test_external_links60_space_before_protcol_relative (tests.test_roundtripping.TestRoundtripping) a space before a protocol-relative bracketed link ... ok -test_external_links61_unclosed_just_scheme (tests.test_pytokenizer.TestPyTokenizer) +test_external_links61_unclosed_just_scheme (tests.test_roundtripping.TestRoundtripping) an unclosed bracketed link, ending after the scheme ... ok -test_external_links62_unclosed_scheme_colon (tests.test_pytokenizer.TestPyTokenizer) +test_external_links62_unclosed_scheme_colon (tests.test_roundtripping.TestRoundtripping) an unclosed bracketed link, ending after the colon ... ok -test_external_links63_unclosed_scheme_colon_slashes (tests.test_pytokenizer.TestPyTokenizer) +test_external_links63_unclosed_scheme_colon_slashes (tests.test_roundtripping.TestRoundtripping) an unclosed bracketed link, ending after the slashes ... ok -test_external_links64_incomplete_bracket (tests.test_pytokenizer.TestPyTokenizer) +test_external_links64_incomplete_bracket (tests.test_roundtripping.TestRoundtripping) just an open bracket ... ok -test_external_links65_incomplete_scheme_colon (tests.test_pytokenizer.TestPyTokenizer) +test_external_links65_incomplete_scheme_colon (tests.test_roundtripping.TestRoundtripping) a free link with just a scheme and a colon ... ok -test_external_links66_incomplete_scheme_colon_slashes (tests.test_pytokenizer.TestPyTokenizer) +test_external_links66_incomplete_scheme_colon_slashes (tests.test_roundtripping.TestRoundtripping) a free link with just a scheme, colon, and slashes ... ok -test_external_links67_brackets_scheme_but_no_url (tests.test_pytokenizer.TestPyTokenizer) +test_external_links67_brackets_scheme_but_no_url (tests.test_roundtripping.TestRoundtripping) brackets around a scheme and a colon ... ok -test_external_links68_brackets_scheme_slashes_but_no_url (tests.test_pytokenizer.TestPyTokenizer) +test_external_links68_brackets_scheme_slashes_but_no_url (tests.test_roundtripping.TestRoundtripping) brackets around a scheme, colon, and slashes ... ok -test_external_links69_brackets_scheme_title_but_no_url (tests.test_pytokenizer.TestPyTokenizer) +test_external_links69_brackets_scheme_title_but_no_url (tests.test_roundtripping.TestRoundtripping) brackets around a scheme, colon, and slashes, with a title ... ok -test_headings01_level_1 (tests.test_pytokenizer.TestPyTokenizer) +test_headings01_level_1 (tests.test_roundtripping.TestRoundtripping) a basic level-1 heading ... ok -test_headings02_level_2 (tests.test_pytokenizer.TestPyTokenizer) +test_headings02_level_2 (tests.test_roundtripping.TestRoundtripping) a basic level-2 heading ... ok -test_headings03_level_3 (tests.test_pytokenizer.TestPyTokenizer) +test_headings03_level_3 (tests.test_roundtripping.TestRoundtripping) a basic level-3 heading ... ok -test_headings04_level_4 (tests.test_pytokenizer.TestPyTokenizer) +test_headings04_level_4 (tests.test_roundtripping.TestRoundtripping) a basic level-4 heading ... ok -test_headings05_level_5 (tests.test_pytokenizer.TestPyTokenizer) +test_headings05_level_5 (tests.test_roundtripping.TestRoundtripping) a basic level-5 heading ... ok -test_headings06_level_6 (tests.test_pytokenizer.TestPyTokenizer) +test_headings06_level_6 (tests.test_roundtripping.TestRoundtripping) a basic level-6 heading ... ok -test_headings07_level_7 (tests.test_pytokenizer.TestPyTokenizer) +test_headings07_level_7 (tests.test_roundtripping.TestRoundtripping) a level-6 heading that pretends to be a level-7 heading ... ok -test_headings08_level_3_2 (tests.test_pytokenizer.TestPyTokenizer) +test_headings08_level_3_2 (tests.test_roundtripping.TestRoundtripping) a level-2 heading that pretends to be a level-3 heading ... ok -test_headings09_level_4_6 (tests.test_pytokenizer.TestPyTokenizer) +test_headings09_level_4_6 (tests.test_roundtripping.TestRoundtripping) a level-4 heading that pretends to be a level-6 heading ... ok -test_headings10_newline_before (tests.test_pytokenizer.TestPyTokenizer) +test_headings10_newline_before (tests.test_roundtripping.TestRoundtripping) a heading that starts after a newline ... ok -test_headings11_text_after (tests.test_pytokenizer.TestPyTokenizer) +test_headings11_text_after (tests.test_roundtripping.TestRoundtripping) text on the same line after ... ok -test_headings12_invalid_text_before (tests.test_pytokenizer.TestPyTokenizer) +test_headings12_invalid_text_before (tests.test_roundtripping.TestRoundtripping) invalid headings: text on the same line before ... ok -test_headings13_invalid_newline_middle (tests.test_pytokenizer.TestPyTokenizer) +test_headings13_invalid_newline_middle (tests.test_roundtripping.TestRoundtripping) invalid headings: newline in the middle ... ok -test_headings14_invalid_newline_end (tests.test_pytokenizer.TestPyTokenizer) +test_headings14_invalid_newline_end (tests.test_roundtripping.TestRoundtripping) invalid headings: newline in the middle ... ok -test_headings15_invalid_nesting (tests.test_pytokenizer.TestPyTokenizer) +test_headings15_invalid_nesting (tests.test_roundtripping.TestRoundtripping) invalid headings: attempts at nesting ... ok -test_headings16_incomplete (tests.test_pytokenizer.TestPyTokenizer) +test_headings16_incomplete (tests.test_roundtripping.TestRoundtripping) a heading that starts but doesn't finish ... ok -test_html_entities01_named (tests.test_pytokenizer.TestPyTokenizer) +test_html_entities01_named (tests.test_roundtripping.TestRoundtripping) a basic named HTML entity ... ok -test_html_entities02_numeric_decimal (tests.test_pytokenizer.TestPyTokenizer) +test_html_entities02_numeric_decimal (tests.test_roundtripping.TestRoundtripping) a basic decimal HTML entity ... ok -test_html_entities03_numeric_hexadecimal_x (tests.test_pytokenizer.TestPyTokenizer) +test_html_entities03_numeric_hexadecimal_x (tests.test_roundtripping.TestRoundtripping) a basic hexadecimal HTML entity, using 'x' as a signal ... ok -test_html_entities04_numeric_hexadecimal_X (tests.test_pytokenizer.TestPyTokenizer) +test_html_entities04_numeric_hexadecimal_X (tests.test_roundtripping.TestRoundtripping) a basic hexadecimal HTML entity, using 'X' as a signal ... ok -test_html_entities05_numeric_decimal_max (tests.test_pytokenizer.TestPyTokenizer) +test_html_entities05_numeric_decimal_max (tests.test_roundtripping.TestRoundtripping) the maximum acceptable decimal numeric entity ... ok -test_html_entities06_numeric_hex_max (tests.test_pytokenizer.TestPyTokenizer) +test_html_entities06_numeric_hex_max (tests.test_roundtripping.TestRoundtripping) the maximum acceptable hexadecimal numeric entity ... ok -test_html_entities07_numeric_zeros (tests.test_pytokenizer.TestPyTokenizer) +test_html_entities07_numeric_zeros (tests.test_roundtripping.TestRoundtripping) zeros accepted at the beginning of a numeric entity ... ok -test_html_entities08_numeric_hex_zeros (tests.test_pytokenizer.TestPyTokenizer) +test_html_entities08_numeric_hex_zeros (tests.test_roundtripping.TestRoundtripping) zeros accepted at the beginning of a hex numeric entity ... ok -test_html_entities09_invalid_named_too_long (tests.test_pytokenizer.TestPyTokenizer) +test_html_entities09_invalid_named_too_long (tests.test_roundtripping.TestRoundtripping) a named entity that is too long ... ok -test_html_entities10_invalid_named_undefined (tests.test_pytokenizer.TestPyTokenizer) +test_html_entities10_invalid_named_undefined (tests.test_roundtripping.TestRoundtripping) a named entity that doesn't exist ... ok -test_html_entities11_invalid_named_nonascii (tests.test_pytokenizer.TestPyTokenizer) +test_html_entities11_invalid_named_nonascii (tests.test_roundtripping.TestRoundtripping) a named entity with non-ASCII characters ... ok -test_html_entities12_invalid_numeric_out_of_range_1 (tests.test_pytokenizer.TestPyTokenizer) +test_html_entities12_invalid_numeric_out_of_range_1 (tests.test_roundtripping.TestRoundtripping) a numeric entity that is out of range: < 1 ... ok -test_html_entities13_invalid_numeric_out_of_range_2 (tests.test_pytokenizer.TestPyTokenizer) +test_html_entities13_invalid_numeric_out_of_range_2 (tests.test_roundtripping.TestRoundtripping) a hex numeric entity that is out of range: < 1 ... ok -test_html_entities14_invalid_numeric_out_of_range_3 (tests.test_pytokenizer.TestPyTokenizer) +test_html_entities14_invalid_numeric_out_of_range_3 (tests.test_roundtripping.TestRoundtripping) a numeric entity that is out of range: > 0x10FFFF ... ok -test_html_entities15_invalid_numeric_out_of_range_4 (tests.test_pytokenizer.TestPyTokenizer) +test_html_entities15_invalid_numeric_out_of_range_4 (tests.test_roundtripping.TestRoundtripping) a hex numeric entity that is out of range: > 0x10FFFF ... ok -test_html_entities16_invalid_partial_amp (tests.test_pytokenizer.TestPyTokenizer) +test_html_entities16_invalid_partial_amp (tests.test_roundtripping.TestRoundtripping) invalid entities: just an ampersand ... ok -test_html_entities17_invalid_partial_amp_semicolon (tests.test_pytokenizer.TestPyTokenizer) +test_html_entities17_invalid_partial_amp_semicolon (tests.test_roundtripping.TestRoundtripping) invalid entities: an ampersand and semicolon ... ok -test_html_entities18_invalid_partial_amp_pound (tests.test_pytokenizer.TestPyTokenizer) +test_html_entities18_invalid_partial_amp_pound (tests.test_roundtripping.TestRoundtripping) invalid entities: just an ampersand, pound sign ... ok -test_html_entities19_invalid_partial_amp_pound_x (tests.test_pytokenizer.TestPyTokenizer) +test_html_entities19_invalid_partial_amp_pound_x (tests.test_roundtripping.TestRoundtripping) invalid entities: just an ampersand, pound sign, x ... ok -test_html_entities20_invalid_partial_amp_pound_semicolon (tests.test_pytokenizer.TestPyTokenizer) +test_html_entities20_invalid_partial_amp_pound_semicolon (tests.test_roundtripping.TestRoundtripping) invalid entities: an ampersand, pound sign, and semicolon ... ok -test_html_entities21_invalid_partial_amp_pound_x_semicolon (tests.test_pytokenizer.TestPyTokenizer) +test_html_entities21_invalid_partial_amp_pound_x_semicolon (tests.test_roundtripping.TestRoundtripping) invalid entities: an ampersand, pound sign, x, and semicolon ... ok -test_html_entities22_invalid_partial_amp_pound_numbers (tests.test_pytokenizer.TestPyTokenizer) +test_html_entities22_invalid_partial_amp_pound_numbers (tests.test_roundtripping.TestRoundtripping) invalid entities: an ampersand, pound sign, numbers ... ok -test_html_entities23_invalid_partial_amp_pound_x_semicolon (tests.test_pytokenizer.TestPyTokenizer) +test_html_entities23_invalid_partial_amp_pound_x_semicolon (tests.test_roundtripping.TestRoundtripping) invalid entities: an ampersand, pound sign, and x ... ok -test_integration01_empty (tests.test_pytokenizer.TestPyTokenizer) +test_integration01_empty (tests.test_roundtripping.TestRoundtripping) sanity check that parsing an empty string yields nothing ... ok -test_integration02_template_argument_mix (tests.test_pytokenizer.TestPyTokenizer) +test_integration02_template_argument_mix (tests.test_roundtripping.TestRoundtripping) an ambiguous mix of templates and arguments ... ok -test_integration03_link_in_template_name (tests.test_pytokenizer.TestPyTokenizer) +test_integration03_link_in_template_name (tests.test_roundtripping.TestRoundtripping) a wikilink inside a template name, which breaks the template ... ok -test_integration04_rich_heading (tests.test_pytokenizer.TestPyTokenizer) +test_integration04_rich_heading (tests.test_roundtripping.TestRoundtripping) a heading with templates/wikilinks in it ... ok -test_integration05_html_entity_with_template (tests.test_pytokenizer.TestPyTokenizer) +test_integration05_html_entity_with_template (tests.test_roundtripping.TestRoundtripping) a HTML entity with a template embedded inside ... ok -test_integration06_html_entity_with_comment (tests.test_pytokenizer.TestPyTokenizer) +test_integration06_html_entity_with_comment (tests.test_roundtripping.TestRoundtripping) a HTML entity with a comment embedded inside ... ok -test_integration07_rich_tags (tests.test_pytokenizer.TestPyTokenizer) +test_integration07_rich_tags (tests.test_roundtripping.TestRoundtripping) a HTML tag with tons of other things in it ... ok -test_integration08_wildcard (tests.test_pytokenizer.TestPyTokenizer) +test_integration08_wildcard (tests.test_roundtripping.TestRoundtripping) a wildcard assortment of various things ... ok -test_integration09_wildcard_redux (tests.test_pytokenizer.TestPyTokenizer) +test_integration09_wildcard_redux (tests.test_roundtripping.TestRoundtripping) an even wilder assortment of various things ... ok -test_integration10_link_inside_dl (tests.test_pytokenizer.TestPyTokenizer) +test_integration10_link_inside_dl (tests.test_roundtripping.TestRoundtripping) an external link inside a def list, such that the external link is parsed ... ok -test_integration11_link_inside_dl_2 (tests.test_pytokenizer.TestPyTokenizer) +test_integration11_link_inside_dl_2 (tests.test_roundtripping.TestRoundtripping) an external link inside a def list, such that the external link is not parsed ... ok -test_integration12_link_inside_template (tests.test_pytokenizer.TestPyTokenizer) +test_integration12_link_inside_template (tests.test_roundtripping.TestRoundtripping) an external link nested inside a template, before the end ... ok -test_integration13_link_inside_template_2 (tests.test_pytokenizer.TestPyTokenizer) +test_integration13_link_inside_template_2 (tests.test_roundtripping.TestRoundtripping) an external link nested inside a template, before a separator ... ok -test_integration14_link_inside_template_3 (tests.test_pytokenizer.TestPyTokenizer) +test_integration14_link_inside_template_3 (tests.test_roundtripping.TestRoundtripping) an external link nested inside a template, before an equal sign ... ok -test_integration15_link_inside_argument (tests.test_pytokenizer.TestPyTokenizer) +test_integration15_link_inside_argument (tests.test_roundtripping.TestRoundtripping) an external link nested inside an argument ... ok -test_integration16_link_inside_heading (tests.test_pytokenizer.TestPyTokenizer) +test_integration16_link_inside_heading (tests.test_roundtripping.TestRoundtripping) an external link nested inside a heading ... ok -test_integration17_link_inside_tag_body (tests.test_pytokenizer.TestPyTokenizer) +test_integration17_link_inside_tag_body (tests.test_roundtripping.TestRoundtripping) an external link nested inside the body of a tag ... ok -test_integration18_link_inside_tag_style (tests.test_pytokenizer.TestPyTokenizer) +test_integration18_link_inside_tag_style (tests.test_roundtripping.TestRoundtripping) an external link nested inside style tags ... ok -test_integration19_style_tag_inside_link (tests.test_pytokenizer.TestPyTokenizer) +test_integration19_style_tag_inside_link (tests.test_roundtripping.TestRoundtripping) style tags disrupting an external link ... ok -test_integration20_comment_inside_link (tests.test_pytokenizer.TestPyTokenizer) +test_integration20_comment_inside_link (tests.test_roundtripping.TestRoundtripping) an HTML comment inside an external link ... ok -test_integration21_bracketed_link_inside_template (tests.test_pytokenizer.TestPyTokenizer) +test_integration21_bracketed_link_inside_template (tests.test_roundtripping.TestRoundtripping) a bracketed external link nested inside a template, before the end ... ok -test_integration22_comment_inside_bracketed_link (tests.test_pytokenizer.TestPyTokenizer) +test_integration22_comment_inside_bracketed_link (tests.test_roundtripping.TestRoundtripping) an HTML comment inside a bracketed external link ... ok -test_integration23_wikilink_inside_external_link (tests.test_pytokenizer.TestPyTokenizer) +test_integration23_wikilink_inside_external_link (tests.test_roundtripping.TestRoundtripping) a wikilink inside an external link, which the parser considers valid (see issue #61) ... ok -test_integration24_external_link_inside_wikilink (tests.test_pytokenizer.TestPyTokenizer) +test_integration24_external_link_inside_wikilink (tests.test_roundtripping.TestRoundtripping) an external link inside a wikilink, valid in the case of images (see issue #62) ... ok -test_integration25_external_link_inside_wikilink_brackets (tests.test_pytokenizer.TestPyTokenizer) +test_integration25_external_link_inside_wikilink_brackets (tests.test_roundtripping.TestRoundtripping) an external link with brackets inside a wikilink ... ok -test_integration26_external_link_inside_wikilink_title (tests.test_pytokenizer.TestPyTokenizer) +test_integration26_external_link_inside_wikilink_title (tests.test_roundtripping.TestRoundtripping) an external link inside a wikilink title, which is not parsed ... ok -test_integration27_italics_inside_external_link_inside_incomplete_list (tests.test_pytokenizer.TestPyTokenizer) +test_integration27_italics_inside_external_link_inside_incomplete_list (tests.test_roundtripping.TestRoundtripping) italic text inside an external link inside an incomplete list ... ok -test_integration28_nodes_inside_external_link_after_punct (tests.test_pytokenizer.TestPyTokenizer) +test_integration28_nodes_inside_external_link_after_punct (tests.test_roundtripping.TestRoundtripping) various complex nodes inside an external link following punctuation ... ok -test_integration29_newline_and_comment_in_template_name (tests.test_pytokenizer.TestPyTokenizer) +test_integration29_newline_and_comment_in_template_name (tests.test_roundtripping.TestRoundtripping) a template name containing a newline followed by a comment ... ok -test_integration30_newline_and_comment_in_template_name_2 (tests.test_pytokenizer.TestPyTokenizer) +test_integration30_newline_and_comment_in_template_name_2 (tests.test_roundtripping.TestRoundtripping) a template name containing a newline followed by a comment ... ok -test_integration31_newline_and_comment_in_template_name_3 (tests.test_pytokenizer.TestPyTokenizer) +test_integration31_newline_and_comment_in_template_name_3 (tests.test_roundtripping.TestRoundtripping) a template name containing a newline followed by a comment ... ok -test_integration32_newline_and_comment_in_template_name_4 (tests.test_pytokenizer.TestPyTokenizer) +test_integration32_newline_and_comment_in_template_name_4 (tests.test_roundtripping.TestRoundtripping) a template name containing a newline followed by a comment ... ok -test_integration33_newline_and_comment_in_template_name_5 (tests.test_pytokenizer.TestPyTokenizer) +test_integration33_newline_and_comment_in_template_name_5 (tests.test_roundtripping.TestRoundtripping) a template name containing a newline followed by a comment ... ok -test_integration34_newline_and_comment_in_template_name_6 (tests.test_pytokenizer.TestPyTokenizer) +test_integration34_newline_and_comment_in_template_name_6 (tests.test_roundtripping.TestRoundtripping) a template name containing a newline followed by a comment ... ok -test_integration35_newline_and_comment_in_template_name_7 (tests.test_pytokenizer.TestPyTokenizer) +test_integration35_newline_and_comment_in_template_name_7 (tests.test_roundtripping.TestRoundtripping) a template name containing a newline followed by a comment ... ok -test_integration36_newline_and_comment_in_template_name_8 (tests.test_pytokenizer.TestPyTokenizer) +test_integration36_newline_and_comment_in_template_name_8 (tests.test_roundtripping.TestRoundtripping) a template name containing a newline followed by a comment ... ok -test_integration37_tag_in_link_title (tests.test_pytokenizer.TestPyTokenizer) +test_integration37_tag_in_link_title (tests.test_roundtripping.TestRoundtripping) HTML tags are invalid in link titles, even when complete ... ok -test_integration38_tag_in_template_name (tests.test_pytokenizer.TestPyTokenizer) +test_integration38_tag_in_template_name (tests.test_roundtripping.TestRoundtripping) HTML tags are invalid in template names, even when complete ... ok -test_integration39_tag_in_link_text (tests.test_pytokenizer.TestPyTokenizer) +test_integration39_tag_in_link_text (tests.test_roundtripping.TestRoundtripping) HTML tags are valid in link text ... ok -test_integration40_comment_in_link_title (tests.test_pytokenizer.TestPyTokenizer) +test_integration40_comment_in_link_title (tests.test_roundtripping.TestRoundtripping) comments are valid in link titles ... ok -test_integration41_incomplete_comment_in_link_title (tests.test_pytokenizer.TestPyTokenizer) +test_integration41_incomplete_comment_in_link_title (tests.test_roundtripping.TestRoundtripping) incomplete comments are invalid in link titles ... ok -test_integration42_incomplete_comment_in_link_title_2 (tests.test_pytokenizer.TestPyTokenizer) +test_integration42_incomplete_comment_in_link_title_2 (tests.test_roundtripping.TestRoundtripping) incomplete comments are invalid in link titles ... ok -test_integration43_incomplete_comment_in_link_title_3 (tests.test_pytokenizer.TestPyTokenizer) +test_integration43_incomplete_comment_in_link_title_3 (tests.test_roundtripping.TestRoundtripping) incomplete comments are invalid in link titles ... ok -test_integration44_incomplete_comment_in_link_title_4 (tests.test_pytokenizer.TestPyTokenizer) +test_integration44_incomplete_comment_in_link_title_4 (tests.test_roundtripping.TestRoundtripping) incomplete comments are invalid in link titles ... ok -test_integration45_incomplete_comment_in_link_title_5 (tests.test_pytokenizer.TestPyTokenizer) +test_integration45_incomplete_comment_in_link_title_5 (tests.test_roundtripping.TestRoundtripping) incomplete comments are invalid in link titles ... ok -test_integration46_incomplete_comment_in_link_title_6 (tests.test_pytokenizer.TestPyTokenizer) +test_integration46_incomplete_comment_in_link_title_6 (tests.test_roundtripping.TestRoundtripping) incomplete comments are invalid in link titles ... ok -test_integration47_wikilink_to_external_link_fallback (tests.test_pytokenizer.TestPyTokenizer) +test_integration47_wikilink_to_external_link_fallback (tests.test_roundtripping.TestRoundtripping) an external link enclosed in an extra pair of brackets (see issue #120) ... ok -test_integration48_wikilink_to_external_link_fallback_2 (tests.test_pytokenizer.TestPyTokenizer) +test_integration48_wikilink_to_external_link_fallback_2 (tests.test_roundtripping.TestRoundtripping) an external link enclosed in an extra pair of brackets (see issue #120) ... ok -test_integration49_tables_in_templates (tests.test_pytokenizer.TestPyTokenizer) +test_integration49_tables_in_templates (tests.test_roundtripping.TestRoundtripping) catch error handling mistakes when wikitables are inside templates ... ok -test_integration50_tables_in_templates_2 (tests.test_pytokenizer.TestPyTokenizer) +test_integration50_tables_in_templates_2 (tests.test_roundtripping.TestRoundtripping) catch error handling mistakes when wikitables are inside templates ... ok -test_integration51_many_invalid_nested_tags (tests.test_pytokenizer.TestPyTokenizer) +test_integration51_many_invalid_nested_tags (tests.test_roundtripping.TestRoundtripping) many unending nested tags that should be treated as plain text, followed by valid wikitext (see issues #42, #183) ... ok -test_tables01_empty_table (tests.test_pytokenizer.TestPyTokenizer) +test_tables01_empty_table (tests.test_roundtripping.TestRoundtripping) parsing an empty table ... ok -test_tables02_inline_table (tests.test_pytokenizer.TestPyTokenizer) +test_tables02_inline_table (tests.test_roundtripping.TestRoundtripping) tables with a close on the same line are not valid ... ok -test_tables03_no_table_close_simple (tests.test_pytokenizer.TestPyTokenizer) +test_tables03_no_table_close_simple (tests.test_roundtripping.TestRoundtripping) no table close on inline table ... ok -test_tables04_no_table_close_newline (tests.test_pytokenizer.TestPyTokenizer) +test_tables04_no_table_close_newline (tests.test_roundtripping.TestRoundtripping) no table close with a newline ... ok -test_tables05_no_table_close_inside_cell (tests.test_pytokenizer.TestPyTokenizer) +test_tables05_no_table_close_inside_cell (tests.test_roundtripping.TestRoundtripping) no table close while inside of a cell ... ok -test_tables06_no_table_close_inside_cell_after_newline (tests.test_pytokenizer.TestPyTokenizer) +test_tables06_no_table_close_inside_cell_after_newline (tests.test_roundtripping.TestRoundtripping) no table close while inside of a cell after a newline ... ok -test_tables07_no_table_close_inside_cell_with_attributes (tests.test_pytokenizer.TestPyTokenizer) +test_tables07_no_table_close_inside_cell_with_attributes (tests.test_roundtripping.TestRoundtripping) no table close while inside of a cell with attributes ... ok -test_tables08_no_table_close_inside_row (tests.test_pytokenizer.TestPyTokenizer) +test_tables08_no_table_close_inside_row (tests.test_roundtripping.TestRoundtripping) no table close while inside of a row ... ok -test_tables09_no_table_close_inside_row_after_newline (tests.test_pytokenizer.TestPyTokenizer) +test_tables09_no_table_close_inside_row_after_newline (tests.test_roundtripping.TestRoundtripping) no table close while inside of a row after a newline ... ok -test_tables10_no_table_close_row_and_cell (tests.test_pytokenizer.TestPyTokenizer) +test_tables10_no_table_close_row_and_cell (tests.test_roundtripping.TestRoundtripping) no table close while inside a cell inside a row ... ok -test_tables11_no_table_close_attributes (tests.test_pytokenizer.TestPyTokenizer) +test_tables11_no_table_close_attributes (tests.test_roundtripping.TestRoundtripping) don't parse attributes as attributes if the table doesn't exist ... ok -test_tables12_no_table_close_unclosed_attributes (tests.test_pytokenizer.TestPyTokenizer) +test_tables12_no_table_close_unclosed_attributes (tests.test_roundtripping.TestRoundtripping) don't parse unclosed attributes if the table doesn't exist ... ok -test_tables13_no_table_close_row_attributes (tests.test_pytokenizer.TestPyTokenizer) +test_tables13_no_table_close_row_attributes (tests.test_roundtripping.TestRoundtripping) don't parse row attributes as attributes if the table doesn't exist ... ok -test_tables14_no_table_close_cell (tests.test_pytokenizer.TestPyTokenizer) +test_tables14_no_table_close_cell (tests.test_roundtripping.TestRoundtripping) don't parse cells if the table doesn't close ... ok -test_tables15_crazy_no_table_close (tests.test_pytokenizer.TestPyTokenizer) +test_tables15_crazy_no_table_close (tests.test_roundtripping.TestRoundtripping) lots of opened wiki syntax without closes ... ok -test_tables16_leading_whitespace_table (tests.test_pytokenizer.TestPyTokenizer) +test_tables16_leading_whitespace_table (tests.test_roundtripping.TestRoundtripping) handle leading whitespace for a table ... ok -test_tables17_whitespace_after_table (tests.test_pytokenizer.TestPyTokenizer) +test_tables17_whitespace_after_table (tests.test_roundtripping.TestRoundtripping) handle whitespace after a table close ... ok -test_tables18_different_whitespace_after_table (tests.test_pytokenizer.TestPyTokenizer) +test_tables18_different_whitespace_after_table (tests.test_roundtripping.TestRoundtripping) handle spaces after a table close ... ok -test_tables19_characters_after_table (tests.test_pytokenizer.TestPyTokenizer) +test_tables19_characters_after_table (tests.test_roundtripping.TestRoundtripping) handle characters after a table close ... ok -test_tables20_characters_after_inline_table (tests.test_pytokenizer.TestPyTokenizer) +test_tables20_characters_after_inline_table (tests.test_roundtripping.TestRoundtripping) handle characters after an inline table close ... ok -test_tables21_leading_characters_table (tests.test_pytokenizer.TestPyTokenizer) +test_tables21_leading_characters_table (tests.test_roundtripping.TestRoundtripping) don't parse as a table when leading characters are not newline or whitespace ... ok -test_tables22_table_row_simple (tests.test_pytokenizer.TestPyTokenizer) +test_tables22_table_row_simple (tests.test_roundtripping.TestRoundtripping) simple table row ... ok -test_tables23_table_row_multiple (tests.test_pytokenizer.TestPyTokenizer) +test_tables23_table_row_multiple (tests.test_roundtripping.TestRoundtripping) simple table row ... ok -test_tables24_table_cell_simple (tests.test_pytokenizer.TestPyTokenizer) +test_tables24_table_cell_simple (tests.test_roundtripping.TestRoundtripping) simple table cell ... ok -test_tables25_table_cell_inline (tests.test_pytokenizer.TestPyTokenizer) +test_tables25_table_cell_inline (tests.test_roundtripping.TestRoundtripping) multiple inline table cells ... ok -test_tables26_table_cell_multiple (tests.test_pytokenizer.TestPyTokenizer) +test_tables26_table_cell_multiple (tests.test_roundtripping.TestRoundtripping) multiple table cells (non-inline) ... ok -test_tables27_table_header_simple (tests.test_pytokenizer.TestPyTokenizer) +test_tables27_table_header_simple (tests.test_roundtripping.TestRoundtripping) simple header cell ... ok -test_tables28_table_header_inline (tests.test_pytokenizer.TestPyTokenizer) +test_tables28_table_header_inline (tests.test_roundtripping.TestRoundtripping) multiple inline header cells ... ok -test_tables29_table_header_multiple (tests.test_pytokenizer.TestPyTokenizer) +test_tables29_table_header_multiple (tests.test_roundtripping.TestRoundtripping) multiple table header cells (non-inline) ... ok -test_tables30_nested_cells_and_rows (tests.test_pytokenizer.TestPyTokenizer) +test_tables30_nested_cells_and_rows (tests.test_roundtripping.TestRoundtripping) combination of cells and rows in a table ... ok -test_tables31_table_cell_fake_close (tests.test_pytokenizer.TestPyTokenizer) +test_tables31_table_cell_fake_close (tests.test_roundtripping.TestRoundtripping) looks like a table close but is not ... ok -test_tables32_table_cell_more_fake_close (tests.test_pytokenizer.TestPyTokenizer) +test_tables32_table_cell_more_fake_close (tests.test_roundtripping.TestRoundtripping) looks like a table close but is not ... ok -test_tables33_table_cell_extra_close (tests.test_pytokenizer.TestPyTokenizer) +test_tables33_table_cell_extra_close (tests.test_roundtripping.TestRoundtripping) process second close as text ... ok -test_tables34_nowiki_inside_table (tests.test_pytokenizer.TestPyTokenizer) +test_tables34_nowiki_inside_table (tests.test_roundtripping.TestRoundtripping) nowiki handles pipe characters in tables ... ok -test_tables35_table_text_outside_cell (tests.test_pytokenizer.TestPyTokenizer) +test_tables35_table_text_outside_cell (tests.test_roundtripping.TestRoundtripping) parse text inside table but outside of a cell ... ok -test_tables36_no_table_cell_with_leading_characters (tests.test_pytokenizer.TestPyTokenizer) +test_tables36_no_table_cell_with_leading_characters (tests.test_roundtripping.TestRoundtripping) fail to create a table cell when there are leading non-whitespace characters ... ok -test_tables37_no_table_row_with_leading_characters (tests.test_pytokenizer.TestPyTokenizer) +test_tables37_no_table_row_with_leading_characters (tests.test_roundtripping.TestRoundtripping) fail to create a table row when there are leading non-whitespace characters ... ok -test_tables38_template_inside_table_cell (tests.test_pytokenizer.TestPyTokenizer) +test_tables38_template_inside_table_cell (tests.test_roundtripping.TestRoundtripping) template within table cell ... ok -test_tables39_table_cell_attributes (tests.test_pytokenizer.TestPyTokenizer) +test_tables39_table_cell_attributes (tests.test_roundtripping.TestRoundtripping) parse table cell style attributes ... ok -test_tables40_table_cell_empty_attributes (tests.test_pytokenizer.TestPyTokenizer) +test_tables40_table_cell_empty_attributes (tests.test_roundtripping.TestRoundtripping) parse table cell with style markers but no attributes ... ok -test_tables41_table_cell_with_dash (tests.test_pytokenizer.TestPyTokenizer) +test_tables41_table_cell_with_dash (tests.test_roundtripping.TestRoundtripping) parse a situation in which a cell line looks like a row line ... ok -test_tables42_table_cell_attributes_quote_with_pipe (tests.test_pytokenizer.TestPyTokenizer) +test_tables42_table_cell_attributes_quote_with_pipe (tests.test_roundtripping.TestRoundtripping) pipe inside an attribute quote should still be used as a style separator ... ok -test_tables43_table_cell_attributes_name_with_pipe (tests.test_pytokenizer.TestPyTokenizer) +test_tables43_table_cell_attributes_name_with_pipe (tests.test_roundtripping.TestRoundtripping) pipe inside an attribute name should still be used as a style separator ... ok -test_tables44_table_cell_attributes_pipe_after_equals (tests.test_pytokenizer.TestPyTokenizer) +test_tables44_table_cell_attributes_pipe_after_equals (tests.test_roundtripping.TestRoundtripping) pipe inside an attribute should still be used as a style separator after an equals ... ok -test_tables45_table_cell_attributes_templates (tests.test_pytokenizer.TestPyTokenizer) +test_tables45_table_cell_attributes_templates (tests.test_roundtripping.TestRoundtripping) pipe inside attributes shouldn't be style separator ... ok -test_tables46_header_cell_attributes (tests.test_pytokenizer.TestPyTokenizer) +test_tables46_header_cell_attributes (tests.test_roundtripping.TestRoundtripping) parse header cell style attributes ... ok -test_tables47_inline_cell_attributes (tests.test_pytokenizer.TestPyTokenizer) +test_tables47_inline_cell_attributes (tests.test_roundtripping.TestRoundtripping) parse cell style attributes of inline cells ... ok -test_tables48_table_row_attributes (tests.test_pytokenizer.TestPyTokenizer) +test_tables48_table_row_attributes (tests.test_roundtripping.TestRoundtripping) parse table row style attributes ... ok -test_tables49_table_row_attributes_crazy_whitespace (tests.test_pytokenizer.TestPyTokenizer) +test_tables49_table_row_attributes_crazy_whitespace (tests.test_roundtripping.TestRoundtripping) parse table row style attributes with different whitespace ... ok -test_tables50_table_attributes (tests.test_pytokenizer.TestPyTokenizer) +test_tables50_table_attributes (tests.test_roundtripping.TestRoundtripping) parse table style attributes ... ok -test_tables51_inline_table_attributes (tests.test_pytokenizer.TestPyTokenizer) +test_tables51_inline_table_attributes (tests.test_roundtripping.TestRoundtripping) handle attributes in inline tables ... ok -test_tables52_table_incorrect_attributes (tests.test_pytokenizer.TestPyTokenizer) +test_tables52_table_incorrect_attributes (tests.test_roundtripping.TestRoundtripping) parse incorrect table style attributes ... ok -test_tables53_templates_in_table_attribute (tests.test_pytokenizer.TestPyTokenizer) +test_tables53_templates_in_table_attribute (tests.test_roundtripping.TestRoundtripping) templates in the attributes of a table, after the start ... ok -test_tables54_templates_in_table_attribute_2 (tests.test_pytokenizer.TestPyTokenizer) +test_tables54_templates_in_table_attribute_2 (tests.test_roundtripping.TestRoundtripping) templates in the attributes of a table, after the start ... ok -test_tables55_inappropriate_marker_at_line_start (tests.test_pytokenizer.TestPyTokenizer) +test_tables55_inappropriate_marker_at_line_start (tests.test_roundtripping.TestRoundtripping) an inappropriate marker (a right bracket) at the start of a line in the table ... ok -test_tables56_fake_close_near_start (tests.test_pytokenizer.TestPyTokenizer) +test_tables56_fake_close_near_start (tests.test_roundtripping.TestRoundtripping) a fake closing token at the end of the first line in the table ... ok -test_tables57_fake_close_near_start_2 (tests.test_pytokenizer.TestPyTokenizer) +test_tables57_fake_close_near_start_2 (tests.test_roundtripping.TestRoundtripping) a fake closing token at the end of the first line in the table ... ok -test_tables58_junk_after_table_start (tests.test_pytokenizer.TestPyTokenizer) +test_tables58_junk_after_table_start (tests.test_roundtripping.TestRoundtripping) ignore more junk on the first line of the table ... ok -test_tables59_junk_after_table_row (tests.test_pytokenizer.TestPyTokenizer) +test_tables59_junk_after_table_row (tests.test_roundtripping.TestRoundtripping) ignore junk on the first line of a table row ... ok -test_tags01_basic (tests.test_pytokenizer.TestPyTokenizer) +test_tags01_basic (tests.test_roundtripping.TestRoundtripping) a basic tag with an open and close ... ok -test_tags02_basic_selfclosing (tests.test_pytokenizer.TestPyTokenizer) +test_tags02_basic_selfclosing (tests.test_roundtripping.TestRoundtripping) a basic self-closing tag ... ok -test_tags03_content (tests.test_pytokenizer.TestPyTokenizer) +test_tags03_content (tests.test_roundtripping.TestRoundtripping) a tag with some content in the middle ... ok -test_tags04_padded_open (tests.test_pytokenizer.TestPyTokenizer) +test_tags04_padded_open (tests.test_roundtripping.TestRoundtripping) a tag with some padding in the open tag ... ok -test_tags05_padded_close (tests.test_pytokenizer.TestPyTokenizer) +test_tags05_padded_close (tests.test_roundtripping.TestRoundtripping) a tag with some padding in the close tag ... ok -test_tags06_padded_selfclosing (tests.test_pytokenizer.TestPyTokenizer) +test_tags06_padded_selfclosing (tests.test_roundtripping.TestRoundtripping) a self-closing tag with padding ... ok -test_tags07_attribute (tests.test_pytokenizer.TestPyTokenizer) +test_tags07_attribute (tests.test_roundtripping.TestRoundtripping) a tag with a single attribute ... ok -test_tags08_attribute_value (tests.test_pytokenizer.TestPyTokenizer) +test_tags08_attribute_value (tests.test_roundtripping.TestRoundtripping) a tag with a single attribute with a value ... ok -test_tags09_attribute_quoted (tests.test_pytokenizer.TestPyTokenizer) +test_tags09_attribute_quoted (tests.test_roundtripping.TestRoundtripping) a tag with a single quoted attribute ... ok -test_tags10_attribute_single_quoted (tests.test_pytokenizer.TestPyTokenizer) +test_tags10_attribute_single_quoted (tests.test_roundtripping.TestRoundtripping) a tag with a single singly-quoted attribute ... ok -test_tags11_attribute_hyphen (tests.test_pytokenizer.TestPyTokenizer) +test_tags11_attribute_hyphen (tests.test_roundtripping.TestRoundtripping) a tag with a single attribute, containing a hyphen ... ok -test_tags12_attribute_quoted_hyphen (tests.test_pytokenizer.TestPyTokenizer) +test_tags12_attribute_quoted_hyphen (tests.test_roundtripping.TestRoundtripping) a tag with a single quoted attribute, containing a hyphen ... ok -test_tags13_attribute_selfclosing (tests.test_pytokenizer.TestPyTokenizer) +test_tags13_attribute_selfclosing (tests.test_roundtripping.TestRoundtripping) a self-closing tag with a single attribute ... ok -test_tags14_attribute_selfclosing_value (tests.test_pytokenizer.TestPyTokenizer) +test_tags14_attribute_selfclosing_value (tests.test_roundtripping.TestRoundtripping) a self-closing tag with a single attribute with a value ... ok -test_tags15_attribute_selfclosing_value_quoted (tests.test_pytokenizer.TestPyTokenizer) +test_tags15_attribute_selfclosing_value_quoted (tests.test_roundtripping.TestRoundtripping) a self-closing tag with a single quoted attribute ... ok -test_tags16_nested_tag (tests.test_pytokenizer.TestPyTokenizer) +test_tags16_nested_tag (tests.test_roundtripping.TestRoundtripping) a tag nested within the attributes of another ... ok -test_tags17_nested_tag_quoted (tests.test_pytokenizer.TestPyTokenizer) +test_tags17_nested_tag_quoted (tests.test_roundtripping.TestRoundtripping) a tag nested within the attributes of another, quoted ... ok -test_tags18_nested_troll_tag (tests.test_pytokenizer.TestPyTokenizer) +test_tags18_nested_troll_tag (tests.test_roundtripping.TestRoundtripping) a bogus tag that appears to be nested within the attributes of another ... ok -test_tags19_nested_troll_tag_quoted (tests.test_pytokenizer.TestPyTokenizer) +test_tags19_nested_troll_tag_quoted (tests.test_roundtripping.TestRoundtripping) a bogus tag that appears to be nested within the attributes of another, quoted ... ok -test_tags20_nested_tag_selfclosing (tests.test_pytokenizer.TestPyTokenizer) +test_tags20_nested_tag_selfclosing (tests.test_roundtripping.TestRoundtripping) a tag nested within the attributes of another; outer tag implicitly self-closing ... ok -test_tags21_invalid_space_begin_open (tests.test_pytokenizer.TestPyTokenizer) +test_tags21_invalid_space_begin_open (tests.test_roundtripping.TestRoundtripping) invalid tag: a space at the beginning of the open tag ... ok -test_tags22_invalid_space_begin_close (tests.test_pytokenizer.TestPyTokenizer) +test_tags22_invalid_space_begin_close (tests.test_roundtripping.TestRoundtripping) invalid tag: a space at the beginning of the close tag ... ok -test_tags23_valid_space_end (tests.test_pytokenizer.TestPyTokenizer) +test_tags23_valid_space_end (tests.test_roundtripping.TestRoundtripping) valid tag: spaces at the ends of both the open and close tags ... ok -test_tags24_invalid_template_ends (tests.test_pytokenizer.TestPyTokenizer) +test_tags24_invalid_template_ends (tests.test_roundtripping.TestRoundtripping) invalid tag: a template at the ends of both the open and close tags ... ok -test_tags25_invalid_template_ends_nospace (tests.test_pytokenizer.TestPyTokenizer) +test_tags25_invalid_template_ends_nospace (tests.test_roundtripping.TestRoundtripping) invalid tag: a template at the ends of both the open and close tags, without spacing ... ok -test_tags26_valid_template_end_open (tests.test_pytokenizer.TestPyTokenizer) +test_tags26_valid_template_end_open (tests.test_roundtripping.TestRoundtripping) valid tag: a template at the end of the open tag ... ok -test_tags27_valid_template_end_open_space_end_close (tests.test_pytokenizer.TestPyTokenizer) +test_tags27_valid_template_end_open_space_end_close (tests.test_roundtripping.TestRoundtripping) valid tag: a template at the end of the open tag; whitespace at the end of the close tag ... ok -test_tags28_invalid_template_end_open_nospace (tests.test_pytokenizer.TestPyTokenizer) +test_tags28_invalid_template_end_open_nospace (tests.test_roundtripping.TestRoundtripping) invalid tag: a template at the end of the open tag, without spacing ... ok -test_tags29_invalid_template_start_close (tests.test_pytokenizer.TestPyTokenizer) +test_tags29_invalid_template_start_close (tests.test_roundtripping.TestRoundtripping) invalid tag: a template at the beginning of the close tag ... ok -test_tags30_invalid_template_start_open (tests.test_pytokenizer.TestPyTokenizer) +test_tags30_invalid_template_start_open (tests.test_roundtripping.TestRoundtripping) invalid tag: a template at the beginning of the open tag ... ok -test_tags31_unclosed_quote (tests.test_pytokenizer.TestPyTokenizer) +test_tags31_unclosed_quote (tests.test_roundtripping.TestRoundtripping) a quoted attribute that is never closed ... ok -test_tags32_fake_quote (tests.test_pytokenizer.TestPyTokenizer) +test_tags32_fake_quote (tests.test_roundtripping.TestRoundtripping) a fake quoted attribute ... ok -test_tags33_fake_quote_complex (tests.test_pytokenizer.TestPyTokenizer) +test_tags33_fake_quote_complex (tests.test_roundtripping.TestRoundtripping) a fake quoted attribute, with spaces and templates and links ... ok -test_tags34_quotes_in_quotes (tests.test_pytokenizer.TestPyTokenizer) +test_tags34_quotes_in_quotes (tests.test_roundtripping.TestRoundtripping) singly-quoted text inside a doubly-quoted attribute ... ok -test_tags35_quotes_in_quotes_2 (tests.test_pytokenizer.TestPyTokenizer) +test_tags35_quotes_in_quotes_2 (tests.test_roundtripping.TestRoundtripping) doubly-quoted text inside a singly-quoted attribute ... ok -test_tags36_quotes_in_quotes_3 (tests.test_pytokenizer.TestPyTokenizer) +test_tags36_quotes_in_quotes_3 (tests.test_roundtripping.TestRoundtripping) doubly-quoted text inside a singly-quoted attribute, with backslashes ... ok -test_tags37_incomplete_lbracket (tests.test_pytokenizer.TestPyTokenizer) +test_tags37_incomplete_lbracket (tests.test_roundtripping.TestRoundtripping) incomplete tags: just a left bracket ... ok -test_tags38_incomplete_lbracket_junk (tests.test_pytokenizer.TestPyTokenizer) +test_tags38_incomplete_lbracket_junk (tests.test_roundtripping.TestRoundtripping) incomplete tags: just a left bracket, surrounded by stuff ... ok -test_tags39_incomplete_unclosed_open (tests.test_pytokenizer.TestPyTokenizer) +test_tags39_incomplete_unclosed_open (tests.test_roundtripping.TestRoundtripping) incomplete tags: an unclosed open tag ... ok -test_tags40_incomplete_unclosed_open_space (tests.test_pytokenizer.TestPyTokenizer) +test_tags40_incomplete_unclosed_open_space (tests.test_roundtripping.TestRoundtripping) incomplete tags: an unclosed open tag, space ... ok -test_tags41_incomplete_unclosed_open_unnamed_attr (tests.test_pytokenizer.TestPyTokenizer) +test_tags41_incomplete_unclosed_open_unnamed_attr (tests.test_roundtripping.TestRoundtripping) incomplete tags: an unclosed open tag, unnamed attribute ... ok -test_tags42_incomplete_unclosed_open_attr_equals (tests.test_pytokenizer.TestPyTokenizer) +test_tags42_incomplete_unclosed_open_attr_equals (tests.test_roundtripping.TestRoundtripping) incomplete tags: an unclosed open tag, attribute, equal sign ... ok -test_tags43_incomplete_unclosed_open_attr_equals_quoted (tests.test_pytokenizer.TestPyTokenizer) +test_tags43_incomplete_unclosed_open_attr_equals_quoted (tests.test_roundtripping.TestRoundtripping) incomplete tags: an unclosed open tag, attribute, equal sign, quote ... ok -test_tags44_incomplete_unclosed_open_attr (tests.test_pytokenizer.TestPyTokenizer) +test_tags44_incomplete_unclosed_open_attr (tests.test_roundtripping.TestRoundtripping) incomplete tags: an unclosed open tag, attribute with a key/value ... ok -test_tags45_incomplete_unclosed_open_attr_quoted (tests.test_pytokenizer.TestPyTokenizer) +test_tags45_incomplete_unclosed_open_attr_quoted (tests.test_roundtripping.TestRoundtripping) incomplete tags: an unclosed open tag, attribute with a key/value, quoted ... ok -test_tags46_incomplete_open (tests.test_pytokenizer.TestPyTokenizer) +test_tags46_incomplete_open (tests.test_roundtripping.TestRoundtripping) incomplete tags: an open tag ... ok -test_tags47_incomplete_open_unnamed_attr (tests.test_pytokenizer.TestPyTokenizer) +test_tags47_incomplete_open_unnamed_attr (tests.test_roundtripping.TestRoundtripping) incomplete tags: an open tag, unnamed attribute ... ok -test_tags48_incomplete_open_attr_equals (tests.test_pytokenizer.TestPyTokenizer) +test_tags48_incomplete_open_attr_equals (tests.test_roundtripping.TestRoundtripping) incomplete tags: an open tag, attribute, equal sign ... ok -test_tags49_incomplete_open_attr (tests.test_pytokenizer.TestPyTokenizer) +test_tags49_incomplete_open_attr (tests.test_roundtripping.TestRoundtripping) incomplete tags: an open tag, attribute with a key/value ... ok -test_tags50_incomplete_open_attr_quoted (tests.test_pytokenizer.TestPyTokenizer) +test_tags50_incomplete_open_attr_quoted (tests.test_roundtripping.TestRoundtripping) incomplete tags: an open tag, attribute with a key/value, quoted ... ok -test_tags51_incomplete_open_text (tests.test_pytokenizer.TestPyTokenizer) +test_tags51_incomplete_open_text (tests.test_roundtripping.TestRoundtripping) incomplete tags: an open tag, text ... ok -test_tags52_incomplete_open_attr_text (tests.test_pytokenizer.TestPyTokenizer) +test_tags52_incomplete_open_attr_text (tests.test_roundtripping.TestRoundtripping) incomplete tags: an open tag, attribute with a key/value, text ... ok -test_tags53_incomplete_open_text_lbracket (tests.test_pytokenizer.TestPyTokenizer) +test_tags53_incomplete_open_text_lbracket (tests.test_roundtripping.TestRoundtripping) incomplete tags: an open tag, text, left open bracket ... ok -test_tags54_incomplete_open_text_lbracket_slash (tests.test_pytokenizer.TestPyTokenizer) +test_tags54_incomplete_open_text_lbracket_slash (tests.test_roundtripping.TestRoundtripping) incomplete tags: an open tag, text, left bracket, slash ... ok -test_tags55_incomplete_open_text_unclosed_close (tests.test_pytokenizer.TestPyTokenizer) +test_tags55_incomplete_open_text_unclosed_close (tests.test_roundtripping.TestRoundtripping) incomplete tags: an open tag, text, unclosed close ... ok -test_tags56_incomplete_open_text_wrong_close (tests.test_pytokenizer.TestPyTokenizer) +test_tags56_incomplete_open_text_wrong_close (tests.test_roundtripping.TestRoundtripping) incomplete tags: an open tag, text, wrong close ... ok -test_tags57_incomplete_unclosed_close (tests.test_pytokenizer.TestPyTokenizer) +test_tags57_incomplete_unclosed_close (tests.test_roundtripping.TestRoundtripping) incomplete tags: an unclosed close tag ... ok -test_tags58_incomplete_unclosed_close_text (tests.test_pytokenizer.TestPyTokenizer) +test_tags58_incomplete_unclosed_close_text (tests.test_roundtripping.TestRoundtripping) incomplete tags: an unclosed close tag, with text ... ok -test_tags59_incomplete_close (tests.test_pytokenizer.TestPyTokenizer) +test_tags59_incomplete_close (tests.test_roundtripping.TestRoundtripping) incomplete tags: a close tag ... ok -test_tags60_incomplete_no_tag_name_open (tests.test_pytokenizer.TestPyTokenizer) +test_tags60_incomplete_no_tag_name_open (tests.test_roundtripping.TestRoundtripping) incomplete tags: no tag name within brackets; just an open ... ok -test_tags61_incomplete_no_tag_name_selfclosing (tests.test_pytokenizer.TestPyTokenizer) +test_tags61_incomplete_no_tag_name_selfclosing (tests.test_roundtripping.TestRoundtripping) incomplete tags: no tag name within brackets; self-closing ... ok -test_tags62_incomplete_no_tag_name_open_close (tests.test_pytokenizer.TestPyTokenizer) +test_tags62_incomplete_no_tag_name_open_close (tests.test_roundtripping.TestRoundtripping) incomplete tags: no tag name within brackets; open and close ... ok -test_tags63_backslash_premature_before (tests.test_pytokenizer.TestPyTokenizer) +test_tags63_backslash_premature_before (tests.test_roundtripping.TestRoundtripping) a backslash before a quote before a space ... ok -test_tags64_backslash_premature_after (tests.test_pytokenizer.TestPyTokenizer) +test_tags64_backslash_premature_after (tests.test_roundtripping.TestRoundtripping) a backslash before a quote after a space ... ok -test_tags65_backslash_premature_middle (tests.test_pytokenizer.TestPyTokenizer) +test_tags65_backslash_premature_middle (tests.test_roundtripping.TestRoundtripping) a backslash before a quote in the middle of a word ... ok -test_tags66_backslash_adjacent (tests.test_pytokenizer.TestPyTokenizer) +test_tags66_backslash_adjacent (tests.test_roundtripping.TestRoundtripping) escaped quotes next to unescaped quotes ... ok -test_tags67_backslash_endquote (tests.test_pytokenizer.TestPyTokenizer) +test_tags67_backslash_endquote (tests.test_roundtripping.TestRoundtripping) backslashes before the end quote, causing the attribute to become unquoted ... ok -test_tags68_backslash_double (tests.test_pytokenizer.TestPyTokenizer) +test_tags68_backslash_double (tests.test_roundtripping.TestRoundtripping) two adjacent backslashes, which do *not* affect the quote ... ok -test_tags69_backslash_triple (tests.test_pytokenizer.TestPyTokenizer) +test_tags69_backslash_triple (tests.test_roundtripping.TestRoundtripping) three adjacent backslashes, which do *not* affect the quote ... ok -test_tags70_backslash_unaffecting (tests.test_pytokenizer.TestPyTokenizer) +test_tags70_backslash_unaffecting (tests.test_roundtripping.TestRoundtripping) backslashes near quotes, but not immediately adjacent, thus having no effect ... ok -test_tags71_unparsable (tests.test_pytokenizer.TestPyTokenizer) +test_tags71_unparsable (tests.test_roundtripping.TestRoundtripping) a tag that should not be put through the normal parser ... ok -test_tags72_unparsable_complex (tests.test_pytokenizer.TestPyTokenizer) +test_tags72_unparsable_complex (tests.test_roundtripping.TestRoundtripping) a tag that should not be put through the normal parser; lots of stuff inside ... ok -test_tags73_unparsable_attributed (tests.test_pytokenizer.TestPyTokenizer) +test_tags73_unparsable_attributed (tests.test_roundtripping.TestRoundtripping) a tag that should not be put through the normal parser; parsed attributes ... ok -test_tags74_unparsable_incomplete (tests.test_pytokenizer.TestPyTokenizer) +test_tags74_unparsable_incomplete (tests.test_roundtripping.TestRoundtripping) a tag that should not be put through the normal parser; incomplete ... ok -test_tags75_unparsable_entity (tests.test_pytokenizer.TestPyTokenizer) +test_tags75_unparsable_entity (tests.test_roundtripping.TestRoundtripping) a HTML entity inside unparsable text is still parsed ... ok -test_tags76_unparsable_entity_incomplete (tests.test_pytokenizer.TestPyTokenizer) +test_tags76_unparsable_entity_incomplete (tests.test_roundtripping.TestRoundtripping) an incomplete HTML entity inside unparsable text ... ok -test_tags77_unparsable_entity_incomplete_2 (tests.test_pytokenizer.TestPyTokenizer) +test_tags77_unparsable_entity_incomplete_2 (tests.test_roundtripping.TestRoundtripping) an incomplete HTML entity inside unparsable text ... ok -test_tags78_single_open_close (tests.test_pytokenizer.TestPyTokenizer) +test_tags78_single_open_close (tests.test_roundtripping.TestRoundtripping) a tag that supports being single; both an open and a close tag ... ok -test_tags79_single_open (tests.test_pytokenizer.TestPyTokenizer) +test_tags79_single_open (tests.test_roundtripping.TestRoundtripping) a tag that supports being single; just an open tag ... ok -test_tags80_single_selfclose (tests.test_pytokenizer.TestPyTokenizer) +test_tags80_single_selfclose (tests.test_roundtripping.TestRoundtripping) a tag that supports being single; a self-closing tag ... ok -test_tags81_single_close (tests.test_pytokenizer.TestPyTokenizer) +test_tags81_single_close (tests.test_roundtripping.TestRoundtripping) a tag that supports being single; just a close tag ... ok -test_tags82_single_only_open_close (tests.test_pytokenizer.TestPyTokenizer) +test_tags82_single_only_open_close (tests.test_roundtripping.TestRoundtripping) a tag that can only be single; both an open and a close tag ... ok -test_tags83_single_only_open (tests.test_pytokenizer.TestPyTokenizer) +test_tags83_single_only_open (tests.test_roundtripping.TestRoundtripping) a tag that can only be single; just an open tag ... ok -test_tags84_single_only_selfclose (tests.test_pytokenizer.TestPyTokenizer) +test_tags84_single_only_selfclose (tests.test_roundtripping.TestRoundtripping) a tag that can only be single; a self-closing tag ... ok -test_tags85_single_only_close (tests.test_pytokenizer.TestPyTokenizer) +test_tags85_single_only_close (tests.test_roundtripping.TestRoundtripping) a tag that can only be single; just a close tag ... ok -test_tags86_single_only_double (tests.test_pytokenizer.TestPyTokenizer) +test_tags86_single_only_double (tests.test_roundtripping.TestRoundtripping) a tag that can only be single; a tag with backslashes at the beginning and end ... ok -test_tags87_single_only_close_attribute (tests.test_pytokenizer.TestPyTokenizer) +test_tags87_single_only_close_attribute (tests.test_roundtripping.TestRoundtripping) a tag that can only be single; presented as a close tag with an attribute ... ok -test_tags88_capitalization (tests.test_pytokenizer.TestPyTokenizer) +test_tags88_capitalization (tests.test_roundtripping.TestRoundtripping) caps should be ignored within tag names ... ok -test_tags89_unparsable_incomplete_close (tests.test_pytokenizer.TestPyTokenizer) +test_tags89_unparsable_incomplete_close (tests.test_roundtripping.TestRoundtripping) an unparsable tag with an incomplete close afterwards ... ok -test_tags90_unparsable_with_intermediates (tests.test_pytokenizer.TestPyTokenizer) +test_tags90_unparsable_with_intermediates (tests.test_roundtripping.TestRoundtripping) an unparsable tag with intermediate tags inside of it ... ok -test_tags91_unparsable_with_intermediates_normalize (tests.test_pytokenizer.TestPyTokenizer) +test_tags91_unparsable_with_intermediates_normalize (tests.test_roundtripping.TestRoundtripping) an unparsable tag with intermediate tags inside of it, requiring normalization ... ok -test_tags92_non_ascii_open (tests.test_pytokenizer.TestPyTokenizer) +test_tags92_non_ascii_open (tests.test_roundtripping.TestRoundtripping) a open tag containing non-ASCII characters ... ok -test_tags93_non_ascii_full (tests.test_pytokenizer.TestPyTokenizer) +test_tags93_non_ascii_full (tests.test_roundtripping.TestRoundtripping) an open/close tag pair containing non-ASCII characters ... ok -test_tags94_single_nested_selfclosing (tests.test_pytokenizer.TestPyTokenizer) +test_tags94_single_nested_selfclosing (tests.test_roundtripping.TestRoundtripping) a single (unpaired) tag with a self-closing tag in the middle (see issue #147) ... ok -test_tags_wikimarkup01_basic_italics (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup01_basic_italics (tests.test_roundtripping.TestRoundtripping) basic italic text ... ok -test_tags_wikimarkup02_basic_bold (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup02_basic_bold (tests.test_roundtripping.TestRoundtripping) basic bold text ... ok -test_tags_wikimarkup03_basic_ul (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup03_basic_ul (tests.test_roundtripping.TestRoundtripping) basic unordered list ... ok -test_tags_wikimarkup04_basic_ol (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup04_basic_ol (tests.test_roundtripping.TestRoundtripping) basic ordered list ... ok -test_tags_wikimarkup05_basic_dt (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup05_basic_dt (tests.test_roundtripping.TestRoundtripping) basic description term ... ok -test_tags_wikimarkup06_basic_dd (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup06_basic_dd (tests.test_roundtripping.TestRoundtripping) basic description item ... ok -test_tags_wikimarkup07_basic_hr (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup07_basic_hr (tests.test_roundtripping.TestRoundtripping) basic horizontal rule ... ok -test_tags_wikimarkup08_complex_italics (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup08_complex_italics (tests.test_roundtripping.TestRoundtripping) italics with a lot in them ... ok -test_tags_wikimarkup09_multiline_italics (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup09_multiline_italics (tests.test_roundtripping.TestRoundtripping) italics spanning mulitple lines ... ok -test_tags_wikimarkup10_unending_italics (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup10_unending_italics (tests.test_roundtripping.TestRoundtripping) italics without an ending tag ... ok -test_tags_wikimarkup11_misleading_italics_end (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup11_misleading_italics_end (tests.test_roundtripping.TestRoundtripping) italics with something that looks like an end but isn't ... ok -test_tags_wikimarkup12_italics_start_outside_end_inside (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup12_italics_start_outside_end_inside (tests.test_roundtripping.TestRoundtripping) italics that start outside a link and end inside it ... ok -test_tags_wikimarkup13_italics_start_inside_end_outside (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup13_italics_start_inside_end_outside (tests.test_roundtripping.TestRoundtripping) italics that start inside a link and end outside it ... ok -test_tags_wikimarkup14_complex_bold (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup14_complex_bold (tests.test_roundtripping.TestRoundtripping) bold with a lot in it ... ok -test_tags_wikimarkup15_multiline_bold (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup15_multiline_bold (tests.test_roundtripping.TestRoundtripping) bold spanning mulitple lines ... ok -test_tags_wikimarkup16_unending_bold (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup16_unending_bold (tests.test_roundtripping.TestRoundtripping) bold without an ending tag ... ok -test_tags_wikimarkup17_misleading_bold_end (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup17_misleading_bold_end (tests.test_roundtripping.TestRoundtripping) bold with something that looks like an end but isn't ... ok -test_tags_wikimarkup18_bold_start_outside_end_inside (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup18_bold_start_outside_end_inside (tests.test_roundtripping.TestRoundtripping) bold that start outside a link and end inside it ... ok -test_tags_wikimarkup19_bold_start_inside_end_outside (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup19_bold_start_inside_end_outside (tests.test_roundtripping.TestRoundtripping) bold that start inside a link and end outside it ... ok -test_tags_wikimarkup20_bold_and_italics (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup20_bold_and_italics (tests.test_roundtripping.TestRoundtripping) bold and italics together ... ok -test_tags_wikimarkup21_both_then_bold (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup21_both_then_bold (tests.test_roundtripping.TestRoundtripping) text that starts bold/italic, then is just bold ... ok -test_tags_wikimarkup22_both_then_italics (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup22_both_then_italics (tests.test_roundtripping.TestRoundtripping) text that starts bold/italic, then is just italic ... ok -test_tags_wikimarkup23_bold_then_both (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup23_bold_then_both (tests.test_roundtripping.TestRoundtripping) text that starts just bold, then is bold/italic ... ok -test_tags_wikimarkup24_italics_then_both (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup24_italics_then_both (tests.test_roundtripping.TestRoundtripping) text that starts just italic, then is bold/italic ... ok -test_tags_wikimarkup25_italics_then_bold (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup25_italics_then_bold (tests.test_roundtripping.TestRoundtripping) text that starts italic, then is bold ... ok -test_tags_wikimarkup26_bold_then_italics (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup26_bold_then_italics (tests.test_roundtripping.TestRoundtripping) text that starts bold, then is italic ... ok -test_tags_wikimarkup27_five_three (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup27_five_three (tests.test_roundtripping.TestRoundtripping) five ticks to open, three to close (bold) ... ok -test_tags_wikimarkup28_five_two (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup28_five_two (tests.test_roundtripping.TestRoundtripping) five ticks to open, two to close (bold) ... ok -test_tags_wikimarkup29_four (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup29_four (tests.test_roundtripping.TestRoundtripping) four ticks ... ok -test_tags_wikimarkup30_four_two (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup30_four_two (tests.test_roundtripping.TestRoundtripping) four ticks to open, two to close ... ok -test_tags_wikimarkup31_two_three (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup31_two_three (tests.test_roundtripping.TestRoundtripping) two ticks to open, three to close ... ok -test_tags_wikimarkup32_two_four (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup32_two_four (tests.test_roundtripping.TestRoundtripping) two ticks to open, four to close ... ok -test_tags_wikimarkup33_two_three_two (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup33_two_three_two (tests.test_roundtripping.TestRoundtripping) two ticks to open, three to close, two afterwards ... ok -test_tags_wikimarkup34_two_four_four (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup34_two_four_four (tests.test_roundtripping.TestRoundtripping) two ticks to open, four to close, four afterwards ... ok -test_tags_wikimarkup35_seven (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup35_seven (tests.test_roundtripping.TestRoundtripping) seven ticks ... ok -test_tags_wikimarkup36_unending_bold_and_italics (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup36_unending_bold_and_italics (tests.test_roundtripping.TestRoundtripping) five ticks (bold and italics) that don't end ... ok -test_tags_wikimarkup37_complex_ul (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup37_complex_ul (tests.test_roundtripping.TestRoundtripping) ul with a lot in it ... ok -test_tags_wikimarkup38_ul_multiline_template (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup38_ul_multiline_template (tests.test_roundtripping.TestRoundtripping) ul with a template that spans multiple lines ... ok -test_tags_wikimarkup39_ul_adjacent (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup39_ul_adjacent (tests.test_roundtripping.TestRoundtripping) multiple adjacent uls ... ok -test_tags_wikimarkup40_ul_depths (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup40_ul_depths (tests.test_roundtripping.TestRoundtripping) multiple adjacent uls, with differing depths ... ok -test_tags_wikimarkup41_ul_space_before (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup41_ul_space_before (tests.test_roundtripping.TestRoundtripping) uls with space before them ... ok -test_tags_wikimarkup42_ul_interruption (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup42_ul_interruption (tests.test_roundtripping.TestRoundtripping) high-depth ul with something blocking it ... ok -test_tags_wikimarkup43_complex_ol (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup43_complex_ol (tests.test_roundtripping.TestRoundtripping) ol with a lot in it ... ok -test_tags_wikimarkup44_ol_multiline_template (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup44_ol_multiline_template (tests.test_roundtripping.TestRoundtripping) ol with a template that spans moltiple lines ... ok -test_tags_wikimarkup45_ol_adjacent (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup45_ol_adjacent (tests.test_roundtripping.TestRoundtripping) moltiple adjacent ols ... ok -test_tags_wikimarkup46_ol_depths (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup46_ol_depths (tests.test_roundtripping.TestRoundtripping) moltiple adjacent ols, with differing depths ... ok -test_tags_wikimarkup47_ol_space_before (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup47_ol_space_before (tests.test_roundtripping.TestRoundtripping) ols with space before them ... ok -test_tags_wikimarkup48_ol_interruption (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup48_ol_interruption (tests.test_roundtripping.TestRoundtripping) high-depth ol with something blocking it ... ok -test_tags_wikimarkup49_ul_ol_mix (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup49_ul_ol_mix (tests.test_roundtripping.TestRoundtripping) a mix of adjacent uls and ols ... ok -test_tags_wikimarkup50_complex_dt (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup50_complex_dt (tests.test_roundtripping.TestRoundtripping) dt with a lot in it ... ok -test_tags_wikimarkup51_dt_multiline_template (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup51_dt_multiline_template (tests.test_roundtripping.TestRoundtripping) dt with a template that spans mdttiple lines ... ok -test_tags_wikimarkup52_dt_adjacent (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup52_dt_adjacent (tests.test_roundtripping.TestRoundtripping) mdttiple adjacent dts ... ok -test_tags_wikimarkup53_dt_depths (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup53_dt_depths (tests.test_roundtripping.TestRoundtripping) mdttiple adjacent dts, with differing depths ... ok -test_tags_wikimarkup54_dt_space_before (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup54_dt_space_before (tests.test_roundtripping.TestRoundtripping) dts with space before them ... ok -test_tags_wikimarkup55_dt_interruption (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup55_dt_interruption (tests.test_roundtripping.TestRoundtripping) high-depth dt with something blocking it ... ok -test_tags_wikimarkup56_complex_dd (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup56_complex_dd (tests.test_roundtripping.TestRoundtripping) dd with a lot in it ... ok -test_tags_wikimarkup57_dd_multiline_template (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup57_dd_multiline_template (tests.test_roundtripping.TestRoundtripping) dd with a template that spans mddtiple lines ... ok -test_tags_wikimarkup58_dd_adjacent (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup58_dd_adjacent (tests.test_roundtripping.TestRoundtripping) mddtiple adjacent dds ... ok -test_tags_wikimarkup59_dd_depths (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup59_dd_depths (tests.test_roundtripping.TestRoundtripping) mddtiple adjacent dds, with differing depths ... ok -test_tags_wikimarkup60_dd_space_before (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup60_dd_space_before (tests.test_roundtripping.TestRoundtripping) dds with space before them ... ok -test_tags_wikimarkup61_dd_interruption (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup61_dd_interruption (tests.test_roundtripping.TestRoundtripping) high-depth dd with something blocking it ... ok -test_tags_wikimarkup62_dt_dd_mix (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup62_dt_dd_mix (tests.test_roundtripping.TestRoundtripping) a mix of adjacent dts and dds ... ok -test_tags_wikimarkup63_dt_dd_mix2 (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup63_dt_dd_mix2 (tests.test_roundtripping.TestRoundtripping) the correct usage of a dt/dd unit, as in a dl ... ok -test_tags_wikimarkup64_dt_dd_mix3 (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup64_dt_dd_mix3 (tests.test_roundtripping.TestRoundtripping) another example of correct (but strange) dt/dd usage ... ok -test_tags_wikimarkup65_dt_dd_mix4 (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup65_dt_dd_mix4 (tests.test_roundtripping.TestRoundtripping) another example of correct dt/dd usage, with a trigger for a specific parse route ... ok -test_tags_wikimarkup66_ul_ol_dt_dd_mix (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup66_ul_ol_dt_dd_mix (tests.test_roundtripping.TestRoundtripping) an assortment of uls, ols, dds, and dts ... ok -test_tags_wikimarkup67_hr_text_before (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup67_hr_text_before (tests.test_roundtripping.TestRoundtripping) text before an otherwise-valid hr ... ok -test_tags_wikimarkup68_hr_text_after (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup68_hr_text_after (tests.test_roundtripping.TestRoundtripping) text after a valid hr ... ok -test_tags_wikimarkup69_hr_text_before_after (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup69_hr_text_before_after (tests.test_roundtripping.TestRoundtripping) text at both ends of an otherwise-valid hr ... ok -test_tags_wikimarkup70_hr_newlines (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup70_hr_newlines (tests.test_roundtripping.TestRoundtripping) newlines surrounding a valid hr ... ok -test_tags_wikimarkup71_hr_adjacent (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup71_hr_adjacent (tests.test_roundtripping.TestRoundtripping) two adjacent hrs ... ok -test_tags_wikimarkup72_hr_adjacent_space (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup72_hr_adjacent_space (tests.test_roundtripping.TestRoundtripping) two adjacent hrs, with a space before the second one, making it invalid ... ok -test_tags_wikimarkup73_hr_short (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup73_hr_short (tests.test_roundtripping.TestRoundtripping) an invalid three-hyphen-long hr ... ok -test_tags_wikimarkup74_hr_long (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup74_hr_long (tests.test_roundtripping.TestRoundtripping) a very long, valid hr ... ok -test_tags_wikimarkup75_hr_interruption_short (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup75_hr_interruption_short (tests.test_roundtripping.TestRoundtripping) a hr that is interrupted, making it invalid ... ok -test_tags_wikimarkup76_hr_interruption_long (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup76_hr_interruption_long (tests.test_roundtripping.TestRoundtripping) a hr that is interrupted, but the first part remains valid because it is long enough ... ok -test_tags_wikimarkup77_nowiki_cancel (tests.test_pytokenizer.TestPyTokenizer) +test_tags_wikimarkup77_nowiki_cancel (tests.test_roundtripping.TestRoundtripping) a nowiki tag before a list causes it to not be parsed ... ok -test_templates001_no_params (tests.test_pytokenizer.TestPyTokenizer) +test_templates001_no_params (tests.test_roundtripping.TestRoundtripping) simplest type of template ... ok -test_templates002_one_param_unnamed (tests.test_pytokenizer.TestPyTokenizer) +test_templates002_one_param_unnamed (tests.test_roundtripping.TestRoundtripping) basic template with one unnamed parameter ... ok -test_templates003_one_param_named (tests.test_pytokenizer.TestPyTokenizer) +test_templates003_one_param_named (tests.test_roundtripping.TestRoundtripping) basic template with one named parameter ... ok -test_templates004_multiple_unnamed_params (tests.test_pytokenizer.TestPyTokenizer) +test_templates004_multiple_unnamed_params (tests.test_roundtripping.TestRoundtripping) basic template with multiple unnamed parameters ... ok -test_templates005_multiple_named_params (tests.test_pytokenizer.TestPyTokenizer) +test_templates005_multiple_named_params (tests.test_roundtripping.TestRoundtripping) basic template with multiple named parameters ... ok -test_templates006_multiple_mixed_params (tests.test_pytokenizer.TestPyTokenizer) +test_templates006_multiple_mixed_params (tests.test_roundtripping.TestRoundtripping) basic template with multiple unnamed/named parameters ... ok -test_templates007_multiple_mixed_params2 (tests.test_pytokenizer.TestPyTokenizer) +test_templates007_multiple_mixed_params2 (tests.test_roundtripping.TestRoundtripping) basic template with multiple unnamed/named parameters in another order ... ok -test_templates008_blank_params (tests.test_pytokenizer.TestPyTokenizer) +test_templates008_blank_params (tests.test_roundtripping.TestRoundtripping) template with blank parameters (mix of pipes and equal signs) ... ok -test_templates009_nested_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) +test_templates009_nested_unnamed_param (tests.test_roundtripping.TestRoundtripping) nested template as an unnamed parameter ... ok -test_templates010_nested_named_param_value (tests.test_pytokenizer.TestPyTokenizer) +test_templates010_nested_named_param_value (tests.test_roundtripping.TestRoundtripping) nested template as a parameter value with a named parameter ... ok -test_templates011_nested_named_param_name_and_value (tests.test_pytokenizer.TestPyTokenizer) +test_templates011_nested_named_param_name_and_value (tests.test_roundtripping.TestRoundtripping) nested templates as a parameter name and value ... ok -test_templates012_nested_name_start (tests.test_pytokenizer.TestPyTokenizer) +test_templates012_nested_name_start (tests.test_roundtripping.TestRoundtripping) nested template at the beginning of a template name ... ok -test_templates013_nested_name_start_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) +test_templates013_nested_name_start_unnamed_param (tests.test_roundtripping.TestRoundtripping) nested template at the beginning of a template name and as an unnamed parameter ... ok -test_templates014_nested_name_start_named_param_value (tests.test_pytokenizer.TestPyTokenizer) +test_templates014_nested_name_start_named_param_value (tests.test_roundtripping.TestRoundtripping) nested template at the beginning of a template name and as a parameter value with a named parameter ... ok -test_templates015_nested_name_start_named_param_name_and_value (tests.test_pytokenizer.TestPyTokenizer) +test_templates015_nested_name_start_named_param_name_and_value (tests.test_roundtripping.TestRoundtripping) nested template at the beginning of a template name and as a parameter name and value ... ok -test_templates016_nested_name_end (tests.test_pytokenizer.TestPyTokenizer) +test_templates016_nested_name_end (tests.test_roundtripping.TestRoundtripping) nested template at the end of a template name ... ok -test_templates017_nested_name_end_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) +test_templates017_nested_name_end_unnamed_param (tests.test_roundtripping.TestRoundtripping) nested template at the end of a template name and as an unnamed parameter ... ok -test_templates018_nested_name_end_named_param_value (tests.test_pytokenizer.TestPyTokenizer) +test_templates018_nested_name_end_named_param_value (tests.test_roundtripping.TestRoundtripping) nested template at the end of a template name and as a parameter value with a named parameter ... ok -test_templates019_nested_name_end_named_param_name_and_value (tests.test_pytokenizer.TestPyTokenizer) +test_templates019_nested_name_end_named_param_name_and_value (tests.test_roundtripping.TestRoundtripping) nested template at the end of a template name and as a parameter name and value ... ok -test_templates020_nested_name_mid (tests.test_pytokenizer.TestPyTokenizer) +test_templates020_nested_name_mid (tests.test_roundtripping.TestRoundtripping) nested template in the middle of a template name ... ok -test_templates021_nested_name_mid_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) +test_templates021_nested_name_mid_unnamed_param (tests.test_roundtripping.TestRoundtripping) nested template in the middle of a template name and as an unnamed parameter ... ok -test_templates022_nested_name_mid_named_param_value (tests.test_pytokenizer.TestPyTokenizer) +test_templates022_nested_name_mid_named_param_value (tests.test_roundtripping.TestRoundtripping) nested template in the middle of a template name and as a parameter value with a named parameter ... ok -test_templates023_nested_name_mid_named_param_name_and_value (tests.test_pytokenizer.TestPyTokenizer) +test_templates023_nested_name_mid_named_param_name_and_value (tests.test_roundtripping.TestRoundtripping) nested template in the middle of a template name and as a parameter name and value ... ok -test_templates024_nested_name_start_end (tests.test_pytokenizer.TestPyTokenizer) +test_templates024_nested_name_start_end (tests.test_roundtripping.TestRoundtripping) nested template at the beginning and end of a template name ... ok -test_templates025_nested_name_start_end_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) +test_templates025_nested_name_start_end_unnamed_param (tests.test_roundtripping.TestRoundtripping) nested template at the beginning and end of a template name and as an unnamed parameter ... ok -test_templates026_nested_name_start_end_named_param_value (tests.test_pytokenizer.TestPyTokenizer) +test_templates026_nested_name_start_end_named_param_value (tests.test_roundtripping.TestRoundtripping) nested template at the beginning and end of a template name and as a parameter value with a named parameter ... ok -test_templates027_nested_name_start_end_named_param_name_and_value (tests.test_pytokenizer.TestPyTokenizer) +test_templates027_nested_name_start_end_named_param_name_and_value (tests.test_roundtripping.TestRoundtripping) nested template at the beginning and end of a template name and as a parameter name and value ... ok -test_templates028_nested_names_multiple (tests.test_pytokenizer.TestPyTokenizer) +test_templates028_nested_names_multiple (tests.test_roundtripping.TestRoundtripping) multiple nested templates within nested templates ... ok -test_templates029_nested_names_multiple_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) +test_templates029_nested_names_multiple_unnamed_param (tests.test_roundtripping.TestRoundtripping) multiple nested templates within nested templates with a nested unnamed parameter ... ok -test_templates030_nested_names_multiple_named_param_value (tests.test_pytokenizer.TestPyTokenizer) +test_templates030_nested_names_multiple_named_param_value (tests.test_roundtripping.TestRoundtripping) multiple nested templates within nested templates with a nested parameter value in a named parameter ... ok -test_templates031_nested_names_multiple_named_param_name_and_value (tests.test_pytokenizer.TestPyTokenizer) +test_templates031_nested_names_multiple_named_param_name_and_value (tests.test_roundtripping.TestRoundtripping) multiple nested templates within nested templates with a nested parameter name and value ... ok -test_templates032_mixed_nested_templates (tests.test_pytokenizer.TestPyTokenizer) +test_templates032_mixed_nested_templates (tests.test_roundtripping.TestRoundtripping) mixed assortment of nested templates within template names, parameter names, and values ... ok -test_templates033_nested_two_args (tests.test_pytokenizer.TestPyTokenizer) +test_templates033_nested_two_args (tests.test_roundtripping.TestRoundtripping) template whose first parameter is unnamed with two templates, followed by a named parameter ... ok -test_templates034_newlines_start (tests.test_pytokenizer.TestPyTokenizer) +test_templates034_newlines_start (tests.test_roundtripping.TestRoundtripping) a newline at the start of a template name ... ok -test_templates035_newlines_end (tests.test_pytokenizer.TestPyTokenizer) +test_templates035_newlines_end (tests.test_roundtripping.TestRoundtripping) a newline at the end of a template name ... ok -test_templates036_newlines_start_end (tests.test_pytokenizer.TestPyTokenizer) +test_templates036_newlines_start_end (tests.test_roundtripping.TestRoundtripping) a newline at the start and end of a template name ... ok -test_templates037_newlines_mid (tests.test_pytokenizer.TestPyTokenizer) +test_templates037_newlines_mid (tests.test_roundtripping.TestRoundtripping) a newline at the middle of a template name ... ok -test_templates038_newlines_start_mid (tests.test_pytokenizer.TestPyTokenizer) +test_templates038_newlines_start_mid (tests.test_roundtripping.TestRoundtripping) a newline at the start and middle of a template name ... ok -test_templates039_newlines_mid_end (tests.test_pytokenizer.TestPyTokenizer) +test_templates039_newlines_mid_end (tests.test_roundtripping.TestRoundtripping) a newline at the middle and end of a template name ... ok -test_templates040_newlines_start_mid_end (tests.test_pytokenizer.TestPyTokenizer) +test_templates040_newlines_start_mid_end (tests.test_roundtripping.TestRoundtripping) a newline at the start, middle, and end of a template name ... ok -test_templates041_newlines_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) +test_templates041_newlines_unnamed_param (tests.test_roundtripping.TestRoundtripping) newlines within an unnamed template parameter ... ok -test_templates042_newlines_enclose_template_name_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) +test_templates042_newlines_enclose_template_name_unnamed_param (tests.test_roundtripping.TestRoundtripping) newlines enclosing a template name and within an unnamed template parameter ... ok -test_templates043_newlines_within_template_name_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) +test_templates043_newlines_within_template_name_unnamed_param (tests.test_roundtripping.TestRoundtripping) newlines within a template name and within an unnamed template parameter ... ok -test_templates044_newlines_enclose_template_name_named_param_value (tests.test_pytokenizer.TestPyTokenizer) +test_templates044_newlines_enclose_template_name_named_param_value (tests.test_roundtripping.TestRoundtripping) newlines enclosing a template name and within a named parameter value ... ok -test_templates045_newlines_within_template_name_named_param_value (tests.test_pytokenizer.TestPyTokenizer) +test_templates045_newlines_within_template_name_named_param_value (tests.test_roundtripping.TestRoundtripping) newlines within a template name and within a named parameter value ... ok -test_templates046_newlines_named_param_name (tests.test_pytokenizer.TestPyTokenizer) +test_templates046_newlines_named_param_name (tests.test_roundtripping.TestRoundtripping) newlines within a parameter name ... ok -test_templates047_newlines_named_param_name_param_value (tests.test_pytokenizer.TestPyTokenizer) +test_templates047_newlines_named_param_name_param_value (tests.test_roundtripping.TestRoundtripping) newlines within a parameter name and within a parameter value ... ok -test_templates048_newlines_enclose_template_name_named_param_name (tests.test_pytokenizer.TestPyTokenizer) +test_templates048_newlines_enclose_template_name_named_param_name (tests.test_roundtripping.TestRoundtripping) newlines enclosing a template name and within a parameter name ... ok -test_templates049_newlines_enclose_template_name_named_param_name_param_value (tests.test_pytokenizer.TestPyTokenizer) +test_templates049_newlines_enclose_template_name_named_param_name_param_value (tests.test_roundtripping.TestRoundtripping) newlines enclosing a template name and within a parameter name and within a parameter value ... ok -test_templates050_newlines_within_template_name_named_param_name (tests.test_pytokenizer.TestPyTokenizer) +test_templates050_newlines_within_template_name_named_param_name (tests.test_roundtripping.TestRoundtripping) newlines within a template name and within a parameter name ... ok -test_templates051_newlines_within_template_name_named_param_name_param_value (tests.test_pytokenizer.TestPyTokenizer) +test_templates051_newlines_within_template_name_named_param_name_param_value (tests.test_roundtripping.TestRoundtripping) newlines within a template name and within a parameter name and within a parameter value ... ok -test_templates052_newlines_wildcard (tests.test_pytokenizer.TestPyTokenizer) +test_templates052_newlines_wildcard (tests.test_roundtripping.TestRoundtripping) a random, complex assortment of templates and newlines ... ok -test_templates053_newlines_wildcard_redux (tests.test_pytokenizer.TestPyTokenizer) +test_templates053_newlines_wildcard_redux (tests.test_roundtripping.TestRoundtripping) an even more random and complex assortment of templates and newlines ... ok -test_templates054_newlines_wildcard_redux_invalid (tests.test_pytokenizer.TestPyTokenizer) +test_templates054_newlines_wildcard_redux_invalid (tests.test_roundtripping.TestRoundtripping) a variation of the newlines_wildcard_redux test that is invalid ... ok -test_templates055_newlines_spaces (tests.test_pytokenizer.TestPyTokenizer) +test_templates055_newlines_spaces (tests.test_roundtripping.TestRoundtripping) newlines in the middle of a template name, followed by spaces ... ok -test_templates056_newlines_spaces_param (tests.test_pytokenizer.TestPyTokenizer) +test_templates056_newlines_spaces_param (tests.test_roundtripping.TestRoundtripping) newlines in the middle of a template name, followed by spaces, with a parameter ... ok -test_templates057_invalid_blank (tests.test_pytokenizer.TestPyTokenizer) +test_templates057_invalid_blank (tests.test_roundtripping.TestRoundtripping) invalid template with no content ... ok -test_templates058_invalid_blank_whitespace (tests.test_pytokenizer.TestPyTokenizer) +test_templates058_invalid_blank_whitespace (tests.test_roundtripping.TestRoundtripping) invalid template with no content, but whitespace ... ok -test_templates059_invalid_blank_pipe (tests.test_pytokenizer.TestPyTokenizer) +test_templates059_invalid_blank_pipe (tests.test_roundtripping.TestRoundtripping) invalid template with no content, but a parameter ... ok -test_templates060_invalid_blank_whitespace_pipe (tests.test_pytokenizer.TestPyTokenizer) +test_templates060_invalid_blank_whitespace_pipe (tests.test_roundtripping.TestRoundtripping) invalid template with no content, but whitespace and a parameter ... ok -test_templates061_invalid_name_left_brace_middle (tests.test_pytokenizer.TestPyTokenizer) +test_templates061_invalid_name_left_brace_middle (tests.test_roundtripping.TestRoundtripping) invalid characters in template name: left brace in middle ... ok -test_templates062_invalid_name_right_brace_middle (tests.test_pytokenizer.TestPyTokenizer) +test_templates062_invalid_name_right_brace_middle (tests.test_roundtripping.TestRoundtripping) invalid characters in template name: right brace in middle ... ok -test_templates063_invalid_name_left_braces (tests.test_pytokenizer.TestPyTokenizer) +test_templates063_invalid_name_left_braces (tests.test_roundtripping.TestRoundtripping) invalid characters in template name: two left braces in middle ... ok -test_templates064_invalid_name_left_bracket_middle (tests.test_pytokenizer.TestPyTokenizer) +test_templates064_invalid_name_left_bracket_middle (tests.test_roundtripping.TestRoundtripping) invalid characters in template name: left bracket in middle ... ok -test_templates065_invalid_name_right_bracket_middle (tests.test_pytokenizer.TestPyTokenizer) +test_templates065_invalid_name_right_bracket_middle (tests.test_roundtripping.TestRoundtripping) invalid characters in template name: right bracket in middle ... ok -test_templates066_invalid_name_left_bracket_start (tests.test_pytokenizer.TestPyTokenizer) +test_templates066_invalid_name_left_bracket_start (tests.test_roundtripping.TestRoundtripping) invalid characters in template name: left bracket at start ... ok -test_templates067_invalid_name_right_bracket_start (tests.test_pytokenizer.TestPyTokenizer) +test_templates067_invalid_name_right_bracket_start (tests.test_roundtripping.TestRoundtripping) invalid characters in template name: right bracket at end ... ok -test_templates068_valid_name_left_brace_start (tests.test_pytokenizer.TestPyTokenizer) +test_templates068_valid_name_left_brace_start (tests.test_roundtripping.TestRoundtripping) valid characters in template name: left brace at start ... ok -test_templates069_valid_unnamed_param_left_brace (tests.test_pytokenizer.TestPyTokenizer) +test_templates069_valid_unnamed_param_left_brace (tests.test_roundtripping.TestRoundtripping) valid characters in unnamed template parameter: left brace ... ok -test_templates070_valid_unnamed_param_braces (tests.test_pytokenizer.TestPyTokenizer) +test_templates070_valid_unnamed_param_braces (tests.test_roundtripping.TestRoundtripping) valid characters in unnamed template parameter: left and right braces ... ok -test_templates071_valid_param_name_braces (tests.test_pytokenizer.TestPyTokenizer) +test_templates071_valid_param_name_braces (tests.test_roundtripping.TestRoundtripping) valid characters in template parameter name: left and right braces ... ok -test_templates072_valid_param_name_brackets (tests.test_pytokenizer.TestPyTokenizer) +test_templates072_valid_param_name_brackets (tests.test_roundtripping.TestRoundtripping) valid characters in unnamed template parameter: left and right brackets ... ok -test_templates073_valid_param_name_double_left_brackets (tests.test_pytokenizer.TestPyTokenizer) +test_templates073_valid_param_name_double_left_brackets (tests.test_roundtripping.TestRoundtripping) valid characters in unnamed template parameter: double left brackets ... ok -test_templates074_valid_param_name_double_right_brackets (tests.test_pytokenizer.TestPyTokenizer) +test_templates074_valid_param_name_double_right_brackets (tests.test_roundtripping.TestRoundtripping) valid characters in unnamed template parameter: double right brackets ... ok -test_templates075_valid_param_name_double_brackets (tests.test_pytokenizer.TestPyTokenizer) +test_templates075_valid_param_name_double_brackets (tests.test_roundtripping.TestRoundtripping) valid characters in unnamed template parameter: double left and right brackets ... ok -test_templates076_invalid_param_name_double_left_braces (tests.test_pytokenizer.TestPyTokenizer) +test_templates076_invalid_param_name_double_left_braces (tests.test_roundtripping.TestRoundtripping) invalid characters in template parameter name: double left braces ... ok -test_templates077_invalid_param_name_double_braces (tests.test_pytokenizer.TestPyTokenizer) +test_templates077_invalid_param_name_double_braces (tests.test_roundtripping.TestRoundtripping) invalid characters in template parameter name: double left and right braces ... ok -test_templates078_invalid_left_angle_bracket (tests.test_pytokenizer.TestPyTokenizer) +test_templates078_invalid_left_angle_bracket (tests.test_roundtripping.TestRoundtripping) invalid template: left angle bracket in name ... ok -test_templates079_invalid_right_angle_bracket (tests.test_pytokenizer.TestPyTokenizer) +test_templates079_invalid_right_angle_bracket (tests.test_roundtripping.TestRoundtripping) invalid template: right angle bracket in name ... ok -test_templates080_incomplete_stub (tests.test_pytokenizer.TestPyTokenizer) +test_templates080_incomplete_stub (tests.test_roundtripping.TestRoundtripping) incomplete templates that should fail gracefully: just an opening ... ok -test_templates081_incomplete_plain (tests.test_pytokenizer.TestPyTokenizer) +test_templates081_incomplete_plain (tests.test_roundtripping.TestRoundtripping) incomplete templates that should fail gracefully: no close whatsoever ... ok -test_templates082_incomplete_right_brace (tests.test_pytokenizer.TestPyTokenizer) +test_templates082_incomplete_right_brace (tests.test_roundtripping.TestRoundtripping) incomplete templates that should fail gracefully: only one right brace ... ok -test_templates083_incomplete_pipe (tests.test_pytokenizer.TestPyTokenizer) +test_templates083_incomplete_pipe (tests.test_roundtripping.TestRoundtripping) incomplete templates that should fail gracefully: a pipe ... ok -test_templates084_incomplete_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) +test_templates084_incomplete_unnamed_param (tests.test_roundtripping.TestRoundtripping) incomplete templates that should fail gracefully: an unnamed parameter ... ok -test_templates085_incomplete_unnamed_param_pipe (tests.test_pytokenizer.TestPyTokenizer) +test_templates085_incomplete_unnamed_param_pipe (tests.test_roundtripping.TestRoundtripping) incomplete templates that should fail gracefully: an unnamed parameter, then a pipe ... ok -test_templates086_incomplete_valueless_param (tests.test_pytokenizer.TestPyTokenizer) +test_templates086_incomplete_valueless_param (tests.test_roundtripping.TestRoundtripping) incomplete templates that should fail gracefully: an a named parameter with no value ... ok -test_templates087_incomplete_valueless_param_pipe (tests.test_pytokenizer.TestPyTokenizer) +test_templates087_incomplete_valueless_param_pipe (tests.test_roundtripping.TestRoundtripping) incomplete templates that should fail gracefully: a named parameter with no value, then a pipe ... ok -test_templates088_incomplete_named_param (tests.test_pytokenizer.TestPyTokenizer) +test_templates088_incomplete_named_param (tests.test_roundtripping.TestRoundtripping) incomplete templates that should fail gracefully: a named parameter with a value ... ok -test_templates089_incomplete_named_param_pipe (tests.test_pytokenizer.TestPyTokenizer) +test_templates089_incomplete_named_param_pipe (tests.test_roundtripping.TestRoundtripping) incomplete templates that should fail gracefully: a named parameter with a value, then a paipe ... ok -test_templates090_incomplete_two_unnamed_params (tests.test_pytokenizer.TestPyTokenizer) +test_templates090_incomplete_two_unnamed_params (tests.test_roundtripping.TestRoundtripping) incomplete templates that should fail gracefully: two unnamed parameters ... ok -test_templates091_incomplete_unnamed_param_valueless_param (tests.test_pytokenizer.TestPyTokenizer) +test_templates091_incomplete_unnamed_param_valueless_param (tests.test_roundtripping.TestRoundtripping) incomplete templates that should fail gracefully: an unnamed parameter, then a named parameter with no value ... ok -test_templates092_incomplete_unnamed_param_named_param (tests.test_pytokenizer.TestPyTokenizer) +test_templates092_incomplete_unnamed_param_named_param (tests.test_roundtripping.TestRoundtripping) incomplete templates that should fail gracefully: an unnamed parameter, then a named parameter with a value ... ok -test_templates093_incomplete_named_param_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) +test_templates093_incomplete_named_param_unnamed_param (tests.test_roundtripping.TestRoundtripping) incomplete templates that should fail gracefully: a named parameter with a value, then an unnamed parameter ... ok -test_templates094_incomplete_named_param_valueless_param (tests.test_pytokenizer.TestPyTokenizer) +test_templates094_incomplete_named_param_valueless_param (tests.test_roundtripping.TestRoundtripping) incomplete templates that should fail gracefully: a named parameter with a value, then a named parameter with no value ... ok -test_templates095_incomplete_two_named_params (tests.test_pytokenizer.TestPyTokenizer) +test_templates095_incomplete_two_named_params (tests.test_roundtripping.TestRoundtripping) incomplete templates that should fail gracefully: two named parameters with values ... ok -test_templates096_incomplete_nested_template_as_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) +test_templates096_incomplete_nested_template_as_unnamed_param (tests.test_roundtripping.TestRoundtripping) incomplete templates that should fail gracefully: a valid nested template as an unnamed parameter ... ok -test_templates097_incomplete_nested_template_as_param_value (tests.test_pytokenizer.TestPyTokenizer) +test_templates097_incomplete_nested_template_as_param_value (tests.test_roundtripping.TestRoundtripping) incomplete templates that should fail gracefully: a valid nested template as a parameter value ... ok -test_templates098_recursion_five_hundred_opens (tests.test_pytokenizer.TestPyTokenizer) +test_templates098_recursion_five_hundred_opens (tests.test_roundtripping.TestRoundtripping) test potentially dangerous recursion: five hundred template openings, without spaces ... ok -test_templates099_recursion_one_hundred_opens (tests.test_pytokenizer.TestPyTokenizer) +test_templates099_recursion_one_hundred_opens (tests.test_roundtripping.TestRoundtripping) test potentially dangerous recursion: one hundred template openings, with spaces ... ok -test_templates100_recursion_opens_and_closes (tests.test_pytokenizer.TestPyTokenizer) +test_templates100_recursion_opens_and_closes (tests.test_roundtripping.TestRoundtripping) test potentially dangerous recursion: template openings and closings ... ok -test_text1_basic (tests.test_pytokenizer.TestPyTokenizer) +test_text1_basic (tests.test_roundtripping.TestRoundtripping) sanity check for basic text parsing, no gimmicks ... ok -test_text2_newlines (tests.test_pytokenizer.TestPyTokenizer) +test_text2_newlines (tests.test_roundtripping.TestRoundtripping) slightly more complex text parsing, with newlines ... ok -test_text3_unicode (tests.test_pytokenizer.TestPyTokenizer) +test_text3_unicode (tests.test_roundtripping.TestRoundtripping) ensure unicode data is handled properly ... ok -test_text4_unicode2 (tests.test_pytokenizer.TestPyTokenizer) +test_text4_unicode2 (tests.test_roundtripping.TestRoundtripping) additional unicode check for non-BMP codepoints ... ok -test_text5_large (tests.test_pytokenizer.TestPyTokenizer) +test_text5_large (tests.test_roundtripping.TestRoundtripping) a lot of text, requiring proper storage in the C tokenizer ... ok -test_uses_c (tests.test_pytokenizer.TestPyTokenizer) -make sure the Python tokenizer identifies as not using C ... ok -test_wikilinks01_blank (tests.test_pytokenizer.TestPyTokenizer) +test_wikilinks01_blank (tests.test_roundtripping.TestRoundtripping) wikilink with no content ... ok -test_wikilinks02_blank_with_text (tests.test_pytokenizer.TestPyTokenizer) +test_wikilinks02_blank_with_text (tests.test_roundtripping.TestRoundtripping) wikilink with no content but a pipe ... ok -test_wikilinks03_basic (tests.test_pytokenizer.TestPyTokenizer) +test_wikilinks03_basic (tests.test_roundtripping.TestRoundtripping) simplest type of wikilink ... ok -test_wikilinks04_with_text (tests.test_pytokenizer.TestPyTokenizer) +test_wikilinks04_with_text (tests.test_roundtripping.TestRoundtripping) wikilink with a text value ... ok -test_wikilinks05_blank_with_multiple_texts (tests.test_pytokenizer.TestPyTokenizer) +test_wikilinks05_blank_with_multiple_texts (tests.test_roundtripping.TestRoundtripping) no content, multiple pipes ... ok -test_wikilinks06_multiple_texts (tests.test_pytokenizer.TestPyTokenizer) +test_wikilinks06_multiple_texts (tests.test_roundtripping.TestRoundtripping) multiple text values separated by pipes ... ok -test_wikilinks07_newline_text (tests.test_pytokenizer.TestPyTokenizer) +test_wikilinks07_newline_text (tests.test_roundtripping.TestRoundtripping) a newline in the middle of the text ... ok -test_wikilinks08_bracket_text (tests.test_pytokenizer.TestPyTokenizer) +test_wikilinks08_bracket_text (tests.test_roundtripping.TestRoundtripping) a left bracket in the middle of the text ... ok -test_wikilinks09_nested (tests.test_pytokenizer.TestPyTokenizer) +test_wikilinks09_nested (tests.test_roundtripping.TestRoundtripping) a wikilink nested within another ... ok -test_wikilinks10_nested_padding (tests.test_pytokenizer.TestPyTokenizer) +test_wikilinks10_nested_padding (tests.test_roundtripping.TestRoundtripping) a wikilink nested within another, separated by other data ... ok -test_wikilinks11_invalid_newline (tests.test_pytokenizer.TestPyTokenizer) +test_wikilinks11_invalid_newline (tests.test_roundtripping.TestRoundtripping) invalid wikilink: newline as only content ... ok -test_wikilinks12_invalid_right_brace (tests.test_pytokenizer.TestPyTokenizer) +test_wikilinks12_invalid_right_brace (tests.test_roundtripping.TestRoundtripping) invalid wikilink: right brace ... ok -test_wikilinks13_invalid_left_brace (tests.test_pytokenizer.TestPyTokenizer) +test_wikilinks13_invalid_left_brace (tests.test_roundtripping.TestRoundtripping) invalid wikilink: left brace ... ok -test_wikilinks14_invalid_right_bracket (tests.test_pytokenizer.TestPyTokenizer) +test_wikilinks14_invalid_right_bracket (tests.test_roundtripping.TestRoundtripping) invalid wikilink: right bracket ... ok -test_wikilinks15_invalid_left_bracket (tests.test_pytokenizer.TestPyTokenizer) +test_wikilinks15_invalid_left_bracket (tests.test_roundtripping.TestRoundtripping) invalid wikilink: left bracket ... ok -test_wikilinks16_invalid_nested (tests.test_pytokenizer.TestPyTokenizer) +test_wikilinks16_invalid_nested (tests.test_roundtripping.TestRoundtripping) invalid wikilink: trying to nest in the wrong context ... ok -test_wikilinks17_invalid_nested_padding (tests.test_pytokenizer.TestPyTokenizer) +test_wikilinks17_invalid_nested_padding (tests.test_roundtripping.TestRoundtripping) invalid wikilink: trying to nest in the wrong context, with a text param ... ok -test_wikilinks18_invalid_nested_no_close (tests.test_pytokenizer.TestPyTokenizer) +test_wikilinks18_invalid_nested_no_close (tests.test_roundtripping.TestRoundtripping) invalid wikilink: a wikilink nested within the value of another, missing a pair of closing brackets ... ok -test_wikilinks19_invalid_left_angle_bracket (tests.test_pytokenizer.TestPyTokenizer) +test_wikilinks19_invalid_left_angle_bracket (tests.test_roundtripping.TestRoundtripping) invalid wikilink: left angle bracket ... ok -test_wikilinks20_invalid_right_angle_bracket (tests.test_pytokenizer.TestPyTokenizer) +test_wikilinks20_invalid_right_angle_bracket (tests.test_roundtripping.TestRoundtripping) invalid wikilink: right angle bracket ... ok -test_wikilinks21_invalid_newline_at_start (tests.test_pytokenizer.TestPyTokenizer) +test_wikilinks21_invalid_newline_at_start (tests.test_roundtripping.TestRoundtripping) invalid wikilink: newline at start of title ... ok -test_wikilinks22_invalid_newline_at_end (tests.test_pytokenizer.TestPyTokenizer) +test_wikilinks22_invalid_newline_at_end (tests.test_roundtripping.TestRoundtripping) invalid wikilink: newline at end of title ... ok -test_wikilinks23_incomplete_open_only (tests.test_pytokenizer.TestPyTokenizer) +test_wikilinks23_incomplete_open_only (tests.test_roundtripping.TestRoundtripping) incomplete wikilinks: just an open ... ok -test_wikilinks24_incomplete_open_text (tests.test_pytokenizer.TestPyTokenizer) +test_wikilinks24_incomplete_open_text (tests.test_roundtripping.TestRoundtripping) incomplete wikilinks: an open with some text ... ok -test_wikilinks25_incomplete_open_text_pipe (tests.test_pytokenizer.TestPyTokenizer) +test_wikilinks25_incomplete_open_text_pipe (tests.test_roundtripping.TestRoundtripping) incomplete wikilinks: an open, text, then a pipe ... ok -test_wikilinks26_incomplete_open_pipe (tests.test_pytokenizer.TestPyTokenizer) +test_wikilinks26_incomplete_open_pipe (tests.test_roundtripping.TestRoundtripping) incomplete wikilinks: an open, then a pipe ... ok -test_wikilinks27_incomplete_open_pipe_text (tests.test_pytokenizer.TestPyTokenizer) +test_wikilinks27_incomplete_open_pipe_text (tests.test_roundtripping.TestRoundtripping) incomplete wikilinks: an open, then a pipe, then text ... ok -test_wikilinks28_incomplete_open_pipes_text (tests.test_pytokenizer.TestPyTokenizer) +test_wikilinks28_incomplete_open_pipes_text (tests.test_roundtripping.TestRoundtripping) incomplete wikilinks: a pipe, then text then two pipes ... ok -test_wikilinks29_incomplete_open_partial_close (tests.test_pytokenizer.TestPyTokenizer) +test_wikilinks29_incomplete_open_partial_close (tests.test_roundtripping.TestRoundtripping) incomplete wikilinks: an open, then one right brace ... ok -test_wikilinks30_incomplete_preserve_previous (tests.test_pytokenizer.TestPyTokenizer) +test_wikilinks30_incomplete_preserve_previous (tests.test_roundtripping.TestRoundtripping) incomplete wikilinks: a valid wikilink followed by an invalid one ... ok -test_parsing (tests.test_parser.TestParser) -integration test for parsing overall ... ok -test_skip_style_tags (tests.test_parser.TestParser) -test Parser.parse(skip_style_tags=True) ... ok -test_use_c (tests.test_parser.TestParser) -make sure the correct tokenizer is used ... ok +test_children (tests.test_argument.TestArgument) +test Argument.__children__() ... ok +test_default (tests.test_argument.TestArgument) +test getter/setter for the default attribute ... ok +test_name (tests.test_argument.TestArgument) +test getter/setter for the name attribute ... ok +test_showtree (tests.test_argument.TestArgument) +test Argument.__showtree__() ... ok +test_strip (tests.test_argument.TestArgument) +test Argument.__strip__() ... ok +test_unicode (tests.test_argument.TestArgument) +test Argument.__unicode__() ... ok test_attributes (tests.test_tokens.TestTokens) check that Token attributes can be managed properly ... ok test_equality (tests.test_tokens.TestTokens) @@ -4106,36 +5388,34 @@ check that repr() on a Token works as expected ... ok test_repr_equality (tests.test_tokens.TestTokens) check that eval(repr(token)) == token ... ok -test_brackets (tests.test_external_link.TestExternalLink) -test getter/setter for the brackets attribute ... ok -test_children (tests.test_external_link.TestExternalLink) -test ExternalLink.__children__() ... ok -test_showtree (tests.test_external_link.TestExternalLink) -test ExternalLink.__showtree__() ... ok -test_strip (tests.test_external_link.TestExternalLink) -test ExternalLink.__strip__() ... ok -test_title (tests.test_external_link.TestExternalLink) -test getter/setter for the title attribute ... ok -test_unicode (tests.test_external_link.TestExternalLink) -test ExternalLink.__unicode__() ... ok -test_url (tests.test_external_link.TestExternalLink) -test getter/setter for the url attribute ... ok -test_children (tests.test_wikilink.TestWikilink) -test Wikilink.__children__() ... ok -test_showtree (tests.test_wikilink.TestWikilink) -test Wikilink.__showtree__() ... ok -test_strip (tests.test_wikilink.TestWikilink) -test Wikilink.__strip__() ... ok -test_text (tests.test_wikilink.TestWikilink) -test getter/setter for the text attribute ... ok -test_title (tests.test_wikilink.TestWikilink) -test getter/setter for the title attribute ... ok -test_unicode (tests.test_wikilink.TestWikilink) -test Wikilink.__unicode__() ... ok -test_parse_anything_invalid (tests.test_utils.TestUtils) -tests for invalid input to utils.parse_anything() ... ok -test_parse_anything_valid (tests.test_utils.TestUtils) -tests for valid input to utils.parse_anything() ... ok +test_readme_1 (tests.test_docs.TestDocs) +test a block of example code in the README ... ok +test_readme_2 (tests.test_docs.TestDocs) +test a block of example code in the README ... ok +test_readme_3 (tests.test_docs.TestDocs) +test a block of example code in the README ... ok +test_readme_4 (tests.test_docs.TestDocs) +test a block of example code in the README ... ok +test_readme_5 (tests.test_docs.TestDocs) +test a block of example code in the README; includes a web call ... skipped 'cannot continue because of unsuccessful web call' +test_children (tests.test_html_entity.TestHTMLEntity) +test HTMLEntity.__children__() ... ok +test_hex_char (tests.test_html_entity.TestHTMLEntity) +test getter/setter for the hex_char attribute ... ok +test_hexadecimal (tests.test_html_entity.TestHTMLEntity) +test getter/setter for the hexadecimal attribute ... ok +test_named (tests.test_html_entity.TestHTMLEntity) +test getter/setter for the named attribute ... ok +test_normalize (tests.test_html_entity.TestHTMLEntity) +test getter/setter for the normalize attribute ... ok +test_showtree (tests.test_html_entity.TestHTMLEntity) +test HTMLEntity.__showtree__() ... ok +test_strip (tests.test_html_entity.TestHTMLEntity) +test HTMLEntity.__strip__() ... ok +test_unicode (tests.test_html_entity.TestHTMLEntity) +test HTMLEntity.__unicode__() ... ok +test_value (tests.test_html_entity.TestHTMLEntity) +test getter/setter for the value attribute ... ok test_append (tests.test_wikicode.TestWikicode) test Wikicode.append() ... ok test_contains (tests.test_wikicode.TestWikicode) @@ -4184,1186 +5464,1114 @@ test getter/setter for the title attribute ... ok test_unicode (tests.test_heading.TestHeading) test Heading.__unicode__() ... ok -test_argument (tests.test_builder.TestBuilder) -tests for building Argument nodes ... ok -test_comment (tests.test_builder.TestBuilder) -tests for building Comment nodes ... ok -test_external_link (tests.test_builder.TestBuilder) -tests for building ExternalLink nodes ... ok -test_heading (tests.test_builder.TestBuilder) -tests for building Heading nodes ... ok -test_html_entity (tests.test_builder.TestBuilder) -tests for building HTMLEntity nodes ... ok -test_integration (tests.test_builder.TestBuilder) -a test for building a combination of templates together ... ok -test_integration2 (tests.test_builder.TestBuilder) -an even more audacious test for building a horrible wikicode mess ... ok -test_parser_errors (tests.test_builder.TestBuilder) -test whether ParserError gets thrown for bad input ... ok -test_tag (tests.test_builder.TestBuilder) -tests for building Tag nodes ... ok -test_template (tests.test_builder.TestBuilder) -tests for building Template nodes ... ok -test_text (tests.test_builder.TestBuilder) -tests for building Text nodes ... ok -test_wikilink (tests.test_builder.TestBuilder) -tests for building Wikilink nodes ... ok -test_comparisons (tests.test_string_mixin.TestStringMixIn) -make sure comparison operators work ... ok -test_docs (tests.test_string_mixin.TestStringMixIn) -make sure the various methods of StringMixIn have docstrings ... ok -test_other_magics (tests.test_string_mixin.TestStringMixIn) -test other magically implemented features, like len() and iter() ... ok -test_other_methods (tests.test_string_mixin.TestStringMixIn) -test the remaining non-magic methods of StringMixIn ... ok -test_types (tests.test_string_mixin.TestStringMixIn) -make sure StringMixIns convert to different types correctly ... ok -test_children (tests.test_text.TestText) -test Text.__children__() ... ok -test_showtree (tests.test_text.TestText) -test Text.__showtree__() ... ok -test_strip (tests.test_text.TestText) -test Text.__strip__() ... ok -test_unicode (tests.test_text.TestText) -test Text.__unicode__() ... ok -test_value (tests.test_text.TestText) -test getter/setter for the value attribute ... ok -test_name (tests.test_attribute.TestAttribute) -test getter/setter for the name attribute ... ok -test_padding (tests.test_attribute.TestAttribute) -test getter/setter for the padding attributes ... ok -test_quotes (tests.test_attribute.TestAttribute) -test getter/setter for the quotes attribute ... ok -test_unicode (tests.test_attribute.TestAttribute) -test Attribute.__unicode__() ... ok -test_value (tests.test_attribute.TestAttribute) -test getter/setter for the value attribute ... ok - ----------------------------------------------------------------------- -Ran 1796 tests in 0.823s - -OK (skipped=1) -I: pybuild base:217: python3.7 setup.py test -running test -running egg_info -writing mwparserfromhell.egg-info/PKG-INFO -writing dependency_links to mwparserfromhell.egg-info/dependency_links.txt -writing top-level names to mwparserfromhell.egg-info/top_level.txt -reading manifest file 'mwparserfromhell.egg-info/SOURCES.txt' -reading manifest template 'MANIFEST.in' -writing manifest file 'mwparserfromhell.egg-info/SOURCES.txt' -running build_ext -copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/parser/_tokenizer.cpython-37m-i386-linux-gnu.so -> mwparserfromhell/parser -test_arguments01_blank (tests.test_roundtripping.TestRoundtripping) +test_parsing (tests.test_parser.TestParser) +integration test for parsing overall ... ok +test_skip_style_tags (tests.test_parser.TestParser) +test Parser.parse(skip_style_tags=True) ... ok +test_use_c (tests.test_parser.TestParser) +make sure the correct tokenizer is used ... ok +test_arguments01_blank (tests.test_pytokenizer.TestPyTokenizer) argument with no content ... ok -test_arguments02_blank_with_default (tests.test_roundtripping.TestRoundtripping) +test_arguments02_blank_with_default (tests.test_pytokenizer.TestPyTokenizer) argument with no content but a pipe ... ok -test_arguments03_basic (tests.test_roundtripping.TestRoundtripping) +test_arguments03_basic (tests.test_pytokenizer.TestPyTokenizer) simplest type of argument ... ok -test_arguments04_default (tests.test_roundtripping.TestRoundtripping) +test_arguments04_default (tests.test_pytokenizer.TestPyTokenizer) argument with a default value ... ok -test_arguments05_blank_with_multiple_defaults (tests.test_roundtripping.TestRoundtripping) +test_arguments05_blank_with_multiple_defaults (tests.test_pytokenizer.TestPyTokenizer) no content, multiple pipes ... ok -test_arguments06_multiple_defaults (tests.test_roundtripping.TestRoundtripping) +test_arguments06_multiple_defaults (tests.test_pytokenizer.TestPyTokenizer) multiple values separated by pipes ... ok -test_arguments07_newline (tests.test_roundtripping.TestRoundtripping) +test_arguments07_newline (tests.test_pytokenizer.TestPyTokenizer) newline as only content ... ok -test_arguments08_right_braces (tests.test_roundtripping.TestRoundtripping) +test_arguments08_right_braces (tests.test_pytokenizer.TestPyTokenizer) multiple } scattered throughout text ... ok -test_arguments09_right_braces_default (tests.test_roundtripping.TestRoundtripping) +test_arguments09_right_braces_default (tests.test_pytokenizer.TestPyTokenizer) multiple } scattered throughout text, with a default value ... ok -test_arguments10_nested (tests.test_roundtripping.TestRoundtripping) +test_arguments10_nested (tests.test_pytokenizer.TestPyTokenizer) an argument nested within another argument ... ok -test_arguments11_invalid_braces (tests.test_roundtripping.TestRoundtripping) +test_arguments11_invalid_braces (tests.test_pytokenizer.TestPyTokenizer) invalid argument: multiple braces that are not part of a template or argument ... ok -test_arguments12_incomplete_open_only (tests.test_roundtripping.TestRoundtripping) +test_arguments12_incomplete_open_only (tests.test_pytokenizer.TestPyTokenizer) incomplete arguments: just an open ... ok -test_arguments13_incomplete_open_text (tests.test_roundtripping.TestRoundtripping) +test_arguments13_incomplete_open_text (tests.test_pytokenizer.TestPyTokenizer) incomplete arguments: an open with some text ... ok -test_arguments14_incomplete_open_text_pipe (tests.test_roundtripping.TestRoundtripping) +test_arguments14_incomplete_open_text_pipe (tests.test_pytokenizer.TestPyTokenizer) incomplete arguments: an open, text, then a pipe ... ok -test_arguments15_incomplete_open_pipe (tests.test_roundtripping.TestRoundtripping) +test_arguments15_incomplete_open_pipe (tests.test_pytokenizer.TestPyTokenizer) incomplete arguments: an open, then a pipe ... ok -test_arguments16_incomplete_open_pipe_text (tests.test_roundtripping.TestRoundtripping) +test_arguments16_incomplete_open_pipe_text (tests.test_pytokenizer.TestPyTokenizer) incomplete arguments: an open, then a pipe, then text ... ok -test_arguments17_incomplete_open_pipes_text (tests.test_roundtripping.TestRoundtripping) +test_arguments17_incomplete_open_pipes_text (tests.test_pytokenizer.TestPyTokenizer) incomplete arguments: a pipe, then text then two pipes ... ok -test_arguments18_incomplete_open_partial_close (tests.test_roundtripping.TestRoundtripping) +test_arguments18_incomplete_open_partial_close (tests.test_pytokenizer.TestPyTokenizer) incomplete arguments: an open, then one right brace ... ok -test_arguments19_incomplete_preserve_previous (tests.test_roundtripping.TestRoundtripping) +test_arguments19_incomplete_preserve_previous (tests.test_pytokenizer.TestPyTokenizer) incomplete arguments: a valid argument followed by an invalid one ... ok -test_comments1_blank (tests.test_roundtripping.TestRoundtripping) +test_comments1_blank (tests.test_pytokenizer.TestPyTokenizer) a blank comment ... ok -test_comments2_basic (tests.test_roundtripping.TestRoundtripping) +test_comments2_basic (tests.test_pytokenizer.TestPyTokenizer) a basic comment ... ok -test_comments3_tons_of_nonsense (tests.test_roundtripping.TestRoundtripping) +test_comments3_tons_of_nonsense (tests.test_pytokenizer.TestPyTokenizer) a comment with tons of ignorable garbage in it ... ok -test_comments4_incomplete_blank (tests.test_roundtripping.TestRoundtripping) +test_comments4_incomplete_blank (tests.test_pytokenizer.TestPyTokenizer) a comment that doesn't close ... ok -test_comments5_incomplete_text (tests.test_roundtripping.TestRoundtripping) +test_comments5_incomplete_text (tests.test_pytokenizer.TestPyTokenizer) a comment that doesn't close, with text ... ok -test_comments6_incomplete_partial_close (tests.test_roundtripping.TestRoundtripping) +test_comments6_incomplete_partial_close (tests.test_pytokenizer.TestPyTokenizer) a comment that doesn't close, with a partial close ... ok -test_comments7_incomplete_part_only (tests.test_roundtripping.TestRoundtripping) +test_comments7_incomplete_part_only (tests.test_pytokenizer.TestPyTokenizer) a comment that only has a < and ! ... ok -test_external_links01_basic (tests.test_roundtripping.TestRoundtripping) +test_external_links01_basic (tests.test_pytokenizer.TestPyTokenizer) basic external link ... ok -test_external_links02_basic_brackets (tests.test_roundtripping.TestRoundtripping) +test_external_links02_basic_brackets (tests.test_pytokenizer.TestPyTokenizer) basic external link in brackets ... ok -test_external_links03_brackets_space (tests.test_roundtripping.TestRoundtripping) +test_external_links03_brackets_space (tests.test_pytokenizer.TestPyTokenizer) basic external link in brackets, with a space after ... ok -test_external_links04_brackets_title (tests.test_roundtripping.TestRoundtripping) +test_external_links04_brackets_title (tests.test_pytokenizer.TestPyTokenizer) basic external link in brackets, with a title ... ok -test_external_links05_brackets_multiword_title (tests.test_roundtripping.TestRoundtripping) +test_external_links05_brackets_multiword_title (tests.test_pytokenizer.TestPyTokenizer) basic external link in brackets, with a multi-word title ... ok -test_external_links06_brackets_adjacent (tests.test_roundtripping.TestRoundtripping) +test_external_links06_brackets_adjacent (tests.test_pytokenizer.TestPyTokenizer) three adjacent bracket-enclosed external links ... ok -test_external_links07_brackets_newline_before (tests.test_roundtripping.TestRoundtripping) +test_external_links07_brackets_newline_before (tests.test_pytokenizer.TestPyTokenizer) bracket-enclosed link with a newline before the title ... ok -test_external_links08_brackets_newline_inside (tests.test_roundtripping.TestRoundtripping) +test_external_links08_brackets_newline_inside (tests.test_pytokenizer.TestPyTokenizer) bracket-enclosed link with a newline in the title ... ok -test_external_links09_brackets_newline_after (tests.test_roundtripping.TestRoundtripping) +test_external_links09_brackets_newline_after (tests.test_pytokenizer.TestPyTokenizer) bracket-enclosed link with a newline after the title ... ok -test_external_links10_brackets_space_before (tests.test_roundtripping.TestRoundtripping) +test_external_links10_brackets_space_before (tests.test_pytokenizer.TestPyTokenizer) bracket-enclosed link with a space before the URL ... ok -test_external_links11_brackets_title_like_url (tests.test_roundtripping.TestRoundtripping) +test_external_links11_brackets_title_like_url (tests.test_pytokenizer.TestPyTokenizer) bracket-enclosed link with a title that looks like a URL ... ok -test_external_links12_brackets_recursive (tests.test_roundtripping.TestRoundtripping) +test_external_links12_brackets_recursive (tests.test_pytokenizer.TestPyTokenizer) bracket-enclosed link with a bracket-enclosed link as the title ... ok -test_external_links13_brackets_recursive_2 (tests.test_roundtripping.TestRoundtripping) +test_external_links13_brackets_recursive_2 (tests.test_pytokenizer.TestPyTokenizer) bracket-enclosed link with a double bracket-enclosed link as the title ... ok -test_external_links14_period_after (tests.test_roundtripping.TestRoundtripping) +test_external_links14_period_after (tests.test_pytokenizer.TestPyTokenizer) a period after a free link that is excluded ... ok -test_external_links15_colons_after (tests.test_roundtripping.TestRoundtripping) +test_external_links15_colons_after (tests.test_pytokenizer.TestPyTokenizer) colons after a free link that are excluded ... ok -test_external_links16_close_paren_after_excluded (tests.test_roundtripping.TestRoundtripping) +test_external_links16_close_paren_after_excluded (tests.test_pytokenizer.TestPyTokenizer) a closing parenthesis after a free link that is excluded ... ok -test_external_links17_close_paren_after_included (tests.test_roundtripping.TestRoundtripping) +test_external_links17_close_paren_after_included (tests.test_pytokenizer.TestPyTokenizer) a closing parenthesis after a free link that is included because of an opening parenthesis in the URL ... ok -test_external_links18_open_bracket_inside (tests.test_roundtripping.TestRoundtripping) +test_external_links18_open_bracket_inside (tests.test_pytokenizer.TestPyTokenizer) an open bracket inside a free link that causes it to be ended abruptly ... ok -test_external_links19_brackets_period_after (tests.test_roundtripping.TestRoundtripping) +test_external_links19_brackets_period_after (tests.test_pytokenizer.TestPyTokenizer) a period after a bracket-enclosed link that is included ... ok -test_external_links20_brackets_punct_after (tests.test_roundtripping.TestRoundtripping) +test_external_links20_brackets_punct_after (tests.test_pytokenizer.TestPyTokenizer) punctuation after a bracket-enclosed link that are included ... ok -test_external_links21_brackets_close_paren_after_included (tests.test_roundtripping.TestRoundtripping) +test_external_links21_brackets_close_paren_after_included (tests.test_pytokenizer.TestPyTokenizer) a closing parenthesis after a bracket-enclosed link that is included ... ok -test_external_links22_brackets_close_paren_after_included_2 (tests.test_roundtripping.TestRoundtripping) +test_external_links22_brackets_close_paren_after_included_2 (tests.test_pytokenizer.TestPyTokenizer) a closing parenthesis after a bracket-enclosed link that is also included ... ok -test_external_links23_brackets_open_bracket_inside (tests.test_roundtripping.TestRoundtripping) +test_external_links23_brackets_open_bracket_inside (tests.test_pytokenizer.TestPyTokenizer) an open bracket inside a bracket-enclosed link that is also included ... ok -test_external_links24_adjacent_space (tests.test_roundtripping.TestRoundtripping) +test_external_links24_adjacent_space (tests.test_pytokenizer.TestPyTokenizer) two free links separated by a space ... ok -test_external_links25_adjacent_newline (tests.test_roundtripping.TestRoundtripping) +test_external_links25_adjacent_newline (tests.test_pytokenizer.TestPyTokenizer) two free links separated by a newline ... ok -test_external_links26_adjacent_close_bracket (tests.test_roundtripping.TestRoundtripping) +test_external_links26_adjacent_close_bracket (tests.test_pytokenizer.TestPyTokenizer) two free links separated by a close bracket ... ok -test_external_links27_html_entity_in_url (tests.test_roundtripping.TestRoundtripping) +test_external_links27_html_entity_in_url (tests.test_pytokenizer.TestPyTokenizer) a HTML entity parsed correctly inside a free link ... ok -test_external_links28_template_in_url (tests.test_roundtripping.TestRoundtripping) +test_external_links28_template_in_url (tests.test_pytokenizer.TestPyTokenizer) a template parsed correctly inside a free link ... ok -test_external_links29_argument_in_url (tests.test_roundtripping.TestRoundtripping) +test_external_links29_argument_in_url (tests.test_pytokenizer.TestPyTokenizer) an argument parsed correctly inside a free link ... ok -test_external_links30_wikilink_in_url (tests.test_roundtripping.TestRoundtripping) +test_external_links30_wikilink_in_url (tests.test_pytokenizer.TestPyTokenizer) a wikilink that destroys a free link ... ok -test_external_links31_external_link_in_url (tests.test_roundtripping.TestRoundtripping) +test_external_links31_external_link_in_url (tests.test_pytokenizer.TestPyTokenizer) a bracketed link that destroys a free link ... ok -test_external_links32_spaces_padding (tests.test_roundtripping.TestRoundtripping) +test_external_links32_spaces_padding (tests.test_pytokenizer.TestPyTokenizer) spaces padding a free link ... ok -test_external_links33_text_and_spaces_padding (tests.test_roundtripping.TestRoundtripping) +test_external_links33_text_and_spaces_padding (tests.test_pytokenizer.TestPyTokenizer) text and spaces padding a free link ... ok -test_external_links34_template_before (tests.test_roundtripping.TestRoundtripping) +test_external_links34_template_before (tests.test_pytokenizer.TestPyTokenizer) a template before a free link ... ok -test_external_links35_spaces_padding_no_slashes (tests.test_roundtripping.TestRoundtripping) +test_external_links35_spaces_padding_no_slashes (tests.test_pytokenizer.TestPyTokenizer) spaces padding a free link with no slashes after the colon ... ok -test_external_links36_text_and_spaces_padding_no_slashes (tests.test_roundtripping.TestRoundtripping) +test_external_links36_text_and_spaces_padding_no_slashes (tests.test_pytokenizer.TestPyTokenizer) text and spaces padding a free link with no slashes after the colon ... ok -test_external_links37_template_before_no_slashes (tests.test_roundtripping.TestRoundtripping) +test_external_links37_template_before_no_slashes (tests.test_pytokenizer.TestPyTokenizer) a template before a free link with no slashes after the colon ... ok -test_external_links38_no_slashes (tests.test_roundtripping.TestRoundtripping) +test_external_links38_no_slashes (tests.test_pytokenizer.TestPyTokenizer) a free link with no slashes after the colon ... ok -test_external_links39_slashes_optional (tests.test_roundtripping.TestRoundtripping) +test_external_links39_slashes_optional (tests.test_pytokenizer.TestPyTokenizer) a free link using a scheme that doesn't need slashes, but has them anyway ... ok -test_external_links40_short (tests.test_roundtripping.TestRoundtripping) +test_external_links40_short (tests.test_pytokenizer.TestPyTokenizer) a very short free link ... ok -test_external_links41_slashes_missing (tests.test_roundtripping.TestRoundtripping) +test_external_links41_slashes_missing (tests.test_pytokenizer.TestPyTokenizer) slashes missing from a free link with a scheme that requires them ... ok -test_external_links42_no_scheme_but_slashes (tests.test_roundtripping.TestRoundtripping) +test_external_links42_no_scheme_but_slashes (tests.test_pytokenizer.TestPyTokenizer) no scheme in a free link, but slashes (protocol-relative free links are not supported) ... ok -test_external_links43_no_scheme_but_colon (tests.test_roundtripping.TestRoundtripping) +test_external_links43_no_scheme_but_colon (tests.test_pytokenizer.TestPyTokenizer) no scheme in a free link, but a colon ... ok -test_external_links44_no_scheme_but_colon_and_slashes (tests.test_roundtripping.TestRoundtripping) +test_external_links44_no_scheme_but_colon_and_slashes (tests.test_pytokenizer.TestPyTokenizer) no scheme in a free link, but a colon and slashes ... ok -test_external_links45_fake_scheme_no_slashes (tests.test_roundtripping.TestRoundtripping) +test_external_links45_fake_scheme_no_slashes (tests.test_pytokenizer.TestPyTokenizer) a nonexistent scheme in a free link, without slashes ... ok -test_external_links46_fake_scheme_slashes (tests.test_roundtripping.TestRoundtripping) +test_external_links46_fake_scheme_slashes (tests.test_pytokenizer.TestPyTokenizer) a nonexistent scheme in a free link, with slashes ... ok -test_external_links47_fake_scheme_brackets_no_slashes (tests.test_roundtripping.TestRoundtripping) +test_external_links47_fake_scheme_brackets_no_slashes (tests.test_pytokenizer.TestPyTokenizer) a nonexistent scheme in a bracketed link, without slashes ... ok -test_external_links48_fake_scheme_brackets_slashes (tests.test_roundtripping.TestRoundtripping) +test_external_links48_fake_scheme_brackets_slashes (tests.test_pytokenizer.TestPyTokenizer) #=a nonexistent scheme in a bracketed link, with slashes ... ok -test_external_links49_interrupted_scheme (tests.test_roundtripping.TestRoundtripping) +test_external_links49_interrupted_scheme (tests.test_pytokenizer.TestPyTokenizer) an otherwise valid scheme with something in the middle of it, in a free link ... ok -test_external_links50_interrupted_scheme_brackets (tests.test_roundtripping.TestRoundtripping) +test_external_links50_interrupted_scheme_brackets (tests.test_pytokenizer.TestPyTokenizer) an otherwise valid scheme with something in the middle of it, in a bracketed link ... ok -test_external_links51_no_slashes_brackets (tests.test_roundtripping.TestRoundtripping) +test_external_links51_no_slashes_brackets (tests.test_pytokenizer.TestPyTokenizer) no slashes after the colon in a bracketed link ... ok -test_external_links52_space_before_no_slashes_brackets (tests.test_roundtripping.TestRoundtripping) +test_external_links52_space_before_no_slashes_brackets (tests.test_pytokenizer.TestPyTokenizer) a space before a bracketed link with no slashes after the colon ... ok -test_external_links53_slashes_optional_brackets (tests.test_roundtripping.TestRoundtripping) +test_external_links53_slashes_optional_brackets (tests.test_pytokenizer.TestPyTokenizer) a bracketed link using a scheme that doesn't need slashes, but has them anyway ... ok -test_external_links54_short_brackets (tests.test_roundtripping.TestRoundtripping) +test_external_links54_short_brackets (tests.test_pytokenizer.TestPyTokenizer) a very short link in brackets ... ok -test_external_links55_slashes_missing_brackets (tests.test_roundtripping.TestRoundtripping) +test_external_links55_slashes_missing_brackets (tests.test_pytokenizer.TestPyTokenizer) slashes missing from a scheme that requires them in a bracketed link ... ok -test_external_links56_protcol_relative (tests.test_roundtripping.TestRoundtripping) +test_external_links56_protcol_relative (tests.test_pytokenizer.TestPyTokenizer) a protocol-relative link (in brackets) ... ok -test_external_links57_scheme_missing_but_colon_brackets (tests.test_roundtripping.TestRoundtripping) +test_external_links57_scheme_missing_but_colon_brackets (tests.test_pytokenizer.TestPyTokenizer) scheme missing from a bracketed link, but with a colon ... ok -test_external_links58_scheme_missing_but_colon_slashes_brackets (tests.test_roundtripping.TestRoundtripping) +test_external_links58_scheme_missing_but_colon_slashes_brackets (tests.test_pytokenizer.TestPyTokenizer) scheme missing from a bracketed link, but with a colon and slashes ... ok -test_external_links59_unclosed_protocol_relative (tests.test_roundtripping.TestRoundtripping) +test_external_links59_unclosed_protocol_relative (tests.test_pytokenizer.TestPyTokenizer) an unclosed protocol-relative bracketed link ... ok -test_external_links60_space_before_protcol_relative (tests.test_roundtripping.TestRoundtripping) +test_external_links60_space_before_protcol_relative (tests.test_pytokenizer.TestPyTokenizer) a space before a protocol-relative bracketed link ... ok -test_external_links61_unclosed_just_scheme (tests.test_roundtripping.TestRoundtripping) +test_external_links61_unclosed_just_scheme (tests.test_pytokenizer.TestPyTokenizer) an unclosed bracketed link, ending after the scheme ... ok -test_external_links62_unclosed_scheme_colon (tests.test_roundtripping.TestRoundtripping) +test_external_links62_unclosed_scheme_colon (tests.test_pytokenizer.TestPyTokenizer) an unclosed bracketed link, ending after the colon ... ok -test_external_links63_unclosed_scheme_colon_slashes (tests.test_roundtripping.TestRoundtripping) +test_external_links63_unclosed_scheme_colon_slashes (tests.test_pytokenizer.TestPyTokenizer) an unclosed bracketed link, ending after the slashes ... ok -test_external_links64_incomplete_bracket (tests.test_roundtripping.TestRoundtripping) +test_external_links64_incomplete_bracket (tests.test_pytokenizer.TestPyTokenizer) just an open bracket ... ok -test_external_links65_incomplete_scheme_colon (tests.test_roundtripping.TestRoundtripping) +test_external_links65_incomplete_scheme_colon (tests.test_pytokenizer.TestPyTokenizer) a free link with just a scheme and a colon ... ok -test_external_links66_incomplete_scheme_colon_slashes (tests.test_roundtripping.TestRoundtripping) +test_external_links66_incomplete_scheme_colon_slashes (tests.test_pytokenizer.TestPyTokenizer) a free link with just a scheme, colon, and slashes ... ok -test_external_links67_brackets_scheme_but_no_url (tests.test_roundtripping.TestRoundtripping) +test_external_links67_brackets_scheme_but_no_url (tests.test_pytokenizer.TestPyTokenizer) brackets around a scheme and a colon ... ok -test_external_links68_brackets_scheme_slashes_but_no_url (tests.test_roundtripping.TestRoundtripping) +test_external_links68_brackets_scheme_slashes_but_no_url (tests.test_pytokenizer.TestPyTokenizer) brackets around a scheme, colon, and slashes ... ok -test_external_links69_brackets_scheme_title_but_no_url (tests.test_roundtripping.TestRoundtripping) +test_external_links69_brackets_scheme_title_but_no_url (tests.test_pytokenizer.TestPyTokenizer) brackets around a scheme, colon, and slashes, with a title ... ok -test_headings01_level_1 (tests.test_roundtripping.TestRoundtripping) +test_headings01_level_1 (tests.test_pytokenizer.TestPyTokenizer) a basic level-1 heading ... ok -test_headings02_level_2 (tests.test_roundtripping.TestRoundtripping) +test_headings02_level_2 (tests.test_pytokenizer.TestPyTokenizer) a basic level-2 heading ... ok -test_headings03_level_3 (tests.test_roundtripping.TestRoundtripping) +test_headings03_level_3 (tests.test_pytokenizer.TestPyTokenizer) a basic level-3 heading ... ok -test_headings04_level_4 (tests.test_roundtripping.TestRoundtripping) +test_headings04_level_4 (tests.test_pytokenizer.TestPyTokenizer) a basic level-4 heading ... ok -test_headings05_level_5 (tests.test_roundtripping.TestRoundtripping) +test_headings05_level_5 (tests.test_pytokenizer.TestPyTokenizer) a basic level-5 heading ... ok -test_headings06_level_6 (tests.test_roundtripping.TestRoundtripping) +test_headings06_level_6 (tests.test_pytokenizer.TestPyTokenizer) a basic level-6 heading ... ok -test_headings07_level_7 (tests.test_roundtripping.TestRoundtripping) +test_headings07_level_7 (tests.test_pytokenizer.TestPyTokenizer) a level-6 heading that pretends to be a level-7 heading ... ok -test_headings08_level_3_2 (tests.test_roundtripping.TestRoundtripping) +test_headings08_level_3_2 (tests.test_pytokenizer.TestPyTokenizer) a level-2 heading that pretends to be a level-3 heading ... ok -test_headings09_level_4_6 (tests.test_roundtripping.TestRoundtripping) +test_headings09_level_4_6 (tests.test_pytokenizer.TestPyTokenizer) a level-4 heading that pretends to be a level-6 heading ... ok -test_headings10_newline_before (tests.test_roundtripping.TestRoundtripping) +test_headings10_newline_before (tests.test_pytokenizer.TestPyTokenizer) a heading that starts after a newline ... ok -test_headings11_text_after (tests.test_roundtripping.TestRoundtripping) +test_headings11_text_after (tests.test_pytokenizer.TestPyTokenizer) text on the same line after ... ok -test_headings12_invalid_text_before (tests.test_roundtripping.TestRoundtripping) +test_headings12_invalid_text_before (tests.test_pytokenizer.TestPyTokenizer) invalid headings: text on the same line before ... ok -test_headings13_invalid_newline_middle (tests.test_roundtripping.TestRoundtripping) +test_headings13_invalid_newline_middle (tests.test_pytokenizer.TestPyTokenizer) invalid headings: newline in the middle ... ok -test_headings14_invalid_newline_end (tests.test_roundtripping.TestRoundtripping) +test_headings14_invalid_newline_end (tests.test_pytokenizer.TestPyTokenizer) invalid headings: newline in the middle ... ok -test_headings15_invalid_nesting (tests.test_roundtripping.TestRoundtripping) +test_headings15_invalid_nesting (tests.test_pytokenizer.TestPyTokenizer) invalid headings: attempts at nesting ... ok -test_headings16_incomplete (tests.test_roundtripping.TestRoundtripping) +test_headings16_incomplete (tests.test_pytokenizer.TestPyTokenizer) a heading that starts but doesn't finish ... ok -test_html_entities01_named (tests.test_roundtripping.TestRoundtripping) +test_html_entities01_named (tests.test_pytokenizer.TestPyTokenizer) a basic named HTML entity ... ok -test_html_entities02_numeric_decimal (tests.test_roundtripping.TestRoundtripping) +test_html_entities02_numeric_decimal (tests.test_pytokenizer.TestPyTokenizer) a basic decimal HTML entity ... ok -test_html_entities03_numeric_hexadecimal_x (tests.test_roundtripping.TestRoundtripping) +test_html_entities03_numeric_hexadecimal_x (tests.test_pytokenizer.TestPyTokenizer) a basic hexadecimal HTML entity, using 'x' as a signal ... ok -test_html_entities04_numeric_hexadecimal_X (tests.test_roundtripping.TestRoundtripping) +test_html_entities04_numeric_hexadecimal_X (tests.test_pytokenizer.TestPyTokenizer) a basic hexadecimal HTML entity, using 'X' as a signal ... ok -test_html_entities05_numeric_decimal_max (tests.test_roundtripping.TestRoundtripping) +test_html_entities05_numeric_decimal_max (tests.test_pytokenizer.TestPyTokenizer) the maximum acceptable decimal numeric entity ... ok -test_html_entities06_numeric_hex_max (tests.test_roundtripping.TestRoundtripping) +test_html_entities06_numeric_hex_max (tests.test_pytokenizer.TestPyTokenizer) the maximum acceptable hexadecimal numeric entity ... ok -test_html_entities07_numeric_zeros (tests.test_roundtripping.TestRoundtripping) +test_html_entities07_numeric_zeros (tests.test_pytokenizer.TestPyTokenizer) zeros accepted at the beginning of a numeric entity ... ok -test_html_entities08_numeric_hex_zeros (tests.test_roundtripping.TestRoundtripping) +test_html_entities08_numeric_hex_zeros (tests.test_pytokenizer.TestPyTokenizer) zeros accepted at the beginning of a hex numeric entity ... ok -test_html_entities09_invalid_named_too_long (tests.test_roundtripping.TestRoundtripping) +test_html_entities09_invalid_named_too_long (tests.test_pytokenizer.TestPyTokenizer) a named entity that is too long ... ok -test_html_entities10_invalid_named_undefined (tests.test_roundtripping.TestRoundtripping) +test_html_entities10_invalid_named_undefined (tests.test_pytokenizer.TestPyTokenizer) a named entity that doesn't exist ... ok -test_html_entities11_invalid_named_nonascii (tests.test_roundtripping.TestRoundtripping) +test_html_entities11_invalid_named_nonascii (tests.test_pytokenizer.TestPyTokenizer) a named entity with non-ASCII characters ... ok -test_html_entities12_invalid_numeric_out_of_range_1 (tests.test_roundtripping.TestRoundtripping) +test_html_entities12_invalid_numeric_out_of_range_1 (tests.test_pytokenizer.TestPyTokenizer) a numeric entity that is out of range: < 1 ... ok -test_html_entities13_invalid_numeric_out_of_range_2 (tests.test_roundtripping.TestRoundtripping) +test_html_entities13_invalid_numeric_out_of_range_2 (tests.test_pytokenizer.TestPyTokenizer) a hex numeric entity that is out of range: < 1 ... ok -test_html_entities14_invalid_numeric_out_of_range_3 (tests.test_roundtripping.TestRoundtripping) +test_html_entities14_invalid_numeric_out_of_range_3 (tests.test_pytokenizer.TestPyTokenizer) a numeric entity that is out of range: > 0x10FFFF ... ok -test_html_entities15_invalid_numeric_out_of_range_4 (tests.test_roundtripping.TestRoundtripping) +test_html_entities15_invalid_numeric_out_of_range_4 (tests.test_pytokenizer.TestPyTokenizer) a hex numeric entity that is out of range: > 0x10FFFF ... ok -test_html_entities16_invalid_partial_amp (tests.test_roundtripping.TestRoundtripping) +test_html_entities16_invalid_partial_amp (tests.test_pytokenizer.TestPyTokenizer) invalid entities: just an ampersand ... ok -test_html_entities17_invalid_partial_amp_semicolon (tests.test_roundtripping.TestRoundtripping) +test_html_entities17_invalid_partial_amp_semicolon (tests.test_pytokenizer.TestPyTokenizer) invalid entities: an ampersand and semicolon ... ok -test_html_entities18_invalid_partial_amp_pound (tests.test_roundtripping.TestRoundtripping) +test_html_entities18_invalid_partial_amp_pound (tests.test_pytokenizer.TestPyTokenizer) invalid entities: just an ampersand, pound sign ... ok -test_html_entities19_invalid_partial_amp_pound_x (tests.test_roundtripping.TestRoundtripping) +test_html_entities19_invalid_partial_amp_pound_x (tests.test_pytokenizer.TestPyTokenizer) invalid entities: just an ampersand, pound sign, x ... ok -test_html_entities20_invalid_partial_amp_pound_semicolon (tests.test_roundtripping.TestRoundtripping) +test_html_entities20_invalid_partial_amp_pound_semicolon (tests.test_pytokenizer.TestPyTokenizer) invalid entities: an ampersand, pound sign, and semicolon ... ok -test_html_entities21_invalid_partial_amp_pound_x_semicolon (tests.test_roundtripping.TestRoundtripping) +test_html_entities21_invalid_partial_amp_pound_x_semicolon (tests.test_pytokenizer.TestPyTokenizer) invalid entities: an ampersand, pound sign, x, and semicolon ... ok -test_html_entities22_invalid_partial_amp_pound_numbers (tests.test_roundtripping.TestRoundtripping) +test_html_entities22_invalid_partial_amp_pound_numbers (tests.test_pytokenizer.TestPyTokenizer) invalid entities: an ampersand, pound sign, numbers ... ok -test_html_entities23_invalid_partial_amp_pound_x_semicolon (tests.test_roundtripping.TestRoundtripping) +test_html_entities23_invalid_partial_amp_pound_x_semicolon (tests.test_pytokenizer.TestPyTokenizer) invalid entities: an ampersand, pound sign, and x ... ok -test_integration01_empty (tests.test_roundtripping.TestRoundtripping) +test_integration01_empty (tests.test_pytokenizer.TestPyTokenizer) sanity check that parsing an empty string yields nothing ... ok -test_integration02_template_argument_mix (tests.test_roundtripping.TestRoundtripping) +test_integration02_template_argument_mix (tests.test_pytokenizer.TestPyTokenizer) an ambiguous mix of templates and arguments ... ok -test_integration03_link_in_template_name (tests.test_roundtripping.TestRoundtripping) +test_integration03_link_in_template_name (tests.test_pytokenizer.TestPyTokenizer) a wikilink inside a template name, which breaks the template ... ok -test_integration04_rich_heading (tests.test_roundtripping.TestRoundtripping) +test_integration04_rich_heading (tests.test_pytokenizer.TestPyTokenizer) a heading with templates/wikilinks in it ... ok -test_integration05_html_entity_with_template (tests.test_roundtripping.TestRoundtripping) +test_integration05_html_entity_with_template (tests.test_pytokenizer.TestPyTokenizer) a HTML entity with a template embedded inside ... ok -test_integration06_html_entity_with_comment (tests.test_roundtripping.TestRoundtripping) +test_integration06_html_entity_with_comment (tests.test_pytokenizer.TestPyTokenizer) a HTML entity with a comment embedded inside ... ok -test_integration07_rich_tags (tests.test_roundtripping.TestRoundtripping) +test_integration07_rich_tags (tests.test_pytokenizer.TestPyTokenizer) a HTML tag with tons of other things in it ... ok -test_integration08_wildcard (tests.test_roundtripping.TestRoundtripping) +test_integration08_wildcard (tests.test_pytokenizer.TestPyTokenizer) a wildcard assortment of various things ... ok -test_integration09_wildcard_redux (tests.test_roundtripping.TestRoundtripping) +test_integration09_wildcard_redux (tests.test_pytokenizer.TestPyTokenizer) an even wilder assortment of various things ... ok -test_integration10_link_inside_dl (tests.test_roundtripping.TestRoundtripping) +test_integration10_link_inside_dl (tests.test_pytokenizer.TestPyTokenizer) an external link inside a def list, such that the external link is parsed ... ok -test_integration11_link_inside_dl_2 (tests.test_roundtripping.TestRoundtripping) +test_integration11_link_inside_dl_2 (tests.test_pytokenizer.TestPyTokenizer) an external link inside a def list, such that the external link is not parsed ... ok -test_integration12_link_inside_template (tests.test_roundtripping.TestRoundtripping) +test_integration12_link_inside_template (tests.test_pytokenizer.TestPyTokenizer) an external link nested inside a template, before the end ... ok -test_integration13_link_inside_template_2 (tests.test_roundtripping.TestRoundtripping) +test_integration13_link_inside_template_2 (tests.test_pytokenizer.TestPyTokenizer) an external link nested inside a template, before a separator ... ok -test_integration14_link_inside_template_3 (tests.test_roundtripping.TestRoundtripping) +test_integration14_link_inside_template_3 (tests.test_pytokenizer.TestPyTokenizer) an external link nested inside a template, before an equal sign ... ok -test_integration15_link_inside_argument (tests.test_roundtripping.TestRoundtripping) +test_integration15_link_inside_argument (tests.test_pytokenizer.TestPyTokenizer) an external link nested inside an argument ... ok -test_integration16_link_inside_heading (tests.test_roundtripping.TestRoundtripping) +test_integration16_link_inside_heading (tests.test_pytokenizer.TestPyTokenizer) an external link nested inside a heading ... ok -test_integration17_link_inside_tag_body (tests.test_roundtripping.TestRoundtripping) +test_integration17_link_inside_tag_body (tests.test_pytokenizer.TestPyTokenizer) an external link nested inside the body of a tag ... ok -test_integration18_link_inside_tag_style (tests.test_roundtripping.TestRoundtripping) +test_integration18_link_inside_tag_style (tests.test_pytokenizer.TestPyTokenizer) an external link nested inside style tags ... ok -test_integration19_style_tag_inside_link (tests.test_roundtripping.TestRoundtripping) +test_integration19_style_tag_inside_link (tests.test_pytokenizer.TestPyTokenizer) style tags disrupting an external link ... ok -test_integration20_comment_inside_link (tests.test_roundtripping.TestRoundtripping) +test_integration20_comment_inside_link (tests.test_pytokenizer.TestPyTokenizer) an HTML comment inside an external link ... ok -test_integration21_bracketed_link_inside_template (tests.test_roundtripping.TestRoundtripping) +test_integration21_bracketed_link_inside_template (tests.test_pytokenizer.TestPyTokenizer) a bracketed external link nested inside a template, before the end ... ok -test_integration22_comment_inside_bracketed_link (tests.test_roundtripping.TestRoundtripping) +test_integration22_comment_inside_bracketed_link (tests.test_pytokenizer.TestPyTokenizer) an HTML comment inside a bracketed external link ... ok -test_integration23_wikilink_inside_external_link (tests.test_roundtripping.TestRoundtripping) +test_integration23_wikilink_inside_external_link (tests.test_pytokenizer.TestPyTokenizer) a wikilink inside an external link, which the parser considers valid (see issue #61) ... ok -test_integration24_external_link_inside_wikilink (tests.test_roundtripping.TestRoundtripping) +test_integration24_external_link_inside_wikilink (tests.test_pytokenizer.TestPyTokenizer) an external link inside a wikilink, valid in the case of images (see issue #62) ... ok -test_integration25_external_link_inside_wikilink_brackets (tests.test_roundtripping.TestRoundtripping) +test_integration25_external_link_inside_wikilink_brackets (tests.test_pytokenizer.TestPyTokenizer) an external link with brackets inside a wikilink ... ok -test_integration26_external_link_inside_wikilink_title (tests.test_roundtripping.TestRoundtripping) +test_integration26_external_link_inside_wikilink_title (tests.test_pytokenizer.TestPyTokenizer) an external link inside a wikilink title, which is not parsed ... ok -test_integration27_italics_inside_external_link_inside_incomplete_list (tests.test_roundtripping.TestRoundtripping) +test_integration27_italics_inside_external_link_inside_incomplete_list (tests.test_pytokenizer.TestPyTokenizer) italic text inside an external link inside an incomplete list ... ok -test_integration28_nodes_inside_external_link_after_punct (tests.test_roundtripping.TestRoundtripping) +test_integration28_nodes_inside_external_link_after_punct (tests.test_pytokenizer.TestPyTokenizer) various complex nodes inside an external link following punctuation ... ok -test_integration29_newline_and_comment_in_template_name (tests.test_roundtripping.TestRoundtripping) +test_integration29_newline_and_comment_in_template_name (tests.test_pytokenizer.TestPyTokenizer) a template name containing a newline followed by a comment ... ok -test_integration30_newline_and_comment_in_template_name_2 (tests.test_roundtripping.TestRoundtripping) +test_integration30_newline_and_comment_in_template_name_2 (tests.test_pytokenizer.TestPyTokenizer) a template name containing a newline followed by a comment ... ok -test_integration31_newline_and_comment_in_template_name_3 (tests.test_roundtripping.TestRoundtripping) +test_integration31_newline_and_comment_in_template_name_3 (tests.test_pytokenizer.TestPyTokenizer) a template name containing a newline followed by a comment ... ok -test_integration32_newline_and_comment_in_template_name_4 (tests.test_roundtripping.TestRoundtripping) +test_integration32_newline_and_comment_in_template_name_4 (tests.test_pytokenizer.TestPyTokenizer) a template name containing a newline followed by a comment ... ok -test_integration33_newline_and_comment_in_template_name_5 (tests.test_roundtripping.TestRoundtripping) +test_integration33_newline_and_comment_in_template_name_5 (tests.test_pytokenizer.TestPyTokenizer) a template name containing a newline followed by a comment ... ok -test_integration34_newline_and_comment_in_template_name_6 (tests.test_roundtripping.TestRoundtripping) +test_integration34_newline_and_comment_in_template_name_6 (tests.test_pytokenizer.TestPyTokenizer) a template name containing a newline followed by a comment ... ok -test_integration35_newline_and_comment_in_template_name_7 (tests.test_roundtripping.TestRoundtripping) +test_integration35_newline_and_comment_in_template_name_7 (tests.test_pytokenizer.TestPyTokenizer) a template name containing a newline followed by a comment ... ok -test_integration36_newline_and_comment_in_template_name_8 (tests.test_roundtripping.TestRoundtripping) +test_integration36_newline_and_comment_in_template_name_8 (tests.test_pytokenizer.TestPyTokenizer) a template name containing a newline followed by a comment ... ok -test_integration37_tag_in_link_title (tests.test_roundtripping.TestRoundtripping) +test_integration37_tag_in_link_title (tests.test_pytokenizer.TestPyTokenizer) HTML tags are invalid in link titles, even when complete ... ok -test_integration38_tag_in_template_name (tests.test_roundtripping.TestRoundtripping) +test_integration38_tag_in_template_name (tests.test_pytokenizer.TestPyTokenizer) HTML tags are invalid in template names, even when complete ... ok -test_integration39_tag_in_link_text (tests.test_roundtripping.TestRoundtripping) +test_integration39_tag_in_link_text (tests.test_pytokenizer.TestPyTokenizer) HTML tags are valid in link text ... ok -test_integration40_comment_in_link_title (tests.test_roundtripping.TestRoundtripping) +test_integration40_comment_in_link_title (tests.test_pytokenizer.TestPyTokenizer) comments are valid in link titles ... ok -test_integration41_incomplete_comment_in_link_title (tests.test_roundtripping.TestRoundtripping) +test_integration41_incomplete_comment_in_link_title (tests.test_pytokenizer.TestPyTokenizer) incomplete comments are invalid in link titles ... ok -test_integration42_incomplete_comment_in_link_title_2 (tests.test_roundtripping.TestRoundtripping) +test_integration42_incomplete_comment_in_link_title_2 (tests.test_pytokenizer.TestPyTokenizer) incomplete comments are invalid in link titles ... ok -test_integration43_incomplete_comment_in_link_title_3 (tests.test_roundtripping.TestRoundtripping) +test_integration43_incomplete_comment_in_link_title_3 (tests.test_pytokenizer.TestPyTokenizer) incomplete comments are invalid in link titles ... ok -test_integration44_incomplete_comment_in_link_title_4 (tests.test_roundtripping.TestRoundtripping) +test_integration44_incomplete_comment_in_link_title_4 (tests.test_pytokenizer.TestPyTokenizer) incomplete comments are invalid in link titles ... ok -test_integration45_incomplete_comment_in_link_title_5 (tests.test_roundtripping.TestRoundtripping) +test_integration45_incomplete_comment_in_link_title_5 (tests.test_pytokenizer.TestPyTokenizer) incomplete comments are invalid in link titles ... ok -test_integration46_incomplete_comment_in_link_title_6 (tests.test_roundtripping.TestRoundtripping) +test_integration46_incomplete_comment_in_link_title_6 (tests.test_pytokenizer.TestPyTokenizer) incomplete comments are invalid in link titles ... ok -test_integration47_wikilink_to_external_link_fallback (tests.test_roundtripping.TestRoundtripping) +test_integration47_wikilink_to_external_link_fallback (tests.test_pytokenizer.TestPyTokenizer) an external link enclosed in an extra pair of brackets (see issue #120) ... ok -test_integration48_wikilink_to_external_link_fallback_2 (tests.test_roundtripping.TestRoundtripping) +test_integration48_wikilink_to_external_link_fallback_2 (tests.test_pytokenizer.TestPyTokenizer) an external link enclosed in an extra pair of brackets (see issue #120) ... ok -test_integration49_tables_in_templates (tests.test_roundtripping.TestRoundtripping) +test_integration49_tables_in_templates (tests.test_pytokenizer.TestPyTokenizer) catch error handling mistakes when wikitables are inside templates ... ok -test_integration50_tables_in_templates_2 (tests.test_roundtripping.TestRoundtripping) +test_integration50_tables_in_templates_2 (tests.test_pytokenizer.TestPyTokenizer) catch error handling mistakes when wikitables are inside templates ... ok -test_integration51_many_invalid_nested_tags (tests.test_roundtripping.TestRoundtripping) +test_integration51_many_invalid_nested_tags (tests.test_pytokenizer.TestPyTokenizer) many unending nested tags that should be treated as plain text, followed by valid wikitext (see issues #42, #183) ... ok -test_tables01_empty_table (tests.test_roundtripping.TestRoundtripping) +test_tables01_empty_table (tests.test_pytokenizer.TestPyTokenizer) parsing an empty table ... ok -test_tables02_inline_table (tests.test_roundtripping.TestRoundtripping) +test_tables02_inline_table (tests.test_pytokenizer.TestPyTokenizer) tables with a close on the same line are not valid ... ok -test_tables03_no_table_close_simple (tests.test_roundtripping.TestRoundtripping) +test_tables03_no_table_close_simple (tests.test_pytokenizer.TestPyTokenizer) no table close on inline table ... ok -test_tables04_no_table_close_newline (tests.test_roundtripping.TestRoundtripping) +test_tables04_no_table_close_newline (tests.test_pytokenizer.TestPyTokenizer) no table close with a newline ... ok -test_tables05_no_table_close_inside_cell (tests.test_roundtripping.TestRoundtripping) +test_tables05_no_table_close_inside_cell (tests.test_pytokenizer.TestPyTokenizer) no table close while inside of a cell ... ok -test_tables06_no_table_close_inside_cell_after_newline (tests.test_roundtripping.TestRoundtripping) +test_tables06_no_table_close_inside_cell_after_newline (tests.test_pytokenizer.TestPyTokenizer) no table close while inside of a cell after a newline ... ok -test_tables07_no_table_close_inside_cell_with_attributes (tests.test_roundtripping.TestRoundtripping) +test_tables07_no_table_close_inside_cell_with_attributes (tests.test_pytokenizer.TestPyTokenizer) no table close while inside of a cell with attributes ... ok -test_tables08_no_table_close_inside_row (tests.test_roundtripping.TestRoundtripping) +test_tables08_no_table_close_inside_row (tests.test_pytokenizer.TestPyTokenizer) no table close while inside of a row ... ok -test_tables09_no_table_close_inside_row_after_newline (tests.test_roundtripping.TestRoundtripping) +test_tables09_no_table_close_inside_row_after_newline (tests.test_pytokenizer.TestPyTokenizer) no table close while inside of a row after a newline ... ok -test_tables10_no_table_close_row_and_cell (tests.test_roundtripping.TestRoundtripping) +test_tables10_no_table_close_row_and_cell (tests.test_pytokenizer.TestPyTokenizer) no table close while inside a cell inside a row ... ok -test_tables11_no_table_close_attributes (tests.test_roundtripping.TestRoundtripping) +test_tables11_no_table_close_attributes (tests.test_pytokenizer.TestPyTokenizer) don't parse attributes as attributes if the table doesn't exist ... ok -test_tables12_no_table_close_unclosed_attributes (tests.test_roundtripping.TestRoundtripping) +test_tables12_no_table_close_unclosed_attributes (tests.test_pytokenizer.TestPyTokenizer) don't parse unclosed attributes if the table doesn't exist ... ok -test_tables13_no_table_close_row_attributes (tests.test_roundtripping.TestRoundtripping) +test_tables13_no_table_close_row_attributes (tests.test_pytokenizer.TestPyTokenizer) don't parse row attributes as attributes if the table doesn't exist ... ok -test_tables14_no_table_close_cell (tests.test_roundtripping.TestRoundtripping) +test_tables14_no_table_close_cell (tests.test_pytokenizer.TestPyTokenizer) don't parse cells if the table doesn't close ... ok -test_tables15_crazy_no_table_close (tests.test_roundtripping.TestRoundtripping) +test_tables15_crazy_no_table_close (tests.test_pytokenizer.TestPyTokenizer) lots of opened wiki syntax without closes ... ok -test_tables16_leading_whitespace_table (tests.test_roundtripping.TestRoundtripping) +test_tables16_leading_whitespace_table (tests.test_pytokenizer.TestPyTokenizer) handle leading whitespace for a table ... ok -test_tables17_whitespace_after_table (tests.test_roundtripping.TestRoundtripping) +test_tables17_whitespace_after_table (tests.test_pytokenizer.TestPyTokenizer) handle whitespace after a table close ... ok -test_tables18_different_whitespace_after_table (tests.test_roundtripping.TestRoundtripping) +test_tables18_different_whitespace_after_table (tests.test_pytokenizer.TestPyTokenizer) handle spaces after a table close ... ok -test_tables19_characters_after_table (tests.test_roundtripping.TestRoundtripping) +test_tables19_characters_after_table (tests.test_pytokenizer.TestPyTokenizer) handle characters after a table close ... ok -test_tables20_characters_after_inline_table (tests.test_roundtripping.TestRoundtripping) +test_tables20_characters_after_inline_table (tests.test_pytokenizer.TestPyTokenizer) handle characters after an inline table close ... ok -test_tables21_leading_characters_table (tests.test_roundtripping.TestRoundtripping) +test_tables21_leading_characters_table (tests.test_pytokenizer.TestPyTokenizer) don't parse as a table when leading characters are not newline or whitespace ... ok -test_tables22_table_row_simple (tests.test_roundtripping.TestRoundtripping) +test_tables22_table_row_simple (tests.test_pytokenizer.TestPyTokenizer) simple table row ... ok -test_tables23_table_row_multiple (tests.test_roundtripping.TestRoundtripping) +test_tables23_table_row_multiple (tests.test_pytokenizer.TestPyTokenizer) simple table row ... ok -test_tables24_table_cell_simple (tests.test_roundtripping.TestRoundtripping) +test_tables24_table_cell_simple (tests.test_pytokenizer.TestPyTokenizer) simple table cell ... ok -test_tables25_table_cell_inline (tests.test_roundtripping.TestRoundtripping) +test_tables25_table_cell_inline (tests.test_pytokenizer.TestPyTokenizer) multiple inline table cells ... ok -test_tables26_table_cell_multiple (tests.test_roundtripping.TestRoundtripping) +test_tables26_table_cell_multiple (tests.test_pytokenizer.TestPyTokenizer) multiple table cells (non-inline) ... ok -test_tables27_table_header_simple (tests.test_roundtripping.TestRoundtripping) +test_tables27_table_header_simple (tests.test_pytokenizer.TestPyTokenizer) simple header cell ... ok -test_tables28_table_header_inline (tests.test_roundtripping.TestRoundtripping) +test_tables28_table_header_inline (tests.test_pytokenizer.TestPyTokenizer) multiple inline header cells ... ok -test_tables29_table_header_multiple (tests.test_roundtripping.TestRoundtripping) +test_tables29_table_header_multiple (tests.test_pytokenizer.TestPyTokenizer) multiple table header cells (non-inline) ... ok -test_tables30_nested_cells_and_rows (tests.test_roundtripping.TestRoundtripping) +test_tables30_nested_cells_and_rows (tests.test_pytokenizer.TestPyTokenizer) combination of cells and rows in a table ... ok -test_tables31_table_cell_fake_close (tests.test_roundtripping.TestRoundtripping) +test_tables31_table_cell_fake_close (tests.test_pytokenizer.TestPyTokenizer) looks like a table close but is not ... ok -test_tables32_table_cell_more_fake_close (tests.test_roundtripping.TestRoundtripping) +test_tables32_table_cell_more_fake_close (tests.test_pytokenizer.TestPyTokenizer) looks like a table close but is not ... ok -test_tables33_table_cell_extra_close (tests.test_roundtripping.TestRoundtripping) +test_tables33_table_cell_extra_close (tests.test_pytokenizer.TestPyTokenizer) process second close as text ... ok -test_tables34_nowiki_inside_table (tests.test_roundtripping.TestRoundtripping) +test_tables34_nowiki_inside_table (tests.test_pytokenizer.TestPyTokenizer) nowiki handles pipe characters in tables ... ok -test_tables35_table_text_outside_cell (tests.test_roundtripping.TestRoundtripping) +test_tables35_table_text_outside_cell (tests.test_pytokenizer.TestPyTokenizer) parse text inside table but outside of a cell ... ok -test_tables36_no_table_cell_with_leading_characters (tests.test_roundtripping.TestRoundtripping) +test_tables36_no_table_cell_with_leading_characters (tests.test_pytokenizer.TestPyTokenizer) fail to create a table cell when there are leading non-whitespace characters ... ok -test_tables37_no_table_row_with_leading_characters (tests.test_roundtripping.TestRoundtripping) +test_tables37_no_table_row_with_leading_characters (tests.test_pytokenizer.TestPyTokenizer) fail to create a table row when there are leading non-whitespace characters ... ok -test_tables38_template_inside_table_cell (tests.test_roundtripping.TestRoundtripping) +test_tables38_template_inside_table_cell (tests.test_pytokenizer.TestPyTokenizer) template within table cell ... ok -test_tables39_table_cell_attributes (tests.test_roundtripping.TestRoundtripping) +test_tables39_table_cell_attributes (tests.test_pytokenizer.TestPyTokenizer) parse table cell style attributes ... ok -test_tables40_table_cell_empty_attributes (tests.test_roundtripping.TestRoundtripping) +test_tables40_table_cell_empty_attributes (tests.test_pytokenizer.TestPyTokenizer) parse table cell with style markers but no attributes ... ok -test_tables41_table_cell_with_dash (tests.test_roundtripping.TestRoundtripping) +test_tables41_table_cell_with_dash (tests.test_pytokenizer.TestPyTokenizer) parse a situation in which a cell line looks like a row line ... ok -test_tables42_table_cell_attributes_quote_with_pipe (tests.test_roundtripping.TestRoundtripping) +test_tables42_table_cell_attributes_quote_with_pipe (tests.test_pytokenizer.TestPyTokenizer) pipe inside an attribute quote should still be used as a style separator ... ok -test_tables43_table_cell_attributes_name_with_pipe (tests.test_roundtripping.TestRoundtripping) +test_tables43_table_cell_attributes_name_with_pipe (tests.test_pytokenizer.TestPyTokenizer) pipe inside an attribute name should still be used as a style separator ... ok -test_tables44_table_cell_attributes_pipe_after_equals (tests.test_roundtripping.TestRoundtripping) +test_tables44_table_cell_attributes_pipe_after_equals (tests.test_pytokenizer.TestPyTokenizer) pipe inside an attribute should still be used as a style separator after an equals ... ok -test_tables45_table_cell_attributes_templates (tests.test_roundtripping.TestRoundtripping) +test_tables45_table_cell_attributes_templates (tests.test_pytokenizer.TestPyTokenizer) pipe inside attributes shouldn't be style separator ... ok -test_tables46_header_cell_attributes (tests.test_roundtripping.TestRoundtripping) +test_tables46_header_cell_attributes (tests.test_pytokenizer.TestPyTokenizer) parse header cell style attributes ... ok -test_tables47_inline_cell_attributes (tests.test_roundtripping.TestRoundtripping) +test_tables47_inline_cell_attributes (tests.test_pytokenizer.TestPyTokenizer) parse cell style attributes of inline cells ... ok -test_tables48_table_row_attributes (tests.test_roundtripping.TestRoundtripping) +test_tables48_table_row_attributes (tests.test_pytokenizer.TestPyTokenizer) parse table row style attributes ... ok -test_tables49_table_row_attributes_crazy_whitespace (tests.test_roundtripping.TestRoundtripping) +test_tables49_table_row_attributes_crazy_whitespace (tests.test_pytokenizer.TestPyTokenizer) parse table row style attributes with different whitespace ... ok -test_tables50_table_attributes (tests.test_roundtripping.TestRoundtripping) +test_tables50_table_attributes (tests.test_pytokenizer.TestPyTokenizer) parse table style attributes ... ok -test_tables51_inline_table_attributes (tests.test_roundtripping.TestRoundtripping) +test_tables51_inline_table_attributes (tests.test_pytokenizer.TestPyTokenizer) handle attributes in inline tables ... ok -test_tables52_table_incorrect_attributes (tests.test_roundtripping.TestRoundtripping) +test_tables52_table_incorrect_attributes (tests.test_pytokenizer.TestPyTokenizer) parse incorrect table style attributes ... ok -test_tables53_templates_in_table_attribute (tests.test_roundtripping.TestRoundtripping) +test_tables53_templates_in_table_attribute (tests.test_pytokenizer.TestPyTokenizer) templates in the attributes of a table, after the start ... ok -test_tables54_templates_in_table_attribute_2 (tests.test_roundtripping.TestRoundtripping) +test_tables54_templates_in_table_attribute_2 (tests.test_pytokenizer.TestPyTokenizer) templates in the attributes of a table, after the start ... ok -test_tables55_inappropriate_marker_at_line_start (tests.test_roundtripping.TestRoundtripping) +test_tables55_inappropriate_marker_at_line_start (tests.test_pytokenizer.TestPyTokenizer) an inappropriate marker (a right bracket) at the start of a line in the table ... ok -test_tables56_fake_close_near_start (tests.test_roundtripping.TestRoundtripping) +test_tables56_fake_close_near_start (tests.test_pytokenizer.TestPyTokenizer) a fake closing token at the end of the first line in the table ... ok -test_tables57_fake_close_near_start_2 (tests.test_roundtripping.TestRoundtripping) +test_tables57_fake_close_near_start_2 (tests.test_pytokenizer.TestPyTokenizer) a fake closing token at the end of the first line in the table ... ok -test_tables58_junk_after_table_start (tests.test_roundtripping.TestRoundtripping) +test_tables58_junk_after_table_start (tests.test_pytokenizer.TestPyTokenizer) ignore more junk on the first line of the table ... ok -test_tables59_junk_after_table_row (tests.test_roundtripping.TestRoundtripping) +test_tables59_junk_after_table_row (tests.test_pytokenizer.TestPyTokenizer) ignore junk on the first line of a table row ... ok -test_tags01_basic (tests.test_roundtripping.TestRoundtripping) +test_tags01_basic (tests.test_pytokenizer.TestPyTokenizer) a basic tag with an open and close ... ok -test_tags02_basic_selfclosing (tests.test_roundtripping.TestRoundtripping) +test_tags02_basic_selfclosing (tests.test_pytokenizer.TestPyTokenizer) a basic self-closing tag ... ok -test_tags03_content (tests.test_roundtripping.TestRoundtripping) +test_tags03_content (tests.test_pytokenizer.TestPyTokenizer) a tag with some content in the middle ... ok -test_tags04_padded_open (tests.test_roundtripping.TestRoundtripping) +test_tags04_padded_open (tests.test_pytokenizer.TestPyTokenizer) a tag with some padding in the open tag ... ok -test_tags05_padded_close (tests.test_roundtripping.TestRoundtripping) +test_tags05_padded_close (tests.test_pytokenizer.TestPyTokenizer) a tag with some padding in the close tag ... ok -test_tags06_padded_selfclosing (tests.test_roundtripping.TestRoundtripping) +test_tags06_padded_selfclosing (tests.test_pytokenizer.TestPyTokenizer) a self-closing tag with padding ... ok -test_tags07_attribute (tests.test_roundtripping.TestRoundtripping) +test_tags07_attribute (tests.test_pytokenizer.TestPyTokenizer) a tag with a single attribute ... ok -test_tags08_attribute_value (tests.test_roundtripping.TestRoundtripping) +test_tags08_attribute_value (tests.test_pytokenizer.TestPyTokenizer) a tag with a single attribute with a value ... ok -test_tags09_attribute_quoted (tests.test_roundtripping.TestRoundtripping) +test_tags09_attribute_quoted (tests.test_pytokenizer.TestPyTokenizer) a tag with a single quoted attribute ... ok -test_tags10_attribute_single_quoted (tests.test_roundtripping.TestRoundtripping) +test_tags10_attribute_single_quoted (tests.test_pytokenizer.TestPyTokenizer) a tag with a single singly-quoted attribute ... ok -test_tags11_attribute_hyphen (tests.test_roundtripping.TestRoundtripping) +test_tags11_attribute_hyphen (tests.test_pytokenizer.TestPyTokenizer) a tag with a single attribute, containing a hyphen ... ok -test_tags12_attribute_quoted_hyphen (tests.test_roundtripping.TestRoundtripping) +test_tags12_attribute_quoted_hyphen (tests.test_pytokenizer.TestPyTokenizer) a tag with a single quoted attribute, containing a hyphen ... ok -test_tags13_attribute_selfclosing (tests.test_roundtripping.TestRoundtripping) +test_tags13_attribute_selfclosing (tests.test_pytokenizer.TestPyTokenizer) a self-closing tag with a single attribute ... ok -test_tags14_attribute_selfclosing_value (tests.test_roundtripping.TestRoundtripping) +test_tags14_attribute_selfclosing_value (tests.test_pytokenizer.TestPyTokenizer) a self-closing tag with a single attribute with a value ... ok -test_tags15_attribute_selfclosing_value_quoted (tests.test_roundtripping.TestRoundtripping) +test_tags15_attribute_selfclosing_value_quoted (tests.test_pytokenizer.TestPyTokenizer) a self-closing tag with a single quoted attribute ... ok -test_tags16_nested_tag (tests.test_roundtripping.TestRoundtripping) +test_tags16_nested_tag (tests.test_pytokenizer.TestPyTokenizer) a tag nested within the attributes of another ... ok -test_tags17_nested_tag_quoted (tests.test_roundtripping.TestRoundtripping) +test_tags17_nested_tag_quoted (tests.test_pytokenizer.TestPyTokenizer) a tag nested within the attributes of another, quoted ... ok -test_tags18_nested_troll_tag (tests.test_roundtripping.TestRoundtripping) +test_tags18_nested_troll_tag (tests.test_pytokenizer.TestPyTokenizer) a bogus tag that appears to be nested within the attributes of another ... ok -test_tags19_nested_troll_tag_quoted (tests.test_roundtripping.TestRoundtripping) +test_tags19_nested_troll_tag_quoted (tests.test_pytokenizer.TestPyTokenizer) a bogus tag that appears to be nested within the attributes of another, quoted ... ok -test_tags20_nested_tag_selfclosing (tests.test_roundtripping.TestRoundtripping) +test_tags20_nested_tag_selfclosing (tests.test_pytokenizer.TestPyTokenizer) a tag nested within the attributes of another; outer tag implicitly self-closing ... ok -test_tags21_invalid_space_begin_open (tests.test_roundtripping.TestRoundtripping) +test_tags21_invalid_space_begin_open (tests.test_pytokenizer.TestPyTokenizer) invalid tag: a space at the beginning of the open tag ... ok -test_tags22_invalid_space_begin_close (tests.test_roundtripping.TestRoundtripping) +test_tags22_invalid_space_begin_close (tests.test_pytokenizer.TestPyTokenizer) invalid tag: a space at the beginning of the close tag ... ok -test_tags23_valid_space_end (tests.test_roundtripping.TestRoundtripping) +test_tags23_valid_space_end (tests.test_pytokenizer.TestPyTokenizer) valid tag: spaces at the ends of both the open and close tags ... ok -test_tags24_invalid_template_ends (tests.test_roundtripping.TestRoundtripping) +test_tags24_invalid_template_ends (tests.test_pytokenizer.TestPyTokenizer) invalid tag: a template at the ends of both the open and close tags ... ok -test_tags25_invalid_template_ends_nospace (tests.test_roundtripping.TestRoundtripping) +test_tags25_invalid_template_ends_nospace (tests.test_pytokenizer.TestPyTokenizer) invalid tag: a template at the ends of both the open and close tags, without spacing ... ok -test_tags26_valid_template_end_open (tests.test_roundtripping.TestRoundtripping) +test_tags26_valid_template_end_open (tests.test_pytokenizer.TestPyTokenizer) valid tag: a template at the end of the open tag ... ok -test_tags27_valid_template_end_open_space_end_close (tests.test_roundtripping.TestRoundtripping) +test_tags27_valid_template_end_open_space_end_close (tests.test_pytokenizer.TestPyTokenizer) valid tag: a template at the end of the open tag; whitespace at the end of the close tag ... ok -test_tags28_invalid_template_end_open_nospace (tests.test_roundtripping.TestRoundtripping) +test_tags28_invalid_template_end_open_nospace (tests.test_pytokenizer.TestPyTokenizer) invalid tag: a template at the end of the open tag, without spacing ... ok -test_tags29_invalid_template_start_close (tests.test_roundtripping.TestRoundtripping) +test_tags29_invalid_template_start_close (tests.test_pytokenizer.TestPyTokenizer) invalid tag: a template at the beginning of the close tag ... ok -test_tags30_invalid_template_start_open (tests.test_roundtripping.TestRoundtripping) +test_tags30_invalid_template_start_open (tests.test_pytokenizer.TestPyTokenizer) invalid tag: a template at the beginning of the open tag ... ok -test_tags31_unclosed_quote (tests.test_roundtripping.TestRoundtripping) +test_tags31_unclosed_quote (tests.test_pytokenizer.TestPyTokenizer) a quoted attribute that is never closed ... ok -test_tags32_fake_quote (tests.test_roundtripping.TestRoundtripping) +test_tags32_fake_quote (tests.test_pytokenizer.TestPyTokenizer) a fake quoted attribute ... ok -test_tags33_fake_quote_complex (tests.test_roundtripping.TestRoundtripping) +test_tags33_fake_quote_complex (tests.test_pytokenizer.TestPyTokenizer) a fake quoted attribute, with spaces and templates and links ... ok -test_tags34_quotes_in_quotes (tests.test_roundtripping.TestRoundtripping) +test_tags34_quotes_in_quotes (tests.test_pytokenizer.TestPyTokenizer) singly-quoted text inside a doubly-quoted attribute ... ok -test_tags35_quotes_in_quotes_2 (tests.test_roundtripping.TestRoundtripping) +test_tags35_quotes_in_quotes_2 (tests.test_pytokenizer.TestPyTokenizer) doubly-quoted text inside a singly-quoted attribute ... ok -test_tags36_quotes_in_quotes_3 (tests.test_roundtripping.TestRoundtripping) +test_tags36_quotes_in_quotes_3 (tests.test_pytokenizer.TestPyTokenizer) doubly-quoted text inside a singly-quoted attribute, with backslashes ... ok -test_tags37_incomplete_lbracket (tests.test_roundtripping.TestRoundtripping) +test_tags37_incomplete_lbracket (tests.test_pytokenizer.TestPyTokenizer) incomplete tags: just a left bracket ... ok -test_tags38_incomplete_lbracket_junk (tests.test_roundtripping.TestRoundtripping) +test_tags38_incomplete_lbracket_junk (tests.test_pytokenizer.TestPyTokenizer) incomplete tags: just a left bracket, surrounded by stuff ... ok -test_tags39_incomplete_unclosed_open (tests.test_roundtripping.TestRoundtripping) +test_tags39_incomplete_unclosed_open (tests.test_pytokenizer.TestPyTokenizer) incomplete tags: an unclosed open tag ... ok -test_tags40_incomplete_unclosed_open_space (tests.test_roundtripping.TestRoundtripping) +test_tags40_incomplete_unclosed_open_space (tests.test_pytokenizer.TestPyTokenizer) incomplete tags: an unclosed open tag, space ... ok -test_tags41_incomplete_unclosed_open_unnamed_attr (tests.test_roundtripping.TestRoundtripping) +test_tags41_incomplete_unclosed_open_unnamed_attr (tests.test_pytokenizer.TestPyTokenizer) incomplete tags: an unclosed open tag, unnamed attribute ... ok -test_tags42_incomplete_unclosed_open_attr_equals (tests.test_roundtripping.TestRoundtripping) +test_tags42_incomplete_unclosed_open_attr_equals (tests.test_pytokenizer.TestPyTokenizer) incomplete tags: an unclosed open tag, attribute, equal sign ... ok -test_tags43_incomplete_unclosed_open_attr_equals_quoted (tests.test_roundtripping.TestRoundtripping) +test_tags43_incomplete_unclosed_open_attr_equals_quoted (tests.test_pytokenizer.TestPyTokenizer) incomplete tags: an unclosed open tag, attribute, equal sign, quote ... ok -test_tags44_incomplete_unclosed_open_attr (tests.test_roundtripping.TestRoundtripping) +test_tags44_incomplete_unclosed_open_attr (tests.test_pytokenizer.TestPyTokenizer) incomplete tags: an unclosed open tag, attribute with a key/value ... ok -test_tags45_incomplete_unclosed_open_attr_quoted (tests.test_roundtripping.TestRoundtripping) +test_tags45_incomplete_unclosed_open_attr_quoted (tests.test_pytokenizer.TestPyTokenizer) incomplete tags: an unclosed open tag, attribute with a key/value, quoted ... ok -test_tags46_incomplete_open (tests.test_roundtripping.TestRoundtripping) +test_tags46_incomplete_open (tests.test_pytokenizer.TestPyTokenizer) incomplete tags: an open tag ... ok -test_tags47_incomplete_open_unnamed_attr (tests.test_roundtripping.TestRoundtripping) +test_tags47_incomplete_open_unnamed_attr (tests.test_pytokenizer.TestPyTokenizer) incomplete tags: an open tag, unnamed attribute ... ok -test_tags48_incomplete_open_attr_equals (tests.test_roundtripping.TestRoundtripping) +test_tags48_incomplete_open_attr_equals (tests.test_pytokenizer.TestPyTokenizer) incomplete tags: an open tag, attribute, equal sign ... ok -test_tags49_incomplete_open_attr (tests.test_roundtripping.TestRoundtripping) +test_tags49_incomplete_open_attr (tests.test_pytokenizer.TestPyTokenizer) incomplete tags: an open tag, attribute with a key/value ... ok -test_tags50_incomplete_open_attr_quoted (tests.test_roundtripping.TestRoundtripping) +test_tags50_incomplete_open_attr_quoted (tests.test_pytokenizer.TestPyTokenizer) incomplete tags: an open tag, attribute with a key/value, quoted ... ok -test_tags51_incomplete_open_text (tests.test_roundtripping.TestRoundtripping) +test_tags51_incomplete_open_text (tests.test_pytokenizer.TestPyTokenizer) incomplete tags: an open tag, text ... ok -test_tags52_incomplete_open_attr_text (tests.test_roundtripping.TestRoundtripping) +test_tags52_incomplete_open_attr_text (tests.test_pytokenizer.TestPyTokenizer) incomplete tags: an open tag, attribute with a key/value, text ... ok -test_tags53_incomplete_open_text_lbracket (tests.test_roundtripping.TestRoundtripping) +test_tags53_incomplete_open_text_lbracket (tests.test_pytokenizer.TestPyTokenizer) incomplete tags: an open tag, text, left open bracket ... ok -test_tags54_incomplete_open_text_lbracket_slash (tests.test_roundtripping.TestRoundtripping) +test_tags54_incomplete_open_text_lbracket_slash (tests.test_pytokenizer.TestPyTokenizer) incomplete tags: an open tag, text, left bracket, slash ... ok -test_tags55_incomplete_open_text_unclosed_close (tests.test_roundtripping.TestRoundtripping) +test_tags55_incomplete_open_text_unclosed_close (tests.test_pytokenizer.TestPyTokenizer) incomplete tags: an open tag, text, unclosed close ... ok -test_tags56_incomplete_open_text_wrong_close (tests.test_roundtripping.TestRoundtripping) +test_tags56_incomplete_open_text_wrong_close (tests.test_pytokenizer.TestPyTokenizer) incomplete tags: an open tag, text, wrong close ... ok -test_tags57_incomplete_unclosed_close (tests.test_roundtripping.TestRoundtripping) +test_tags57_incomplete_unclosed_close (tests.test_pytokenizer.TestPyTokenizer) incomplete tags: an unclosed close tag ... ok -test_tags58_incomplete_unclosed_close_text (tests.test_roundtripping.TestRoundtripping) +test_tags58_incomplete_unclosed_close_text (tests.test_pytokenizer.TestPyTokenizer) incomplete tags: an unclosed close tag, with text ... ok -test_tags59_incomplete_close (tests.test_roundtripping.TestRoundtripping) +test_tags59_incomplete_close (tests.test_pytokenizer.TestPyTokenizer) incomplete tags: a close tag ... ok -test_tags60_incomplete_no_tag_name_open (tests.test_roundtripping.TestRoundtripping) +test_tags60_incomplete_no_tag_name_open (tests.test_pytokenizer.TestPyTokenizer) incomplete tags: no tag name within brackets; just an open ... ok -test_tags61_incomplete_no_tag_name_selfclosing (tests.test_roundtripping.TestRoundtripping) +test_tags61_incomplete_no_tag_name_selfclosing (tests.test_pytokenizer.TestPyTokenizer) incomplete tags: no tag name within brackets; self-closing ... ok -test_tags62_incomplete_no_tag_name_open_close (tests.test_roundtripping.TestRoundtripping) +test_tags62_incomplete_no_tag_name_open_close (tests.test_pytokenizer.TestPyTokenizer) incomplete tags: no tag name within brackets; open and close ... ok -test_tags63_backslash_premature_before (tests.test_roundtripping.TestRoundtripping) +test_tags63_backslash_premature_before (tests.test_pytokenizer.TestPyTokenizer) a backslash before a quote before a space ... ok -test_tags64_backslash_premature_after (tests.test_roundtripping.TestRoundtripping) +test_tags64_backslash_premature_after (tests.test_pytokenizer.TestPyTokenizer) a backslash before a quote after a space ... ok -test_tags65_backslash_premature_middle (tests.test_roundtripping.TestRoundtripping) +test_tags65_backslash_premature_middle (tests.test_pytokenizer.TestPyTokenizer) a backslash before a quote in the middle of a word ... ok -test_tags66_backslash_adjacent (tests.test_roundtripping.TestRoundtripping) +test_tags66_backslash_adjacent (tests.test_pytokenizer.TestPyTokenizer) escaped quotes next to unescaped quotes ... ok -test_tags67_backslash_endquote (tests.test_roundtripping.TestRoundtripping) +test_tags67_backslash_endquote (tests.test_pytokenizer.TestPyTokenizer) backslashes before the end quote, causing the attribute to become unquoted ... ok -test_tags68_backslash_double (tests.test_roundtripping.TestRoundtripping) +test_tags68_backslash_double (tests.test_pytokenizer.TestPyTokenizer) two adjacent backslashes, which do *not* affect the quote ... ok -test_tags69_backslash_triple (tests.test_roundtripping.TestRoundtripping) +test_tags69_backslash_triple (tests.test_pytokenizer.TestPyTokenizer) three adjacent backslashes, which do *not* affect the quote ... ok -test_tags70_backslash_unaffecting (tests.test_roundtripping.TestRoundtripping) +test_tags70_backslash_unaffecting (tests.test_pytokenizer.TestPyTokenizer) backslashes near quotes, but not immediately adjacent, thus having no effect ... ok -test_tags71_unparsable (tests.test_roundtripping.TestRoundtripping) +test_tags71_unparsable (tests.test_pytokenizer.TestPyTokenizer) a tag that should not be put through the normal parser ... ok -test_tags72_unparsable_complex (tests.test_roundtripping.TestRoundtripping) +test_tags72_unparsable_complex (tests.test_pytokenizer.TestPyTokenizer) a tag that should not be put through the normal parser; lots of stuff inside ... ok -test_tags73_unparsable_attributed (tests.test_roundtripping.TestRoundtripping) +test_tags73_unparsable_attributed (tests.test_pytokenizer.TestPyTokenizer) a tag that should not be put through the normal parser; parsed attributes ... ok -test_tags74_unparsable_incomplete (tests.test_roundtripping.TestRoundtripping) +test_tags74_unparsable_incomplete (tests.test_pytokenizer.TestPyTokenizer) a tag that should not be put through the normal parser; incomplete ... ok -test_tags75_unparsable_entity (tests.test_roundtripping.TestRoundtripping) +test_tags75_unparsable_entity (tests.test_pytokenizer.TestPyTokenizer) a HTML entity inside unparsable text is still parsed ... ok -test_tags76_unparsable_entity_incomplete (tests.test_roundtripping.TestRoundtripping) +test_tags76_unparsable_entity_incomplete (tests.test_pytokenizer.TestPyTokenizer) an incomplete HTML entity inside unparsable text ... ok -test_tags77_unparsable_entity_incomplete_2 (tests.test_roundtripping.TestRoundtripping) +test_tags77_unparsable_entity_incomplete_2 (tests.test_pytokenizer.TestPyTokenizer) an incomplete HTML entity inside unparsable text ... ok -test_tags78_single_open_close (tests.test_roundtripping.TestRoundtripping) +test_tags78_single_open_close (tests.test_pytokenizer.TestPyTokenizer) a tag that supports being single; both an open and a close tag ... ok -test_tags79_single_open (tests.test_roundtripping.TestRoundtripping) +test_tags79_single_open (tests.test_pytokenizer.TestPyTokenizer) a tag that supports being single; just an open tag ... ok -test_tags80_single_selfclose (tests.test_roundtripping.TestRoundtripping) +test_tags80_single_selfclose (tests.test_pytokenizer.TestPyTokenizer) a tag that supports being single; a self-closing tag ... ok -test_tags81_single_close (tests.test_roundtripping.TestRoundtripping) +test_tags81_single_close (tests.test_pytokenizer.TestPyTokenizer) a tag that supports being single; just a close tag ... ok -test_tags82_single_only_open_close (tests.test_roundtripping.TestRoundtripping) +test_tags82_single_only_open_close (tests.test_pytokenizer.TestPyTokenizer) a tag that can only be single; both an open and a close tag ... ok -test_tags83_single_only_open (tests.test_roundtripping.TestRoundtripping) +test_tags83_single_only_open (tests.test_pytokenizer.TestPyTokenizer) a tag that can only be single; just an open tag ... ok -test_tags84_single_only_selfclose (tests.test_roundtripping.TestRoundtripping) +test_tags84_single_only_selfclose (tests.test_pytokenizer.TestPyTokenizer) a tag that can only be single; a self-closing tag ... ok -test_tags85_single_only_close (tests.test_roundtripping.TestRoundtripping) +test_tags85_single_only_close (tests.test_pytokenizer.TestPyTokenizer) a tag that can only be single; just a close tag ... ok -test_tags86_single_only_double (tests.test_roundtripping.TestRoundtripping) +test_tags86_single_only_double (tests.test_pytokenizer.TestPyTokenizer) a tag that can only be single; a tag with backslashes at the beginning and end ... ok -test_tags87_single_only_close_attribute (tests.test_roundtripping.TestRoundtripping) +test_tags87_single_only_close_attribute (tests.test_pytokenizer.TestPyTokenizer) a tag that can only be single; presented as a close tag with an attribute ... ok -test_tags88_capitalization (tests.test_roundtripping.TestRoundtripping) +test_tags88_capitalization (tests.test_pytokenizer.TestPyTokenizer) caps should be ignored within tag names ... ok -test_tags89_unparsable_incomplete_close (tests.test_roundtripping.TestRoundtripping) +test_tags89_unparsable_incomplete_close (tests.test_pytokenizer.TestPyTokenizer) an unparsable tag with an incomplete close afterwards ... ok -test_tags90_unparsable_with_intermediates (tests.test_roundtripping.TestRoundtripping) +test_tags90_unparsable_with_intermediates (tests.test_pytokenizer.TestPyTokenizer) an unparsable tag with intermediate tags inside of it ... ok -test_tags91_unparsable_with_intermediates_normalize (tests.test_roundtripping.TestRoundtripping) +test_tags91_unparsable_with_intermediates_normalize (tests.test_pytokenizer.TestPyTokenizer) an unparsable tag with intermediate tags inside of it, requiring normalization ... ok -test_tags92_non_ascii_open (tests.test_roundtripping.TestRoundtripping) +test_tags92_non_ascii_open (tests.test_pytokenizer.TestPyTokenizer) a open tag containing non-ASCII characters ... ok -test_tags93_non_ascii_full (tests.test_roundtripping.TestRoundtripping) +test_tags93_non_ascii_full (tests.test_pytokenizer.TestPyTokenizer) an open/close tag pair containing non-ASCII characters ... ok -test_tags94_single_nested_selfclosing (tests.test_roundtripping.TestRoundtripping) +test_tags94_single_nested_selfclosing (tests.test_pytokenizer.TestPyTokenizer) a single (unpaired) tag with a self-closing tag in the middle (see issue #147) ... ok -test_tags_wikimarkup01_basic_italics (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup01_basic_italics (tests.test_pytokenizer.TestPyTokenizer) basic italic text ... ok -test_tags_wikimarkup02_basic_bold (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup02_basic_bold (tests.test_pytokenizer.TestPyTokenizer) basic bold text ... ok -test_tags_wikimarkup03_basic_ul (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup03_basic_ul (tests.test_pytokenizer.TestPyTokenizer) basic unordered list ... ok -test_tags_wikimarkup04_basic_ol (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup04_basic_ol (tests.test_pytokenizer.TestPyTokenizer) basic ordered list ... ok -test_tags_wikimarkup05_basic_dt (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup05_basic_dt (tests.test_pytokenizer.TestPyTokenizer) basic description term ... ok -test_tags_wikimarkup06_basic_dd (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup06_basic_dd (tests.test_pytokenizer.TestPyTokenizer) basic description item ... ok -test_tags_wikimarkup07_basic_hr (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup07_basic_hr (tests.test_pytokenizer.TestPyTokenizer) basic horizontal rule ... ok -test_tags_wikimarkup08_complex_italics (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup08_complex_italics (tests.test_pytokenizer.TestPyTokenizer) italics with a lot in them ... ok -test_tags_wikimarkup09_multiline_italics (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup09_multiline_italics (tests.test_pytokenizer.TestPyTokenizer) italics spanning mulitple lines ... ok -test_tags_wikimarkup10_unending_italics (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup10_unending_italics (tests.test_pytokenizer.TestPyTokenizer) italics without an ending tag ... ok -test_tags_wikimarkup11_misleading_italics_end (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup11_misleading_italics_end (tests.test_pytokenizer.TestPyTokenizer) italics with something that looks like an end but isn't ... ok -test_tags_wikimarkup12_italics_start_outside_end_inside (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup12_italics_start_outside_end_inside (tests.test_pytokenizer.TestPyTokenizer) italics that start outside a link and end inside it ... ok -test_tags_wikimarkup13_italics_start_inside_end_outside (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup13_italics_start_inside_end_outside (tests.test_pytokenizer.TestPyTokenizer) italics that start inside a link and end outside it ... ok -test_tags_wikimarkup14_complex_bold (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup14_complex_bold (tests.test_pytokenizer.TestPyTokenizer) bold with a lot in it ... ok -test_tags_wikimarkup15_multiline_bold (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup15_multiline_bold (tests.test_pytokenizer.TestPyTokenizer) bold spanning mulitple lines ... ok -test_tags_wikimarkup16_unending_bold (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup16_unending_bold (tests.test_pytokenizer.TestPyTokenizer) bold without an ending tag ... ok -test_tags_wikimarkup17_misleading_bold_end (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup17_misleading_bold_end (tests.test_pytokenizer.TestPyTokenizer) bold with something that looks like an end but isn't ... ok -test_tags_wikimarkup18_bold_start_outside_end_inside (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup18_bold_start_outside_end_inside (tests.test_pytokenizer.TestPyTokenizer) bold that start outside a link and end inside it ... ok -test_tags_wikimarkup19_bold_start_inside_end_outside (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup19_bold_start_inside_end_outside (tests.test_pytokenizer.TestPyTokenizer) bold that start inside a link and end outside it ... ok -test_tags_wikimarkup20_bold_and_italics (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup20_bold_and_italics (tests.test_pytokenizer.TestPyTokenizer) bold and italics together ... ok -test_tags_wikimarkup21_both_then_bold (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup21_both_then_bold (tests.test_pytokenizer.TestPyTokenizer) text that starts bold/italic, then is just bold ... ok -test_tags_wikimarkup22_both_then_italics (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup22_both_then_italics (tests.test_pytokenizer.TestPyTokenizer) text that starts bold/italic, then is just italic ... ok -test_tags_wikimarkup23_bold_then_both (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup23_bold_then_both (tests.test_pytokenizer.TestPyTokenizer) text that starts just bold, then is bold/italic ... ok -test_tags_wikimarkup24_italics_then_both (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup24_italics_then_both (tests.test_pytokenizer.TestPyTokenizer) text that starts just italic, then is bold/italic ... ok -test_tags_wikimarkup25_italics_then_bold (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup25_italics_then_bold (tests.test_pytokenizer.TestPyTokenizer) text that starts italic, then is bold ... ok -test_tags_wikimarkup26_bold_then_italics (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup26_bold_then_italics (tests.test_pytokenizer.TestPyTokenizer) text that starts bold, then is italic ... ok -test_tags_wikimarkup27_five_three (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup27_five_three (tests.test_pytokenizer.TestPyTokenizer) five ticks to open, three to close (bold) ... ok -test_tags_wikimarkup28_five_two (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup28_five_two (tests.test_pytokenizer.TestPyTokenizer) five ticks to open, two to close (bold) ... ok -test_tags_wikimarkup29_four (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup29_four (tests.test_pytokenizer.TestPyTokenizer) four ticks ... ok -test_tags_wikimarkup30_four_two (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup30_four_two (tests.test_pytokenizer.TestPyTokenizer) four ticks to open, two to close ... ok -test_tags_wikimarkup31_two_three (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup31_two_three (tests.test_pytokenizer.TestPyTokenizer) two ticks to open, three to close ... ok -test_tags_wikimarkup32_two_four (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup32_two_four (tests.test_pytokenizer.TestPyTokenizer) two ticks to open, four to close ... ok -test_tags_wikimarkup33_two_three_two (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup33_two_three_two (tests.test_pytokenizer.TestPyTokenizer) two ticks to open, three to close, two afterwards ... ok -test_tags_wikimarkup34_two_four_four (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup34_two_four_four (tests.test_pytokenizer.TestPyTokenizer) two ticks to open, four to close, four afterwards ... ok -test_tags_wikimarkup35_seven (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup35_seven (tests.test_pytokenizer.TestPyTokenizer) seven ticks ... ok -test_tags_wikimarkup36_unending_bold_and_italics (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup36_unending_bold_and_italics (tests.test_pytokenizer.TestPyTokenizer) five ticks (bold and italics) that don't end ... ok -test_tags_wikimarkup37_complex_ul (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup37_complex_ul (tests.test_pytokenizer.TestPyTokenizer) ul with a lot in it ... ok -test_tags_wikimarkup38_ul_multiline_template (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup38_ul_multiline_template (tests.test_pytokenizer.TestPyTokenizer) ul with a template that spans multiple lines ... ok -test_tags_wikimarkup39_ul_adjacent (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup39_ul_adjacent (tests.test_pytokenizer.TestPyTokenizer) multiple adjacent uls ... ok -test_tags_wikimarkup40_ul_depths (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup40_ul_depths (tests.test_pytokenizer.TestPyTokenizer) multiple adjacent uls, with differing depths ... ok -test_tags_wikimarkup41_ul_space_before (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup41_ul_space_before (tests.test_pytokenizer.TestPyTokenizer) uls with space before them ... ok -test_tags_wikimarkup42_ul_interruption (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup42_ul_interruption (tests.test_pytokenizer.TestPyTokenizer) high-depth ul with something blocking it ... ok -test_tags_wikimarkup43_complex_ol (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup43_complex_ol (tests.test_pytokenizer.TestPyTokenizer) ol with a lot in it ... ok -test_tags_wikimarkup44_ol_multiline_template (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup44_ol_multiline_template (tests.test_pytokenizer.TestPyTokenizer) ol with a template that spans moltiple lines ... ok -test_tags_wikimarkup45_ol_adjacent (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup45_ol_adjacent (tests.test_pytokenizer.TestPyTokenizer) moltiple adjacent ols ... ok -test_tags_wikimarkup46_ol_depths (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup46_ol_depths (tests.test_pytokenizer.TestPyTokenizer) moltiple adjacent ols, with differing depths ... ok -test_tags_wikimarkup47_ol_space_before (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup47_ol_space_before (tests.test_pytokenizer.TestPyTokenizer) ols with space before them ... ok -test_tags_wikimarkup48_ol_interruption (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup48_ol_interruption (tests.test_pytokenizer.TestPyTokenizer) high-depth ol with something blocking it ... ok -test_tags_wikimarkup49_ul_ol_mix (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup49_ul_ol_mix (tests.test_pytokenizer.TestPyTokenizer) a mix of adjacent uls and ols ... ok -test_tags_wikimarkup50_complex_dt (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup50_complex_dt (tests.test_pytokenizer.TestPyTokenizer) dt with a lot in it ... ok -test_tags_wikimarkup51_dt_multiline_template (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup51_dt_multiline_template (tests.test_pytokenizer.TestPyTokenizer) dt with a template that spans mdttiple lines ... ok -test_tags_wikimarkup52_dt_adjacent (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup52_dt_adjacent (tests.test_pytokenizer.TestPyTokenizer) mdttiple adjacent dts ... ok -test_tags_wikimarkup53_dt_depths (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup53_dt_depths (tests.test_pytokenizer.TestPyTokenizer) mdttiple adjacent dts, with differing depths ... ok -test_tags_wikimarkup54_dt_space_before (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup54_dt_space_before (tests.test_pytokenizer.TestPyTokenizer) dts with space before them ... ok -test_tags_wikimarkup55_dt_interruption (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup55_dt_interruption (tests.test_pytokenizer.TestPyTokenizer) high-depth dt with something blocking it ... ok -test_tags_wikimarkup56_complex_dd (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup56_complex_dd (tests.test_pytokenizer.TestPyTokenizer) dd with a lot in it ... ok -test_tags_wikimarkup57_dd_multiline_template (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup57_dd_multiline_template (tests.test_pytokenizer.TestPyTokenizer) dd with a template that spans mddtiple lines ... ok -test_tags_wikimarkup58_dd_adjacent (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup58_dd_adjacent (tests.test_pytokenizer.TestPyTokenizer) mddtiple adjacent dds ... ok -test_tags_wikimarkup59_dd_depths (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup59_dd_depths (tests.test_pytokenizer.TestPyTokenizer) mddtiple adjacent dds, with differing depths ... ok -test_tags_wikimarkup60_dd_space_before (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup60_dd_space_before (tests.test_pytokenizer.TestPyTokenizer) dds with space before them ... ok -test_tags_wikimarkup61_dd_interruption (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup61_dd_interruption (tests.test_pytokenizer.TestPyTokenizer) high-depth dd with something blocking it ... ok -test_tags_wikimarkup62_dt_dd_mix (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup62_dt_dd_mix (tests.test_pytokenizer.TestPyTokenizer) a mix of adjacent dts and dds ... ok -test_tags_wikimarkup63_dt_dd_mix2 (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup63_dt_dd_mix2 (tests.test_pytokenizer.TestPyTokenizer) the correct usage of a dt/dd unit, as in a dl ... ok -test_tags_wikimarkup64_dt_dd_mix3 (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup64_dt_dd_mix3 (tests.test_pytokenizer.TestPyTokenizer) another example of correct (but strange) dt/dd usage ... ok -test_tags_wikimarkup65_dt_dd_mix4 (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup65_dt_dd_mix4 (tests.test_pytokenizer.TestPyTokenizer) another example of correct dt/dd usage, with a trigger for a specific parse route ... ok -test_tags_wikimarkup66_ul_ol_dt_dd_mix (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup66_ul_ol_dt_dd_mix (tests.test_pytokenizer.TestPyTokenizer) an assortment of uls, ols, dds, and dts ... ok -test_tags_wikimarkup67_hr_text_before (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup67_hr_text_before (tests.test_pytokenizer.TestPyTokenizer) text before an otherwise-valid hr ... ok -test_tags_wikimarkup68_hr_text_after (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup68_hr_text_after (tests.test_pytokenizer.TestPyTokenizer) text after a valid hr ... ok -test_tags_wikimarkup69_hr_text_before_after (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup69_hr_text_before_after (tests.test_pytokenizer.TestPyTokenizer) text at both ends of an otherwise-valid hr ... ok -test_tags_wikimarkup70_hr_newlines (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup70_hr_newlines (tests.test_pytokenizer.TestPyTokenizer) newlines surrounding a valid hr ... ok -test_tags_wikimarkup71_hr_adjacent (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup71_hr_adjacent (tests.test_pytokenizer.TestPyTokenizer) two adjacent hrs ... ok -test_tags_wikimarkup72_hr_adjacent_space (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup72_hr_adjacent_space (tests.test_pytokenizer.TestPyTokenizer) two adjacent hrs, with a space before the second one, making it invalid ... ok -test_tags_wikimarkup73_hr_short (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup73_hr_short (tests.test_pytokenizer.TestPyTokenizer) an invalid three-hyphen-long hr ... ok -test_tags_wikimarkup74_hr_long (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup74_hr_long (tests.test_pytokenizer.TestPyTokenizer) a very long, valid hr ... ok -test_tags_wikimarkup75_hr_interruption_short (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup75_hr_interruption_short (tests.test_pytokenizer.TestPyTokenizer) a hr that is interrupted, making it invalid ... ok -test_tags_wikimarkup76_hr_interruption_long (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup76_hr_interruption_long (tests.test_pytokenizer.TestPyTokenizer) a hr that is interrupted, but the first part remains valid because it is long enough ... ok -test_tags_wikimarkup77_nowiki_cancel (tests.test_roundtripping.TestRoundtripping) +test_tags_wikimarkup77_nowiki_cancel (tests.test_pytokenizer.TestPyTokenizer) a nowiki tag before a list causes it to not be parsed ... ok -test_templates001_no_params (tests.test_roundtripping.TestRoundtripping) +test_templates001_no_params (tests.test_pytokenizer.TestPyTokenizer) simplest type of template ... ok -test_templates002_one_param_unnamed (tests.test_roundtripping.TestRoundtripping) +test_templates002_one_param_unnamed (tests.test_pytokenizer.TestPyTokenizer) basic template with one unnamed parameter ... ok -test_templates003_one_param_named (tests.test_roundtripping.TestRoundtripping) +test_templates003_one_param_named (tests.test_pytokenizer.TestPyTokenizer) basic template with one named parameter ... ok -test_templates004_multiple_unnamed_params (tests.test_roundtripping.TestRoundtripping) +test_templates004_multiple_unnamed_params (tests.test_pytokenizer.TestPyTokenizer) basic template with multiple unnamed parameters ... ok -test_templates005_multiple_named_params (tests.test_roundtripping.TestRoundtripping) +test_templates005_multiple_named_params (tests.test_pytokenizer.TestPyTokenizer) basic template with multiple named parameters ... ok -test_templates006_multiple_mixed_params (tests.test_roundtripping.TestRoundtripping) +test_templates006_multiple_mixed_params (tests.test_pytokenizer.TestPyTokenizer) basic template with multiple unnamed/named parameters ... ok -test_templates007_multiple_mixed_params2 (tests.test_roundtripping.TestRoundtripping) +test_templates007_multiple_mixed_params2 (tests.test_pytokenizer.TestPyTokenizer) basic template with multiple unnamed/named parameters in another order ... ok -test_templates008_blank_params (tests.test_roundtripping.TestRoundtripping) +test_templates008_blank_params (tests.test_pytokenizer.TestPyTokenizer) template with blank parameters (mix of pipes and equal signs) ... ok -test_templates009_nested_unnamed_param (tests.test_roundtripping.TestRoundtripping) +test_templates009_nested_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) nested template as an unnamed parameter ... ok -test_templates010_nested_named_param_value (tests.test_roundtripping.TestRoundtripping) +test_templates010_nested_named_param_value (tests.test_pytokenizer.TestPyTokenizer) nested template as a parameter value with a named parameter ... ok -test_templates011_nested_named_param_name_and_value (tests.test_roundtripping.TestRoundtripping) +test_templates011_nested_named_param_name_and_value (tests.test_pytokenizer.TestPyTokenizer) nested templates as a parameter name and value ... ok -test_templates012_nested_name_start (tests.test_roundtripping.TestRoundtripping) +test_templates012_nested_name_start (tests.test_pytokenizer.TestPyTokenizer) nested template at the beginning of a template name ... ok -test_templates013_nested_name_start_unnamed_param (tests.test_roundtripping.TestRoundtripping) +test_templates013_nested_name_start_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) nested template at the beginning of a template name and as an unnamed parameter ... ok -test_templates014_nested_name_start_named_param_value (tests.test_roundtripping.TestRoundtripping) +test_templates014_nested_name_start_named_param_value (tests.test_pytokenizer.TestPyTokenizer) nested template at the beginning of a template name and as a parameter value with a named parameter ... ok -test_templates015_nested_name_start_named_param_name_and_value (tests.test_roundtripping.TestRoundtripping) +test_templates015_nested_name_start_named_param_name_and_value (tests.test_pytokenizer.TestPyTokenizer) nested template at the beginning of a template name and as a parameter name and value ... ok -test_templates016_nested_name_end (tests.test_roundtripping.TestRoundtripping) +test_templates016_nested_name_end (tests.test_pytokenizer.TestPyTokenizer) nested template at the end of a template name ... ok -test_templates017_nested_name_end_unnamed_param (tests.test_roundtripping.TestRoundtripping) +test_templates017_nested_name_end_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) nested template at the end of a template name and as an unnamed parameter ... ok -test_templates018_nested_name_end_named_param_value (tests.test_roundtripping.TestRoundtripping) +test_templates018_nested_name_end_named_param_value (tests.test_pytokenizer.TestPyTokenizer) nested template at the end of a template name and as a parameter value with a named parameter ... ok -test_templates019_nested_name_end_named_param_name_and_value (tests.test_roundtripping.TestRoundtripping) +test_templates019_nested_name_end_named_param_name_and_value (tests.test_pytokenizer.TestPyTokenizer) nested template at the end of a template name and as a parameter name and value ... ok -test_templates020_nested_name_mid (tests.test_roundtripping.TestRoundtripping) +test_templates020_nested_name_mid (tests.test_pytokenizer.TestPyTokenizer) nested template in the middle of a template name ... ok -test_templates021_nested_name_mid_unnamed_param (tests.test_roundtripping.TestRoundtripping) +test_templates021_nested_name_mid_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) nested template in the middle of a template name and as an unnamed parameter ... ok -test_templates022_nested_name_mid_named_param_value (tests.test_roundtripping.TestRoundtripping) +test_templates022_nested_name_mid_named_param_value (tests.test_pytokenizer.TestPyTokenizer) nested template in the middle of a template name and as a parameter value with a named parameter ... ok -test_templates023_nested_name_mid_named_param_name_and_value (tests.test_roundtripping.TestRoundtripping) +test_templates023_nested_name_mid_named_param_name_and_value (tests.test_pytokenizer.TestPyTokenizer) nested template in the middle of a template name and as a parameter name and value ... ok -test_templates024_nested_name_start_end (tests.test_roundtripping.TestRoundtripping) +test_templates024_nested_name_start_end (tests.test_pytokenizer.TestPyTokenizer) nested template at the beginning and end of a template name ... ok -test_templates025_nested_name_start_end_unnamed_param (tests.test_roundtripping.TestRoundtripping) +test_templates025_nested_name_start_end_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) nested template at the beginning and end of a template name and as an unnamed parameter ... ok -test_templates026_nested_name_start_end_named_param_value (tests.test_roundtripping.TestRoundtripping) +test_templates026_nested_name_start_end_named_param_value (tests.test_pytokenizer.TestPyTokenizer) nested template at the beginning and end of a template name and as a parameter value with a named parameter ... ok -test_templates027_nested_name_start_end_named_param_name_and_value (tests.test_roundtripping.TestRoundtripping) +test_templates027_nested_name_start_end_named_param_name_and_value (tests.test_pytokenizer.TestPyTokenizer) nested template at the beginning and end of a template name and as a parameter name and value ... ok -test_templates028_nested_names_multiple (tests.test_roundtripping.TestRoundtripping) +test_templates028_nested_names_multiple (tests.test_pytokenizer.TestPyTokenizer) multiple nested templates within nested templates ... ok -test_templates029_nested_names_multiple_unnamed_param (tests.test_roundtripping.TestRoundtripping) +test_templates029_nested_names_multiple_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) multiple nested templates within nested templates with a nested unnamed parameter ... ok -test_templates030_nested_names_multiple_named_param_value (tests.test_roundtripping.TestRoundtripping) +test_templates030_nested_names_multiple_named_param_value (tests.test_pytokenizer.TestPyTokenizer) multiple nested templates within nested templates with a nested parameter value in a named parameter ... ok -test_templates031_nested_names_multiple_named_param_name_and_value (tests.test_roundtripping.TestRoundtripping) +test_templates031_nested_names_multiple_named_param_name_and_value (tests.test_pytokenizer.TestPyTokenizer) multiple nested templates within nested templates with a nested parameter name and value ... ok -test_templates032_mixed_nested_templates (tests.test_roundtripping.TestRoundtripping) +test_templates032_mixed_nested_templates (tests.test_pytokenizer.TestPyTokenizer) mixed assortment of nested templates within template names, parameter names, and values ... ok -test_templates033_nested_two_args (tests.test_roundtripping.TestRoundtripping) +test_templates033_nested_two_args (tests.test_pytokenizer.TestPyTokenizer) template whose first parameter is unnamed with two templates, followed by a named parameter ... ok -test_templates034_newlines_start (tests.test_roundtripping.TestRoundtripping) +test_templates034_newlines_start (tests.test_pytokenizer.TestPyTokenizer) a newline at the start of a template name ... ok -test_templates035_newlines_end (tests.test_roundtripping.TestRoundtripping) +test_templates035_newlines_end (tests.test_pytokenizer.TestPyTokenizer) a newline at the end of a template name ... ok -test_templates036_newlines_start_end (tests.test_roundtripping.TestRoundtripping) +test_templates036_newlines_start_end (tests.test_pytokenizer.TestPyTokenizer) a newline at the start and end of a template name ... ok -test_templates037_newlines_mid (tests.test_roundtripping.TestRoundtripping) +test_templates037_newlines_mid (tests.test_pytokenizer.TestPyTokenizer) a newline at the middle of a template name ... ok -test_templates038_newlines_start_mid (tests.test_roundtripping.TestRoundtripping) +test_templates038_newlines_start_mid (tests.test_pytokenizer.TestPyTokenizer) a newline at the start and middle of a template name ... ok -test_templates039_newlines_mid_end (tests.test_roundtripping.TestRoundtripping) +test_templates039_newlines_mid_end (tests.test_pytokenizer.TestPyTokenizer) a newline at the middle and end of a template name ... ok -test_templates040_newlines_start_mid_end (tests.test_roundtripping.TestRoundtripping) +test_templates040_newlines_start_mid_end (tests.test_pytokenizer.TestPyTokenizer) a newline at the start, middle, and end of a template name ... ok -test_templates041_newlines_unnamed_param (tests.test_roundtripping.TestRoundtripping) +test_templates041_newlines_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) newlines within an unnamed template parameter ... ok -test_templates042_newlines_enclose_template_name_unnamed_param (tests.test_roundtripping.TestRoundtripping) +test_templates042_newlines_enclose_template_name_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) newlines enclosing a template name and within an unnamed template parameter ... ok -test_templates043_newlines_within_template_name_unnamed_param (tests.test_roundtripping.TestRoundtripping) +test_templates043_newlines_within_template_name_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) newlines within a template name and within an unnamed template parameter ... ok -test_templates044_newlines_enclose_template_name_named_param_value (tests.test_roundtripping.TestRoundtripping) +test_templates044_newlines_enclose_template_name_named_param_value (tests.test_pytokenizer.TestPyTokenizer) newlines enclosing a template name and within a named parameter value ... ok -test_templates045_newlines_within_template_name_named_param_value (tests.test_roundtripping.TestRoundtripping) +test_templates045_newlines_within_template_name_named_param_value (tests.test_pytokenizer.TestPyTokenizer) newlines within a template name and within a named parameter value ... ok -test_templates046_newlines_named_param_name (tests.test_roundtripping.TestRoundtripping) +test_templates046_newlines_named_param_name (tests.test_pytokenizer.TestPyTokenizer) newlines within a parameter name ... ok -test_templates047_newlines_named_param_name_param_value (tests.test_roundtripping.TestRoundtripping) +test_templates047_newlines_named_param_name_param_value (tests.test_pytokenizer.TestPyTokenizer) newlines within a parameter name and within a parameter value ... ok -test_templates048_newlines_enclose_template_name_named_param_name (tests.test_roundtripping.TestRoundtripping) +test_templates048_newlines_enclose_template_name_named_param_name (tests.test_pytokenizer.TestPyTokenizer) newlines enclosing a template name and within a parameter name ... ok -test_templates049_newlines_enclose_template_name_named_param_name_param_value (tests.test_roundtripping.TestRoundtripping) +test_templates049_newlines_enclose_template_name_named_param_name_param_value (tests.test_pytokenizer.TestPyTokenizer) newlines enclosing a template name and within a parameter name and within a parameter value ... ok -test_templates050_newlines_within_template_name_named_param_name (tests.test_roundtripping.TestRoundtripping) +test_templates050_newlines_within_template_name_named_param_name (tests.test_pytokenizer.TestPyTokenizer) newlines within a template name and within a parameter name ... ok -test_templates051_newlines_within_template_name_named_param_name_param_value (tests.test_roundtripping.TestRoundtripping) +test_templates051_newlines_within_template_name_named_param_name_param_value (tests.test_pytokenizer.TestPyTokenizer) newlines within a template name and within a parameter name and within a parameter value ... ok -test_templates052_newlines_wildcard (tests.test_roundtripping.TestRoundtripping) +test_templates052_newlines_wildcard (tests.test_pytokenizer.TestPyTokenizer) a random, complex assortment of templates and newlines ... ok -test_templates053_newlines_wildcard_redux (tests.test_roundtripping.TestRoundtripping) +test_templates053_newlines_wildcard_redux (tests.test_pytokenizer.TestPyTokenizer) an even more random and complex assortment of templates and newlines ... ok -test_templates054_newlines_wildcard_redux_invalid (tests.test_roundtripping.TestRoundtripping) +test_templates054_newlines_wildcard_redux_invalid (tests.test_pytokenizer.TestPyTokenizer) a variation of the newlines_wildcard_redux test that is invalid ... ok -test_templates055_newlines_spaces (tests.test_roundtripping.TestRoundtripping) +test_templates055_newlines_spaces (tests.test_pytokenizer.TestPyTokenizer) newlines in the middle of a template name, followed by spaces ... ok -test_templates056_newlines_spaces_param (tests.test_roundtripping.TestRoundtripping) +test_templates056_newlines_spaces_param (tests.test_pytokenizer.TestPyTokenizer) newlines in the middle of a template name, followed by spaces, with a parameter ... ok -test_templates057_invalid_blank (tests.test_roundtripping.TestRoundtripping) +test_templates057_invalid_blank (tests.test_pytokenizer.TestPyTokenizer) invalid template with no content ... ok -test_templates058_invalid_blank_whitespace (tests.test_roundtripping.TestRoundtripping) +test_templates058_invalid_blank_whitespace (tests.test_pytokenizer.TestPyTokenizer) invalid template with no content, but whitespace ... ok -test_templates059_invalid_blank_pipe (tests.test_roundtripping.TestRoundtripping) +test_templates059_invalid_blank_pipe (tests.test_pytokenizer.TestPyTokenizer) invalid template with no content, but a parameter ... ok -test_templates060_invalid_blank_whitespace_pipe (tests.test_roundtripping.TestRoundtripping) +test_templates060_invalid_blank_whitespace_pipe (tests.test_pytokenizer.TestPyTokenizer) invalid template with no content, but whitespace and a parameter ... ok -test_templates061_invalid_name_left_brace_middle (tests.test_roundtripping.TestRoundtripping) +test_templates061_invalid_name_left_brace_middle (tests.test_pytokenizer.TestPyTokenizer) invalid characters in template name: left brace in middle ... ok -test_templates062_invalid_name_right_brace_middle (tests.test_roundtripping.TestRoundtripping) +test_templates062_invalid_name_right_brace_middle (tests.test_pytokenizer.TestPyTokenizer) invalid characters in template name: right brace in middle ... ok -test_templates063_invalid_name_left_braces (tests.test_roundtripping.TestRoundtripping) +test_templates063_invalid_name_left_braces (tests.test_pytokenizer.TestPyTokenizer) invalid characters in template name: two left braces in middle ... ok -test_templates064_invalid_name_left_bracket_middle (tests.test_roundtripping.TestRoundtripping) +test_templates064_invalid_name_left_bracket_middle (tests.test_pytokenizer.TestPyTokenizer) invalid characters in template name: left bracket in middle ... ok -test_templates065_invalid_name_right_bracket_middle (tests.test_roundtripping.TestRoundtripping) +test_templates065_invalid_name_right_bracket_middle (tests.test_pytokenizer.TestPyTokenizer) invalid characters in template name: right bracket in middle ... ok -test_templates066_invalid_name_left_bracket_start (tests.test_roundtripping.TestRoundtripping) +test_templates066_invalid_name_left_bracket_start (tests.test_pytokenizer.TestPyTokenizer) invalid characters in template name: left bracket at start ... ok -test_templates067_invalid_name_right_bracket_start (tests.test_roundtripping.TestRoundtripping) +test_templates067_invalid_name_right_bracket_start (tests.test_pytokenizer.TestPyTokenizer) invalid characters in template name: right bracket at end ... ok -test_templates068_valid_name_left_brace_start (tests.test_roundtripping.TestRoundtripping) +test_templates068_valid_name_left_brace_start (tests.test_pytokenizer.TestPyTokenizer) valid characters in template name: left brace at start ... ok -test_templates069_valid_unnamed_param_left_brace (tests.test_roundtripping.TestRoundtripping) +test_templates069_valid_unnamed_param_left_brace (tests.test_pytokenizer.TestPyTokenizer) valid characters in unnamed template parameter: left brace ... ok -test_templates070_valid_unnamed_param_braces (tests.test_roundtripping.TestRoundtripping) +test_templates070_valid_unnamed_param_braces (tests.test_pytokenizer.TestPyTokenizer) valid characters in unnamed template parameter: left and right braces ... ok -test_templates071_valid_param_name_braces (tests.test_roundtripping.TestRoundtripping) +test_templates071_valid_param_name_braces (tests.test_pytokenizer.TestPyTokenizer) valid characters in template parameter name: left and right braces ... ok -test_templates072_valid_param_name_brackets (tests.test_roundtripping.TestRoundtripping) +test_templates072_valid_param_name_brackets (tests.test_pytokenizer.TestPyTokenizer) valid characters in unnamed template parameter: left and right brackets ... ok -test_templates073_valid_param_name_double_left_brackets (tests.test_roundtripping.TestRoundtripping) +test_templates073_valid_param_name_double_left_brackets (tests.test_pytokenizer.TestPyTokenizer) valid characters in unnamed template parameter: double left brackets ... ok -test_templates074_valid_param_name_double_right_brackets (tests.test_roundtripping.TestRoundtripping) +test_templates074_valid_param_name_double_right_brackets (tests.test_pytokenizer.TestPyTokenizer) valid characters in unnamed template parameter: double right brackets ... ok -test_templates075_valid_param_name_double_brackets (tests.test_roundtripping.TestRoundtripping) +test_templates075_valid_param_name_double_brackets (tests.test_pytokenizer.TestPyTokenizer) valid characters in unnamed template parameter: double left and right brackets ... ok -test_templates076_invalid_param_name_double_left_braces (tests.test_roundtripping.TestRoundtripping) +test_templates076_invalid_param_name_double_left_braces (tests.test_pytokenizer.TestPyTokenizer) invalid characters in template parameter name: double left braces ... ok -test_templates077_invalid_param_name_double_braces (tests.test_roundtripping.TestRoundtripping) +test_templates077_invalid_param_name_double_braces (tests.test_pytokenizer.TestPyTokenizer) invalid characters in template parameter name: double left and right braces ... ok -test_templates078_invalid_left_angle_bracket (tests.test_roundtripping.TestRoundtripping) +test_templates078_invalid_left_angle_bracket (tests.test_pytokenizer.TestPyTokenizer) invalid template: left angle bracket in name ... ok -test_templates079_invalid_right_angle_bracket (tests.test_roundtripping.TestRoundtripping) +test_templates079_invalid_right_angle_bracket (tests.test_pytokenizer.TestPyTokenizer) invalid template: right angle bracket in name ... ok -test_templates080_incomplete_stub (tests.test_roundtripping.TestRoundtripping) +test_templates080_incomplete_stub (tests.test_pytokenizer.TestPyTokenizer) incomplete templates that should fail gracefully: just an opening ... ok -test_templates081_incomplete_plain (tests.test_roundtripping.TestRoundtripping) +test_templates081_incomplete_plain (tests.test_pytokenizer.TestPyTokenizer) incomplete templates that should fail gracefully: no close whatsoever ... ok -test_templates082_incomplete_right_brace (tests.test_roundtripping.TestRoundtripping) +test_templates082_incomplete_right_brace (tests.test_pytokenizer.TestPyTokenizer) incomplete templates that should fail gracefully: only one right brace ... ok -test_templates083_incomplete_pipe (tests.test_roundtripping.TestRoundtripping) +test_templates083_incomplete_pipe (tests.test_pytokenizer.TestPyTokenizer) incomplete templates that should fail gracefully: a pipe ... ok -test_templates084_incomplete_unnamed_param (tests.test_roundtripping.TestRoundtripping) +test_templates084_incomplete_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) incomplete templates that should fail gracefully: an unnamed parameter ... ok -test_templates085_incomplete_unnamed_param_pipe (tests.test_roundtripping.TestRoundtripping) +test_templates085_incomplete_unnamed_param_pipe (tests.test_pytokenizer.TestPyTokenizer) incomplete templates that should fail gracefully: an unnamed parameter, then a pipe ... ok -test_templates086_incomplete_valueless_param (tests.test_roundtripping.TestRoundtripping) +test_templates086_incomplete_valueless_param (tests.test_pytokenizer.TestPyTokenizer) incomplete templates that should fail gracefully: an a named parameter with no value ... ok -test_templates087_incomplete_valueless_param_pipe (tests.test_roundtripping.TestRoundtripping) +test_templates087_incomplete_valueless_param_pipe (tests.test_pytokenizer.TestPyTokenizer) incomplete templates that should fail gracefully: a named parameter with no value, then a pipe ... ok -test_templates088_incomplete_named_param (tests.test_roundtripping.TestRoundtripping) +test_templates088_incomplete_named_param (tests.test_pytokenizer.TestPyTokenizer) incomplete templates that should fail gracefully: a named parameter with a value ... ok -test_templates089_incomplete_named_param_pipe (tests.test_roundtripping.TestRoundtripping) +test_templates089_incomplete_named_param_pipe (tests.test_pytokenizer.TestPyTokenizer) incomplete templates that should fail gracefully: a named parameter with a value, then a paipe ... ok -test_templates090_incomplete_two_unnamed_params (tests.test_roundtripping.TestRoundtripping) +test_templates090_incomplete_two_unnamed_params (tests.test_pytokenizer.TestPyTokenizer) incomplete templates that should fail gracefully: two unnamed parameters ... ok -test_templates091_incomplete_unnamed_param_valueless_param (tests.test_roundtripping.TestRoundtripping) +test_templates091_incomplete_unnamed_param_valueless_param (tests.test_pytokenizer.TestPyTokenizer) incomplete templates that should fail gracefully: an unnamed parameter, then a named parameter with no value ... ok -test_templates092_incomplete_unnamed_param_named_param (tests.test_roundtripping.TestRoundtripping) +test_templates092_incomplete_unnamed_param_named_param (tests.test_pytokenizer.TestPyTokenizer) incomplete templates that should fail gracefully: an unnamed parameter, then a named parameter with a value ... ok -test_templates093_incomplete_named_param_unnamed_param (tests.test_roundtripping.TestRoundtripping) +test_templates093_incomplete_named_param_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) incomplete templates that should fail gracefully: a named parameter with a value, then an unnamed parameter ... ok -test_templates094_incomplete_named_param_valueless_param (tests.test_roundtripping.TestRoundtripping) +test_templates094_incomplete_named_param_valueless_param (tests.test_pytokenizer.TestPyTokenizer) incomplete templates that should fail gracefully: a named parameter with a value, then a named parameter with no value ... ok -test_templates095_incomplete_two_named_params (tests.test_roundtripping.TestRoundtripping) +test_templates095_incomplete_two_named_params (tests.test_pytokenizer.TestPyTokenizer) incomplete templates that should fail gracefully: two named parameters with values ... ok -test_templates096_incomplete_nested_template_as_unnamed_param (tests.test_roundtripping.TestRoundtripping) +test_templates096_incomplete_nested_template_as_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) incomplete templates that should fail gracefully: a valid nested template as an unnamed parameter ... ok -test_templates097_incomplete_nested_template_as_param_value (tests.test_roundtripping.TestRoundtripping) +test_templates097_incomplete_nested_template_as_param_value (tests.test_pytokenizer.TestPyTokenizer) incomplete templates that should fail gracefully: a valid nested template as a parameter value ... ok -test_templates098_recursion_five_hundred_opens (tests.test_roundtripping.TestRoundtripping) +test_templates098_recursion_five_hundred_opens (tests.test_pytokenizer.TestPyTokenizer) test potentially dangerous recursion: five hundred template openings, without spaces ... ok -test_templates099_recursion_one_hundred_opens (tests.test_roundtripping.TestRoundtripping) +test_templates099_recursion_one_hundred_opens (tests.test_pytokenizer.TestPyTokenizer) test potentially dangerous recursion: one hundred template openings, with spaces ... ok -test_templates100_recursion_opens_and_closes (tests.test_roundtripping.TestRoundtripping) +test_templates100_recursion_opens_and_closes (tests.test_pytokenizer.TestPyTokenizer) test potentially dangerous recursion: template openings and closings ... ok -test_text1_basic (tests.test_roundtripping.TestRoundtripping) +test_text1_basic (tests.test_pytokenizer.TestPyTokenizer) sanity check for basic text parsing, no gimmicks ... ok -test_text2_newlines (tests.test_roundtripping.TestRoundtripping) +test_text2_newlines (tests.test_pytokenizer.TestPyTokenizer) slightly more complex text parsing, with newlines ... ok -test_text3_unicode (tests.test_roundtripping.TestRoundtripping) +test_text3_unicode (tests.test_pytokenizer.TestPyTokenizer) ensure unicode data is handled properly ... ok -test_text4_unicode2 (tests.test_roundtripping.TestRoundtripping) +test_text4_unicode2 (tests.test_pytokenizer.TestPyTokenizer) additional unicode check for non-BMP codepoints ... ok -test_text5_large (tests.test_roundtripping.TestRoundtripping) +test_text5_large (tests.test_pytokenizer.TestPyTokenizer) a lot of text, requiring proper storage in the C tokenizer ... ok -test_wikilinks01_blank (tests.test_roundtripping.TestRoundtripping) +test_uses_c (tests.test_pytokenizer.TestPyTokenizer) +make sure the Python tokenizer identifies as not using C ... ok +test_wikilinks01_blank (tests.test_pytokenizer.TestPyTokenizer) wikilink with no content ... ok -test_wikilinks02_blank_with_text (tests.test_roundtripping.TestRoundtripping) +test_wikilinks02_blank_with_text (tests.test_pytokenizer.TestPyTokenizer) wikilink with no content but a pipe ... ok -test_wikilinks03_basic (tests.test_roundtripping.TestRoundtripping) +test_wikilinks03_basic (tests.test_pytokenizer.TestPyTokenizer) simplest type of wikilink ... ok -test_wikilinks04_with_text (tests.test_roundtripping.TestRoundtripping) +test_wikilinks04_with_text (tests.test_pytokenizer.TestPyTokenizer) wikilink with a text value ... ok -test_wikilinks05_blank_with_multiple_texts (tests.test_roundtripping.TestRoundtripping) +test_wikilinks05_blank_with_multiple_texts (tests.test_pytokenizer.TestPyTokenizer) no content, multiple pipes ... ok -test_wikilinks06_multiple_texts (tests.test_roundtripping.TestRoundtripping) +test_wikilinks06_multiple_texts (tests.test_pytokenizer.TestPyTokenizer) multiple text values separated by pipes ... ok -test_wikilinks07_newline_text (tests.test_roundtripping.TestRoundtripping) +test_wikilinks07_newline_text (tests.test_pytokenizer.TestPyTokenizer) a newline in the middle of the text ... ok -test_wikilinks08_bracket_text (tests.test_roundtripping.TestRoundtripping) +test_wikilinks08_bracket_text (tests.test_pytokenizer.TestPyTokenizer) a left bracket in the middle of the text ... ok -test_wikilinks09_nested (tests.test_roundtripping.TestRoundtripping) +test_wikilinks09_nested (tests.test_pytokenizer.TestPyTokenizer) a wikilink nested within another ... ok -test_wikilinks10_nested_padding (tests.test_roundtripping.TestRoundtripping) +test_wikilinks10_nested_padding (tests.test_pytokenizer.TestPyTokenizer) a wikilink nested within another, separated by other data ... ok -test_wikilinks11_invalid_newline (tests.test_roundtripping.TestRoundtripping) +test_wikilinks11_invalid_newline (tests.test_pytokenizer.TestPyTokenizer) invalid wikilink: newline as only content ... ok -test_wikilinks12_invalid_right_brace (tests.test_roundtripping.TestRoundtripping) +test_wikilinks12_invalid_right_brace (tests.test_pytokenizer.TestPyTokenizer) invalid wikilink: right brace ... ok -test_wikilinks13_invalid_left_brace (tests.test_roundtripping.TestRoundtripping) +test_wikilinks13_invalid_left_brace (tests.test_pytokenizer.TestPyTokenizer) invalid wikilink: left brace ... ok -test_wikilinks14_invalid_right_bracket (tests.test_roundtripping.TestRoundtripping) +test_wikilinks14_invalid_right_bracket (tests.test_pytokenizer.TestPyTokenizer) invalid wikilink: right bracket ... ok -test_wikilinks15_invalid_left_bracket (tests.test_roundtripping.TestRoundtripping) +test_wikilinks15_invalid_left_bracket (tests.test_pytokenizer.TestPyTokenizer) invalid wikilink: left bracket ... ok -test_wikilinks16_invalid_nested (tests.test_roundtripping.TestRoundtripping) +test_wikilinks16_invalid_nested (tests.test_pytokenizer.TestPyTokenizer) invalid wikilink: trying to nest in the wrong context ... ok -test_wikilinks17_invalid_nested_padding (tests.test_roundtripping.TestRoundtripping) +test_wikilinks17_invalid_nested_padding (tests.test_pytokenizer.TestPyTokenizer) invalid wikilink: trying to nest in the wrong context, with a text param ... ok -test_wikilinks18_invalid_nested_no_close (tests.test_roundtripping.TestRoundtripping) +test_wikilinks18_invalid_nested_no_close (tests.test_pytokenizer.TestPyTokenizer) invalid wikilink: a wikilink nested within the value of another, missing a pair of closing brackets ... ok -test_wikilinks19_invalid_left_angle_bracket (tests.test_roundtripping.TestRoundtripping) +test_wikilinks19_invalid_left_angle_bracket (tests.test_pytokenizer.TestPyTokenizer) invalid wikilink: left angle bracket ... ok -test_wikilinks20_invalid_right_angle_bracket (tests.test_roundtripping.TestRoundtripping) +test_wikilinks20_invalid_right_angle_bracket (tests.test_pytokenizer.TestPyTokenizer) invalid wikilink: right angle bracket ... ok -test_wikilinks21_invalid_newline_at_start (tests.test_roundtripping.TestRoundtripping) +test_wikilinks21_invalid_newline_at_start (tests.test_pytokenizer.TestPyTokenizer) invalid wikilink: newline at start of title ... ok -test_wikilinks22_invalid_newline_at_end (tests.test_roundtripping.TestRoundtripping) +test_wikilinks22_invalid_newline_at_end (tests.test_pytokenizer.TestPyTokenizer) invalid wikilink: newline at end of title ... ok -test_wikilinks23_incomplete_open_only (tests.test_roundtripping.TestRoundtripping) +test_wikilinks23_incomplete_open_only (tests.test_pytokenizer.TestPyTokenizer) incomplete wikilinks: just an open ... ok -test_wikilinks24_incomplete_open_text (tests.test_roundtripping.TestRoundtripping) +test_wikilinks24_incomplete_open_text (tests.test_pytokenizer.TestPyTokenizer) incomplete wikilinks: an open with some text ... ok -test_wikilinks25_incomplete_open_text_pipe (tests.test_roundtripping.TestRoundtripping) +test_wikilinks25_incomplete_open_text_pipe (tests.test_pytokenizer.TestPyTokenizer) incomplete wikilinks: an open, text, then a pipe ... ok -test_wikilinks26_incomplete_open_pipe (tests.test_roundtripping.TestRoundtripping) +test_wikilinks26_incomplete_open_pipe (tests.test_pytokenizer.TestPyTokenizer) incomplete wikilinks: an open, then a pipe ... ok -test_wikilinks27_incomplete_open_pipe_text (tests.test_roundtripping.TestRoundtripping) +test_wikilinks27_incomplete_open_pipe_text (tests.test_pytokenizer.TestPyTokenizer) incomplete wikilinks: an open, then a pipe, then text ... ok -test_wikilinks28_incomplete_open_pipes_text (tests.test_roundtripping.TestRoundtripping) +test_wikilinks28_incomplete_open_pipes_text (tests.test_pytokenizer.TestPyTokenizer) incomplete wikilinks: a pipe, then text then two pipes ... ok -test_wikilinks29_incomplete_open_partial_close (tests.test_roundtripping.TestRoundtripping) +test_wikilinks29_incomplete_open_partial_close (tests.test_pytokenizer.TestPyTokenizer) incomplete wikilinks: an open, then one right brace ... ok -test_wikilinks30_incomplete_preserve_previous (tests.test_roundtripping.TestRoundtripping) +test_wikilinks30_incomplete_preserve_previous (tests.test_pytokenizer.TestPyTokenizer) incomplete wikilinks: a valid wikilink followed by an invalid one ... ok -test_readme_1 (tests.test_docs.TestDocs) -test a block of example code in the README ... ok -test_readme_2 (tests.test_docs.TestDocs) -test a block of example code in the README ... ok -test_readme_3 (tests.test_docs.TestDocs) -test a block of example code in the README ... ok -test_readme_4 (tests.test_docs.TestDocs) -test a block of example code in the README ... ok -test_readme_5 (tests.test_docs.TestDocs) -test a block of example code in the README; includes a web call ... skipped 'cannot continue because of unsuccessful web call' test_name (tests.test_parameter.TestParameter) test getter/setter for the name attribute ... ok test_showkey (tests.test_parameter.TestParameter) @@ -5372,28 +6580,6 @@ test Parameter.__unicode__() ... ok test_value (tests.test_parameter.TestParameter) test getter/setter for the value attribute ... ok -test_children (tests.test_comment.TestComment) -test Comment.__children__() ... ok -test_contents (tests.test_comment.TestComment) -test getter/setter for the contents attribute ... ok -test_showtree (tests.test_comment.TestComment) -test Comment.__showtree__() ... ok -test_strip (tests.test_comment.TestComment) -test Comment.__strip__() ... ok -test_unicode (tests.test_comment.TestComment) -test Comment.__unicode__() ... ok -test_children (tests.test_argument.TestArgument) -test Argument.__children__() ... ok -test_default (tests.test_argument.TestArgument) -test getter/setter for the default attribute ... ok -test_name (tests.test_argument.TestArgument) -test getter/setter for the name attribute ... ok -test_showtree (tests.test_argument.TestArgument) -test Argument.__showtree__() ... ok -test_strip (tests.test_argument.TestArgument) -test Argument.__strip__() ... ok -test_unicode (tests.test_argument.TestArgument) -test Argument.__unicode__() ... ok test_add (tests.test_tag.TestTag) test Tag.add() ... ok test_attributes (tests.test_tag.TestTag) @@ -5432,6 +6618,112 @@ test getter/setter for the wiki_markup attribute ... ok test_wiki_style_separator (tests.test_tag.TestTag) test getter/setter for wiki_style_separator attribute ... ok +test_parse_anything_invalid (tests.test_utils.TestUtils) +tests for invalid input to utils.parse_anything() ... ok +test_parse_anything_valid (tests.test_utils.TestUtils) +tests for valid input to utils.parse_anything() ... ok +test_children (tests.test_comment.TestComment) +test Comment.__children__() ... ok +test_contents (tests.test_comment.TestComment) +test getter/setter for the contents attribute ... ok +test_showtree (tests.test_comment.TestComment) +test Comment.__showtree__() ... ok +test_strip (tests.test_comment.TestComment) +test Comment.__strip__() ... ok +test_unicode (tests.test_comment.TestComment) +test Comment.__unicode__() ... ok +test_children (tests.test_wikilink.TestWikilink) +test Wikilink.__children__() ... ok +test_showtree (tests.test_wikilink.TestWikilink) +test Wikilink.__showtree__() ... ok +test_strip (tests.test_wikilink.TestWikilink) +test Wikilink.__strip__() ... ok +test_text (tests.test_wikilink.TestWikilink) +test getter/setter for the text attribute ... ok +test_title (tests.test_wikilink.TestWikilink) +test getter/setter for the title attribute ... ok +test_unicode (tests.test_wikilink.TestWikilink) +test Wikilink.__unicode__() ... ok +test_brackets (tests.test_external_link.TestExternalLink) +test getter/setter for the brackets attribute ... ok +test_children (tests.test_external_link.TestExternalLink) +test ExternalLink.__children__() ... ok +test_showtree (tests.test_external_link.TestExternalLink) +test ExternalLink.__showtree__() ... ok +test_strip (tests.test_external_link.TestExternalLink) +test ExternalLink.__strip__() ... ok +test_title (tests.test_external_link.TestExternalLink) +test getter/setter for the title attribute ... ok +test_unicode (tests.test_external_link.TestExternalLink) +test ExternalLink.__unicode__() ... ok +test_url (tests.test_external_link.TestExternalLink) +test getter/setter for the url attribute ... ok +test_child_add (tests.test_smart_list.TestSmartList) +make sure _ListProxy's add/radd/iadd work ... ok +test_child_get_set_del (tests.test_smart_list.TestSmartList) +make sure _ListProxy's getitem/setitem/delitem work ... ok +test_child_methods (tests.test_smart_list.TestSmartList) +make sure _ListProxy's non-magic methods work, like append() ... ok +test_child_other_magics (tests.test_smart_list.TestSmartList) +make sure _ListProxy's other magically implemented features work ... ok +test_docs (tests.test_smart_list.TestSmartList) +make sure the methods of SmartList/_ListProxy have docstrings ... ok +test_doctest (tests.test_smart_list.TestSmartList) +make sure the test embedded in SmartList's docstring passes ... ok +test_influence (tests.test_smart_list.TestSmartList) +make sure changes are propagated from parents to children ... ok +test_parent_add (tests.test_smart_list.TestSmartList) +make sure SmartList's add/radd/iadd work ... ok +test_parent_get_set_del (tests.test_smart_list.TestSmartList) +make sure SmartList's getitem/setitem/delitem work ... ok +test_parent_methods (tests.test_smart_list.TestSmartList) +make sure SmartList's non-magic methods work, like append() ... ok +test_parent_other_magics (tests.test_smart_list.TestSmartList) +make sure SmartList's other magically implemented features work ... ok +test_comparisons (tests.test_string_mixin.TestStringMixIn) +make sure comparison operators work ... ok +test_docs (tests.test_string_mixin.TestStringMixIn) +make sure the various methods of StringMixIn have docstrings ... ok +test_other_magics (tests.test_string_mixin.TestStringMixIn) +test other magically implemented features, like len() and iter() ... ok +test_other_methods (tests.test_string_mixin.TestStringMixIn) +test the remaining non-magic methods of StringMixIn ... ok +test_types (tests.test_string_mixin.TestStringMixIn) +make sure StringMixIns convert to different types correctly ... ok +test_name (tests.test_attribute.TestAttribute) +test getter/setter for the name attribute ... ok +test_padding (tests.test_attribute.TestAttribute) +test getter/setter for the padding attributes ... ok +test_quotes (tests.test_attribute.TestAttribute) +test getter/setter for the quotes attribute ... ok +test_unicode (tests.test_attribute.TestAttribute) +test Attribute.__unicode__() ... ok +test_value (tests.test_attribute.TestAttribute) +test getter/setter for the value attribute ... ok +test_argument (tests.test_builder.TestBuilder) +tests for building Argument nodes ... ok +test_comment (tests.test_builder.TestBuilder) +tests for building Comment nodes ... ok +test_external_link (tests.test_builder.TestBuilder) +tests for building ExternalLink nodes ... ok +test_heading (tests.test_builder.TestBuilder) +tests for building Heading nodes ... ok +test_html_entity (tests.test_builder.TestBuilder) +tests for building HTMLEntity nodes ... ok +test_integration (tests.test_builder.TestBuilder) +a test for building a combination of templates together ... ok +test_integration2 (tests.test_builder.TestBuilder) +an even more audacious test for building a horrible wikicode mess ... ok +test_parser_errors (tests.test_builder.TestBuilder) +test whether ParserError gets thrown for bad input ... ok +test_tag (tests.test_builder.TestBuilder) +tests for building Tag nodes ... ok +test_template (tests.test_builder.TestBuilder) +tests for building Template nodes ... ok +test_text (tests.test_builder.TestBuilder) +tests for building Text nodes ... ok +test_wikilink (tests.test_builder.TestBuilder) +tests for building Wikilink nodes ... ok test_arguments01_blank (tests.test_ctokenizer.TestCTokenizer) argument with no content ... ok test_arguments02_blank_with_default (tests.test_ctokenizer.TestCTokenizer) @@ -6534,24 +7826,6 @@ incomplete wikilinks: an open, then one right brace ... ok test_wikilinks30_incomplete_preserve_previous (tests.test_ctokenizer.TestCTokenizer) incomplete wikilinks: a valid wikilink followed by an invalid one ... ok -test_children (tests.test_html_entity.TestHTMLEntity) -test HTMLEntity.__children__() ... ok -test_hex_char (tests.test_html_entity.TestHTMLEntity) -test getter/setter for the hex_char attribute ... ok -test_hexadecimal (tests.test_html_entity.TestHTMLEntity) -test getter/setter for the hexadecimal attribute ... ok -test_named (tests.test_html_entity.TestHTMLEntity) -test getter/setter for the named attribute ... ok -test_normalize (tests.test_html_entity.TestHTMLEntity) -test getter/setter for the normalize attribute ... ok -test_showtree (tests.test_html_entity.TestHTMLEntity) -test HTMLEntity.__showtree__() ... ok -test_strip (tests.test_html_entity.TestHTMLEntity) -test HTMLEntity.__strip__() ... ok -test_unicode (tests.test_html_entity.TestHTMLEntity) -test HTMLEntity.__unicode__() ... ok -test_value (tests.test_html_entity.TestHTMLEntity) -test getter/setter for the value attribute ... ok test_add (tests.test_template.TestTemplate) test Template.add() ... ok test_children (tests.test_template.TestTemplate) @@ -6574,1258 +7848,6 @@ test Template.__strip__() ... ok test_unicode (tests.test_template.TestTemplate) test Template.__unicode__() ... ok -test_child_add (tests.test_smart_list.TestSmartList) -make sure _ListProxy's add/radd/iadd work ... ok -test_child_get_set_del (tests.test_smart_list.TestSmartList) -make sure _ListProxy's getitem/setitem/delitem work ... ok -test_child_methods (tests.test_smart_list.TestSmartList) -make sure _ListProxy's non-magic methods work, like append() ... ok -test_child_other_magics (tests.test_smart_list.TestSmartList) -make sure _ListProxy's other magically implemented features work ... ok -test_docs (tests.test_smart_list.TestSmartList) -make sure the methods of SmartList/_ListProxy have docstrings ... ok -test_doctest (tests.test_smart_list.TestSmartList) -make sure the test embedded in SmartList's docstring passes ... ok -test_influence (tests.test_smart_list.TestSmartList) -make sure changes are propagated from parents to children ... ok -test_parent_add (tests.test_smart_list.TestSmartList) -make sure SmartList's add/radd/iadd work ... ok -test_parent_get_set_del (tests.test_smart_list.TestSmartList) -make sure SmartList's getitem/setitem/delitem work ... ok -test_parent_methods (tests.test_smart_list.TestSmartList) -make sure SmartList's non-magic methods work, like append() ... ok -test_parent_other_magics (tests.test_smart_list.TestSmartList) -make sure SmartList's other magically implemented features work ... ok -test_arguments01_blank (tests.test_pytokenizer.TestPyTokenizer) -argument with no content ... ok -test_arguments02_blank_with_default (tests.test_pytokenizer.TestPyTokenizer) -argument with no content but a pipe ... ok -test_arguments03_basic (tests.test_pytokenizer.TestPyTokenizer) -simplest type of argument ... ok -test_arguments04_default (tests.test_pytokenizer.TestPyTokenizer) -argument with a default value ... ok -test_arguments05_blank_with_multiple_defaults (tests.test_pytokenizer.TestPyTokenizer) -no content, multiple pipes ... ok -test_arguments06_multiple_defaults (tests.test_pytokenizer.TestPyTokenizer) -multiple values separated by pipes ... ok -test_arguments07_newline (tests.test_pytokenizer.TestPyTokenizer) -newline as only content ... ok -test_arguments08_right_braces (tests.test_pytokenizer.TestPyTokenizer) -multiple } scattered throughout text ... ok -test_arguments09_right_braces_default (tests.test_pytokenizer.TestPyTokenizer) -multiple } scattered throughout text, with a default value ... ok -test_arguments10_nested (tests.test_pytokenizer.TestPyTokenizer) -an argument nested within another argument ... ok -test_arguments11_invalid_braces (tests.test_pytokenizer.TestPyTokenizer) -invalid argument: multiple braces that are not part of a template or argument ... ok -test_arguments12_incomplete_open_only (tests.test_pytokenizer.TestPyTokenizer) -incomplete arguments: just an open ... ok -test_arguments13_incomplete_open_text (tests.test_pytokenizer.TestPyTokenizer) -incomplete arguments: an open with some text ... ok -test_arguments14_incomplete_open_text_pipe (tests.test_pytokenizer.TestPyTokenizer) -incomplete arguments: an open, text, then a pipe ... ok -test_arguments15_incomplete_open_pipe (tests.test_pytokenizer.TestPyTokenizer) -incomplete arguments: an open, then a pipe ... ok -test_arguments16_incomplete_open_pipe_text (tests.test_pytokenizer.TestPyTokenizer) -incomplete arguments: an open, then a pipe, then text ... ok -test_arguments17_incomplete_open_pipes_text (tests.test_pytokenizer.TestPyTokenizer) -incomplete arguments: a pipe, then text then two pipes ... ok -test_arguments18_incomplete_open_partial_close (tests.test_pytokenizer.TestPyTokenizer) -incomplete arguments: an open, then one right brace ... ok -test_arguments19_incomplete_preserve_previous (tests.test_pytokenizer.TestPyTokenizer) -incomplete arguments: a valid argument followed by an invalid one ... ok -test_comments1_blank (tests.test_pytokenizer.TestPyTokenizer) -a blank comment ... ok -test_comments2_basic (tests.test_pytokenizer.TestPyTokenizer) -a basic comment ... ok -test_comments3_tons_of_nonsense (tests.test_pytokenizer.TestPyTokenizer) -a comment with tons of ignorable garbage in it ... ok -test_comments4_incomplete_blank (tests.test_pytokenizer.TestPyTokenizer) -a comment that doesn't close ... ok -test_comments5_incomplete_text (tests.test_pytokenizer.TestPyTokenizer) -a comment that doesn't close, with text ... ok -test_comments6_incomplete_partial_close (tests.test_pytokenizer.TestPyTokenizer) -a comment that doesn't close, with a partial close ... ok -test_comments7_incomplete_part_only (tests.test_pytokenizer.TestPyTokenizer) -a comment that only has a < and ! ... ok -test_external_links01_basic (tests.test_pytokenizer.TestPyTokenizer) -basic external link ... ok -test_external_links02_basic_brackets (tests.test_pytokenizer.TestPyTokenizer) -basic external link in brackets ... ok -test_external_links03_brackets_space (tests.test_pytokenizer.TestPyTokenizer) -basic external link in brackets, with a space after ... ok -test_external_links04_brackets_title (tests.test_pytokenizer.TestPyTokenizer) -basic external link in brackets, with a title ... ok -test_external_links05_brackets_multiword_title (tests.test_pytokenizer.TestPyTokenizer) -basic external link in brackets, with a multi-word title ... ok -test_external_links06_brackets_adjacent (tests.test_pytokenizer.TestPyTokenizer) -three adjacent bracket-enclosed external links ... ok -test_external_links07_brackets_newline_before (tests.test_pytokenizer.TestPyTokenizer) -bracket-enclosed link with a newline before the title ... ok -test_external_links08_brackets_newline_inside (tests.test_pytokenizer.TestPyTokenizer) -bracket-enclosed link with a newline in the title ... ok -test_external_links09_brackets_newline_after (tests.test_pytokenizer.TestPyTokenizer) -bracket-enclosed link with a newline after the title ... ok -test_external_links10_brackets_space_before (tests.test_pytokenizer.TestPyTokenizer) -bracket-enclosed link with a space before the URL ... ok -test_external_links11_brackets_title_like_url (tests.test_pytokenizer.TestPyTokenizer) -bracket-enclosed link with a title that looks like a URL ... ok -test_external_links12_brackets_recursive (tests.test_pytokenizer.TestPyTokenizer) -bracket-enclosed link with a bracket-enclosed link as the title ... ok -test_external_links13_brackets_recursive_2 (tests.test_pytokenizer.TestPyTokenizer) -bracket-enclosed link with a double bracket-enclosed link as the title ... ok -test_external_links14_period_after (tests.test_pytokenizer.TestPyTokenizer) -a period after a free link that is excluded ... ok -test_external_links15_colons_after (tests.test_pytokenizer.TestPyTokenizer) -colons after a free link that are excluded ... ok -test_external_links16_close_paren_after_excluded (tests.test_pytokenizer.TestPyTokenizer) -a closing parenthesis after a free link that is excluded ... ok -test_external_links17_close_paren_after_included (tests.test_pytokenizer.TestPyTokenizer) -a closing parenthesis after a free link that is included because of an opening parenthesis in the URL ... ok -test_external_links18_open_bracket_inside (tests.test_pytokenizer.TestPyTokenizer) -an open bracket inside a free link that causes it to be ended abruptly ... ok -test_external_links19_brackets_period_after (tests.test_pytokenizer.TestPyTokenizer) -a period after a bracket-enclosed link that is included ... ok -test_external_links20_brackets_punct_after (tests.test_pytokenizer.TestPyTokenizer) -punctuation after a bracket-enclosed link that are included ... ok -test_external_links21_brackets_close_paren_after_included (tests.test_pytokenizer.TestPyTokenizer) -a closing parenthesis after a bracket-enclosed link that is included ... ok -test_external_links22_brackets_close_paren_after_included_2 (tests.test_pytokenizer.TestPyTokenizer) -a closing parenthesis after a bracket-enclosed link that is also included ... ok -test_external_links23_brackets_open_bracket_inside (tests.test_pytokenizer.TestPyTokenizer) -an open bracket inside a bracket-enclosed link that is also included ... ok -test_external_links24_adjacent_space (tests.test_pytokenizer.TestPyTokenizer) -two free links separated by a space ... ok -test_external_links25_adjacent_newline (tests.test_pytokenizer.TestPyTokenizer) -two free links separated by a newline ... ok -test_external_links26_adjacent_close_bracket (tests.test_pytokenizer.TestPyTokenizer) -two free links separated by a close bracket ... ok -test_external_links27_html_entity_in_url (tests.test_pytokenizer.TestPyTokenizer) -a HTML entity parsed correctly inside a free link ... ok -test_external_links28_template_in_url (tests.test_pytokenizer.TestPyTokenizer) -a template parsed correctly inside a free link ... ok -test_external_links29_argument_in_url (tests.test_pytokenizer.TestPyTokenizer) -an argument parsed correctly inside a free link ... ok -test_external_links30_wikilink_in_url (tests.test_pytokenizer.TestPyTokenizer) -a wikilink that destroys a free link ... ok -test_external_links31_external_link_in_url (tests.test_pytokenizer.TestPyTokenizer) -a bracketed link that destroys a free link ... ok -test_external_links32_spaces_padding (tests.test_pytokenizer.TestPyTokenizer) -spaces padding a free link ... ok -test_external_links33_text_and_spaces_padding (tests.test_pytokenizer.TestPyTokenizer) -text and spaces padding a free link ... ok -test_external_links34_template_before (tests.test_pytokenizer.TestPyTokenizer) -a template before a free link ... ok -test_external_links35_spaces_padding_no_slashes (tests.test_pytokenizer.TestPyTokenizer) -spaces padding a free link with no slashes after the colon ... ok -test_external_links36_text_and_spaces_padding_no_slashes (tests.test_pytokenizer.TestPyTokenizer) -text and spaces padding a free link with no slashes after the colon ... ok -test_external_links37_template_before_no_slashes (tests.test_pytokenizer.TestPyTokenizer) -a template before a free link with no slashes after the colon ... ok -test_external_links38_no_slashes (tests.test_pytokenizer.TestPyTokenizer) -a free link with no slashes after the colon ... ok -test_external_links39_slashes_optional (tests.test_pytokenizer.TestPyTokenizer) -a free link using a scheme that doesn't need slashes, but has them anyway ... ok -test_external_links40_short (tests.test_pytokenizer.TestPyTokenizer) -a very short free link ... ok -test_external_links41_slashes_missing (tests.test_pytokenizer.TestPyTokenizer) -slashes missing from a free link with a scheme that requires them ... ok -test_external_links42_no_scheme_but_slashes (tests.test_pytokenizer.TestPyTokenizer) -no scheme in a free link, but slashes (protocol-relative free links are not supported) ... ok -test_external_links43_no_scheme_but_colon (tests.test_pytokenizer.TestPyTokenizer) -no scheme in a free link, but a colon ... ok -test_external_links44_no_scheme_but_colon_and_slashes (tests.test_pytokenizer.TestPyTokenizer) -no scheme in a free link, but a colon and slashes ... ok -test_external_links45_fake_scheme_no_slashes (tests.test_pytokenizer.TestPyTokenizer) -a nonexistent scheme in a free link, without slashes ... ok -test_external_links46_fake_scheme_slashes (tests.test_pytokenizer.TestPyTokenizer) -a nonexistent scheme in a free link, with slashes ... ok -test_external_links47_fake_scheme_brackets_no_slashes (tests.test_pytokenizer.TestPyTokenizer) -a nonexistent scheme in a bracketed link, without slashes ... ok -test_external_links48_fake_scheme_brackets_slashes (tests.test_pytokenizer.TestPyTokenizer) -#=a nonexistent scheme in a bracketed link, with slashes ... ok -test_external_links49_interrupted_scheme (tests.test_pytokenizer.TestPyTokenizer) -an otherwise valid scheme with something in the middle of it, in a free link ... ok -test_external_links50_interrupted_scheme_brackets (tests.test_pytokenizer.TestPyTokenizer) -an otherwise valid scheme with something in the middle of it, in a bracketed link ... ok -test_external_links51_no_slashes_brackets (tests.test_pytokenizer.TestPyTokenizer) -no slashes after the colon in a bracketed link ... ok -test_external_links52_space_before_no_slashes_brackets (tests.test_pytokenizer.TestPyTokenizer) -a space before a bracketed link with no slashes after the colon ... ok -test_external_links53_slashes_optional_brackets (tests.test_pytokenizer.TestPyTokenizer) -a bracketed link using a scheme that doesn't need slashes, but has them anyway ... ok -test_external_links54_short_brackets (tests.test_pytokenizer.TestPyTokenizer) -a very short link in brackets ... ok -test_external_links55_slashes_missing_brackets (tests.test_pytokenizer.TestPyTokenizer) -slashes missing from a scheme that requires them in a bracketed link ... ok -test_external_links56_protcol_relative (tests.test_pytokenizer.TestPyTokenizer) -a protocol-relative link (in brackets) ... ok -test_external_links57_scheme_missing_but_colon_brackets (tests.test_pytokenizer.TestPyTokenizer) -scheme missing from a bracketed link, but with a colon ... ok -test_external_links58_scheme_missing_but_colon_slashes_brackets (tests.test_pytokenizer.TestPyTokenizer) -scheme missing from a bracketed link, but with a colon and slashes ... ok -test_external_links59_unclosed_protocol_relative (tests.test_pytokenizer.TestPyTokenizer) -an unclosed protocol-relative bracketed link ... ok -test_external_links60_space_before_protcol_relative (tests.test_pytokenizer.TestPyTokenizer) -a space before a protocol-relative bracketed link ... ok -test_external_links61_unclosed_just_scheme (tests.test_pytokenizer.TestPyTokenizer) -an unclosed bracketed link, ending after the scheme ... ok -test_external_links62_unclosed_scheme_colon (tests.test_pytokenizer.TestPyTokenizer) -an unclosed bracketed link, ending after the colon ... ok -test_external_links63_unclosed_scheme_colon_slashes (tests.test_pytokenizer.TestPyTokenizer) -an unclosed bracketed link, ending after the slashes ... ok -test_external_links64_incomplete_bracket (tests.test_pytokenizer.TestPyTokenizer) -just an open bracket ... ok -test_external_links65_incomplete_scheme_colon (tests.test_pytokenizer.TestPyTokenizer) -a free link with just a scheme and a colon ... ok -test_external_links66_incomplete_scheme_colon_slashes (tests.test_pytokenizer.TestPyTokenizer) -a free link with just a scheme, colon, and slashes ... ok -test_external_links67_brackets_scheme_but_no_url (tests.test_pytokenizer.TestPyTokenizer) -brackets around a scheme and a colon ... ok -test_external_links68_brackets_scheme_slashes_but_no_url (tests.test_pytokenizer.TestPyTokenizer) -brackets around a scheme, colon, and slashes ... ok -test_external_links69_brackets_scheme_title_but_no_url (tests.test_pytokenizer.TestPyTokenizer) -brackets around a scheme, colon, and slashes, with a title ... ok -test_headings01_level_1 (tests.test_pytokenizer.TestPyTokenizer) -a basic level-1 heading ... ok -test_headings02_level_2 (tests.test_pytokenizer.TestPyTokenizer) -a basic level-2 heading ... ok -test_headings03_level_3 (tests.test_pytokenizer.TestPyTokenizer) -a basic level-3 heading ... ok -test_headings04_level_4 (tests.test_pytokenizer.TestPyTokenizer) -a basic level-4 heading ... ok -test_headings05_level_5 (tests.test_pytokenizer.TestPyTokenizer) -a basic level-5 heading ... ok -test_headings06_level_6 (tests.test_pytokenizer.TestPyTokenizer) -a basic level-6 heading ... ok -test_headings07_level_7 (tests.test_pytokenizer.TestPyTokenizer) -a level-6 heading that pretends to be a level-7 heading ... ok -test_headings08_level_3_2 (tests.test_pytokenizer.TestPyTokenizer) -a level-2 heading that pretends to be a level-3 heading ... ok -test_headings09_level_4_6 (tests.test_pytokenizer.TestPyTokenizer) -a level-4 heading that pretends to be a level-6 heading ... ok -test_headings10_newline_before (tests.test_pytokenizer.TestPyTokenizer) -a heading that starts after a newline ... ok -test_headings11_text_after (tests.test_pytokenizer.TestPyTokenizer) -text on the same line after ... ok -test_headings12_invalid_text_before (tests.test_pytokenizer.TestPyTokenizer) -invalid headings: text on the same line before ... ok -test_headings13_invalid_newline_middle (tests.test_pytokenizer.TestPyTokenizer) -invalid headings: newline in the middle ... ok -test_headings14_invalid_newline_end (tests.test_pytokenizer.TestPyTokenizer) -invalid headings: newline in the middle ... ok -test_headings15_invalid_nesting (tests.test_pytokenizer.TestPyTokenizer) -invalid headings: attempts at nesting ... ok -test_headings16_incomplete (tests.test_pytokenizer.TestPyTokenizer) -a heading that starts but doesn't finish ... ok -test_html_entities01_named (tests.test_pytokenizer.TestPyTokenizer) -a basic named HTML entity ... ok -test_html_entities02_numeric_decimal (tests.test_pytokenizer.TestPyTokenizer) -a basic decimal HTML entity ... ok -test_html_entities03_numeric_hexadecimal_x (tests.test_pytokenizer.TestPyTokenizer) -a basic hexadecimal HTML entity, using 'x' as a signal ... ok -test_html_entities04_numeric_hexadecimal_X (tests.test_pytokenizer.TestPyTokenizer) -a basic hexadecimal HTML entity, using 'X' as a signal ... ok -test_html_entities05_numeric_decimal_max (tests.test_pytokenizer.TestPyTokenizer) -the maximum acceptable decimal numeric entity ... ok -test_html_entities06_numeric_hex_max (tests.test_pytokenizer.TestPyTokenizer) -the maximum acceptable hexadecimal numeric entity ... ok -test_html_entities07_numeric_zeros (tests.test_pytokenizer.TestPyTokenizer) -zeros accepted at the beginning of a numeric entity ... ok -test_html_entities08_numeric_hex_zeros (tests.test_pytokenizer.TestPyTokenizer) -zeros accepted at the beginning of a hex numeric entity ... ok -test_html_entities09_invalid_named_too_long (tests.test_pytokenizer.TestPyTokenizer) -a named entity that is too long ... ok -test_html_entities10_invalid_named_undefined (tests.test_pytokenizer.TestPyTokenizer) -a named entity that doesn't exist ... ok -test_html_entities11_invalid_named_nonascii (tests.test_pytokenizer.TestPyTokenizer) -a named entity with non-ASCII characters ... ok -test_html_entities12_invalid_numeric_out_of_range_1 (tests.test_pytokenizer.TestPyTokenizer) -a numeric entity that is out of range: < 1 ... ok -test_html_entities13_invalid_numeric_out_of_range_2 (tests.test_pytokenizer.TestPyTokenizer) -a hex numeric entity that is out of range: < 1 ... ok -test_html_entities14_invalid_numeric_out_of_range_3 (tests.test_pytokenizer.TestPyTokenizer) -a numeric entity that is out of range: > 0x10FFFF ... ok -test_html_entities15_invalid_numeric_out_of_range_4 (tests.test_pytokenizer.TestPyTokenizer) -a hex numeric entity that is out of range: > 0x10FFFF ... ok -test_html_entities16_invalid_partial_amp (tests.test_pytokenizer.TestPyTokenizer) -invalid entities: just an ampersand ... ok -test_html_entities17_invalid_partial_amp_semicolon (tests.test_pytokenizer.TestPyTokenizer) -invalid entities: an ampersand and semicolon ... ok -test_html_entities18_invalid_partial_amp_pound (tests.test_pytokenizer.TestPyTokenizer) -invalid entities: just an ampersand, pound sign ... ok -test_html_entities19_invalid_partial_amp_pound_x (tests.test_pytokenizer.TestPyTokenizer) -invalid entities: just an ampersand, pound sign, x ... ok -test_html_entities20_invalid_partial_amp_pound_semicolon (tests.test_pytokenizer.TestPyTokenizer) -invalid entities: an ampersand, pound sign, and semicolon ... ok -test_html_entities21_invalid_partial_amp_pound_x_semicolon (tests.test_pytokenizer.TestPyTokenizer) -invalid entities: an ampersand, pound sign, x, and semicolon ... ok -test_html_entities22_invalid_partial_amp_pound_numbers (tests.test_pytokenizer.TestPyTokenizer) -invalid entities: an ampersand, pound sign, numbers ... ok -test_html_entities23_invalid_partial_amp_pound_x_semicolon (tests.test_pytokenizer.TestPyTokenizer) -invalid entities: an ampersand, pound sign, and x ... ok -test_integration01_empty (tests.test_pytokenizer.TestPyTokenizer) -sanity check that parsing an empty string yields nothing ... ok -test_integration02_template_argument_mix (tests.test_pytokenizer.TestPyTokenizer) -an ambiguous mix of templates and arguments ... ok -test_integration03_link_in_template_name (tests.test_pytokenizer.TestPyTokenizer) -a wikilink inside a template name, which breaks the template ... ok -test_integration04_rich_heading (tests.test_pytokenizer.TestPyTokenizer) -a heading with templates/wikilinks in it ... ok -test_integration05_html_entity_with_template (tests.test_pytokenizer.TestPyTokenizer) -a HTML entity with a template embedded inside ... ok -test_integration06_html_entity_with_comment (tests.test_pytokenizer.TestPyTokenizer) -a HTML entity with a comment embedded inside ... ok -test_integration07_rich_tags (tests.test_pytokenizer.TestPyTokenizer) -a HTML tag with tons of other things in it ... ok -test_integration08_wildcard (tests.test_pytokenizer.TestPyTokenizer) -a wildcard assortment of various things ... ok -test_integration09_wildcard_redux (tests.test_pytokenizer.TestPyTokenizer) -an even wilder assortment of various things ... ok -test_integration10_link_inside_dl (tests.test_pytokenizer.TestPyTokenizer) -an external link inside a def list, such that the external link is parsed ... ok -test_integration11_link_inside_dl_2 (tests.test_pytokenizer.TestPyTokenizer) -an external link inside a def list, such that the external link is not parsed ... ok -test_integration12_link_inside_template (tests.test_pytokenizer.TestPyTokenizer) -an external link nested inside a template, before the end ... ok -test_integration13_link_inside_template_2 (tests.test_pytokenizer.TestPyTokenizer) -an external link nested inside a template, before a separator ... ok -test_integration14_link_inside_template_3 (tests.test_pytokenizer.TestPyTokenizer) -an external link nested inside a template, before an equal sign ... ok -test_integration15_link_inside_argument (tests.test_pytokenizer.TestPyTokenizer) -an external link nested inside an argument ... ok -test_integration16_link_inside_heading (tests.test_pytokenizer.TestPyTokenizer) -an external link nested inside a heading ... ok -test_integration17_link_inside_tag_body (tests.test_pytokenizer.TestPyTokenizer) -an external link nested inside the body of a tag ... ok -test_integration18_link_inside_tag_style (tests.test_pytokenizer.TestPyTokenizer) -an external link nested inside style tags ... ok -test_integration19_style_tag_inside_link (tests.test_pytokenizer.TestPyTokenizer) -style tags disrupting an external link ... ok -test_integration20_comment_inside_link (tests.test_pytokenizer.TestPyTokenizer) -an HTML comment inside an external link ... ok -test_integration21_bracketed_link_inside_template (tests.test_pytokenizer.TestPyTokenizer) -a bracketed external link nested inside a template, before the end ... ok -test_integration22_comment_inside_bracketed_link (tests.test_pytokenizer.TestPyTokenizer) -an HTML comment inside a bracketed external link ... ok -test_integration23_wikilink_inside_external_link (tests.test_pytokenizer.TestPyTokenizer) -a wikilink inside an external link, which the parser considers valid (see issue #61) ... ok -test_integration24_external_link_inside_wikilink (tests.test_pytokenizer.TestPyTokenizer) -an external link inside a wikilink, valid in the case of images (see issue #62) ... ok -test_integration25_external_link_inside_wikilink_brackets (tests.test_pytokenizer.TestPyTokenizer) -an external link with brackets inside a wikilink ... ok -test_integration26_external_link_inside_wikilink_title (tests.test_pytokenizer.TestPyTokenizer) -an external link inside a wikilink title, which is not parsed ... ok -test_integration27_italics_inside_external_link_inside_incomplete_list (tests.test_pytokenizer.TestPyTokenizer) -italic text inside an external link inside an incomplete list ... ok -test_integration28_nodes_inside_external_link_after_punct (tests.test_pytokenizer.TestPyTokenizer) -various complex nodes inside an external link following punctuation ... ok -test_integration29_newline_and_comment_in_template_name (tests.test_pytokenizer.TestPyTokenizer) -a template name containing a newline followed by a comment ... ok -test_integration30_newline_and_comment_in_template_name_2 (tests.test_pytokenizer.TestPyTokenizer) -a template name containing a newline followed by a comment ... ok -test_integration31_newline_and_comment_in_template_name_3 (tests.test_pytokenizer.TestPyTokenizer) -a template name containing a newline followed by a comment ... ok -test_integration32_newline_and_comment_in_template_name_4 (tests.test_pytokenizer.TestPyTokenizer) -a template name containing a newline followed by a comment ... ok -test_integration33_newline_and_comment_in_template_name_5 (tests.test_pytokenizer.TestPyTokenizer) -a template name containing a newline followed by a comment ... ok -test_integration34_newline_and_comment_in_template_name_6 (tests.test_pytokenizer.TestPyTokenizer) -a template name containing a newline followed by a comment ... ok -test_integration35_newline_and_comment_in_template_name_7 (tests.test_pytokenizer.TestPyTokenizer) -a template name containing a newline followed by a comment ... ok -test_integration36_newline_and_comment_in_template_name_8 (tests.test_pytokenizer.TestPyTokenizer) -a template name containing a newline followed by a comment ... ok -test_integration37_tag_in_link_title (tests.test_pytokenizer.TestPyTokenizer) -HTML tags are invalid in link titles, even when complete ... ok -test_integration38_tag_in_template_name (tests.test_pytokenizer.TestPyTokenizer) -HTML tags are invalid in template names, even when complete ... ok -test_integration39_tag_in_link_text (tests.test_pytokenizer.TestPyTokenizer) -HTML tags are valid in link text ... ok -test_integration40_comment_in_link_title (tests.test_pytokenizer.TestPyTokenizer) -comments are valid in link titles ... ok -test_integration41_incomplete_comment_in_link_title (tests.test_pytokenizer.TestPyTokenizer) -incomplete comments are invalid in link titles ... ok -test_integration42_incomplete_comment_in_link_title_2 (tests.test_pytokenizer.TestPyTokenizer) -incomplete comments are invalid in link titles ... ok -test_integration43_incomplete_comment_in_link_title_3 (tests.test_pytokenizer.TestPyTokenizer) -incomplete comments are invalid in link titles ... ok -test_integration44_incomplete_comment_in_link_title_4 (tests.test_pytokenizer.TestPyTokenizer) -incomplete comments are invalid in link titles ... ok -test_integration45_incomplete_comment_in_link_title_5 (tests.test_pytokenizer.TestPyTokenizer) -incomplete comments are invalid in link titles ... ok -test_integration46_incomplete_comment_in_link_title_6 (tests.test_pytokenizer.TestPyTokenizer) -incomplete comments are invalid in link titles ... ok -test_integration47_wikilink_to_external_link_fallback (tests.test_pytokenizer.TestPyTokenizer) -an external link enclosed in an extra pair of brackets (see issue #120) ... ok -test_integration48_wikilink_to_external_link_fallback_2 (tests.test_pytokenizer.TestPyTokenizer) -an external link enclosed in an extra pair of brackets (see issue #120) ... ok -test_integration49_tables_in_templates (tests.test_pytokenizer.TestPyTokenizer) -catch error handling mistakes when wikitables are inside templates ... ok -test_integration50_tables_in_templates_2 (tests.test_pytokenizer.TestPyTokenizer) -catch error handling mistakes when wikitables are inside templates ... ok -test_integration51_many_invalid_nested_tags (tests.test_pytokenizer.TestPyTokenizer) -many unending nested tags that should be treated as plain text, followed by valid wikitext (see issues #42, #183) ... ok -test_tables01_empty_table (tests.test_pytokenizer.TestPyTokenizer) -parsing an empty table ... ok -test_tables02_inline_table (tests.test_pytokenizer.TestPyTokenizer) -tables with a close on the same line are not valid ... ok -test_tables03_no_table_close_simple (tests.test_pytokenizer.TestPyTokenizer) -no table close on inline table ... ok -test_tables04_no_table_close_newline (tests.test_pytokenizer.TestPyTokenizer) -no table close with a newline ... ok -test_tables05_no_table_close_inside_cell (tests.test_pytokenizer.TestPyTokenizer) -no table close while inside of a cell ... ok -test_tables06_no_table_close_inside_cell_after_newline (tests.test_pytokenizer.TestPyTokenizer) -no table close while inside of a cell after a newline ... ok -test_tables07_no_table_close_inside_cell_with_attributes (tests.test_pytokenizer.TestPyTokenizer) -no table close while inside of a cell with attributes ... ok -test_tables08_no_table_close_inside_row (tests.test_pytokenizer.TestPyTokenizer) -no table close while inside of a row ... ok -test_tables09_no_table_close_inside_row_after_newline (tests.test_pytokenizer.TestPyTokenizer) -no table close while inside of a row after a newline ... ok -test_tables10_no_table_close_row_and_cell (tests.test_pytokenizer.TestPyTokenizer) -no table close while inside a cell inside a row ... ok -test_tables11_no_table_close_attributes (tests.test_pytokenizer.TestPyTokenizer) -don't parse attributes as attributes if the table doesn't exist ... ok -test_tables12_no_table_close_unclosed_attributes (tests.test_pytokenizer.TestPyTokenizer) -don't parse unclosed attributes if the table doesn't exist ... ok -test_tables13_no_table_close_row_attributes (tests.test_pytokenizer.TestPyTokenizer) -don't parse row attributes as attributes if the table doesn't exist ... ok -test_tables14_no_table_close_cell (tests.test_pytokenizer.TestPyTokenizer) -don't parse cells if the table doesn't close ... ok -test_tables15_crazy_no_table_close (tests.test_pytokenizer.TestPyTokenizer) -lots of opened wiki syntax without closes ... ok -test_tables16_leading_whitespace_table (tests.test_pytokenizer.TestPyTokenizer) -handle leading whitespace for a table ... ok -test_tables17_whitespace_after_table (tests.test_pytokenizer.TestPyTokenizer) -handle whitespace after a table close ... ok -test_tables18_different_whitespace_after_table (tests.test_pytokenizer.TestPyTokenizer) -handle spaces after a table close ... ok -test_tables19_characters_after_table (tests.test_pytokenizer.TestPyTokenizer) -handle characters after a table close ... ok -test_tables20_characters_after_inline_table (tests.test_pytokenizer.TestPyTokenizer) -handle characters after an inline table close ... ok -test_tables21_leading_characters_table (tests.test_pytokenizer.TestPyTokenizer) -don't parse as a table when leading characters are not newline or whitespace ... ok -test_tables22_table_row_simple (tests.test_pytokenizer.TestPyTokenizer) -simple table row ... ok -test_tables23_table_row_multiple (tests.test_pytokenizer.TestPyTokenizer) -simple table row ... ok -test_tables24_table_cell_simple (tests.test_pytokenizer.TestPyTokenizer) -simple table cell ... ok -test_tables25_table_cell_inline (tests.test_pytokenizer.TestPyTokenizer) -multiple inline table cells ... ok -test_tables26_table_cell_multiple (tests.test_pytokenizer.TestPyTokenizer) -multiple table cells (non-inline) ... ok -test_tables27_table_header_simple (tests.test_pytokenizer.TestPyTokenizer) -simple header cell ... ok -test_tables28_table_header_inline (tests.test_pytokenizer.TestPyTokenizer) -multiple inline header cells ... ok -test_tables29_table_header_multiple (tests.test_pytokenizer.TestPyTokenizer) -multiple table header cells (non-inline) ... ok -test_tables30_nested_cells_and_rows (tests.test_pytokenizer.TestPyTokenizer) -combination of cells and rows in a table ... ok -test_tables31_table_cell_fake_close (tests.test_pytokenizer.TestPyTokenizer) -looks like a table close but is not ... ok -test_tables32_table_cell_more_fake_close (tests.test_pytokenizer.TestPyTokenizer) -looks like a table close but is not ... ok -test_tables33_table_cell_extra_close (tests.test_pytokenizer.TestPyTokenizer) -process second close as text ... ok -test_tables34_nowiki_inside_table (tests.test_pytokenizer.TestPyTokenizer) -nowiki handles pipe characters in tables ... ok -test_tables35_table_text_outside_cell (tests.test_pytokenizer.TestPyTokenizer) -parse text inside table but outside of a cell ... ok -test_tables36_no_table_cell_with_leading_characters (tests.test_pytokenizer.TestPyTokenizer) -fail to create a table cell when there are leading non-whitespace characters ... ok -test_tables37_no_table_row_with_leading_characters (tests.test_pytokenizer.TestPyTokenizer) -fail to create a table row when there are leading non-whitespace characters ... ok -test_tables38_template_inside_table_cell (tests.test_pytokenizer.TestPyTokenizer) -template within table cell ... ok -test_tables39_table_cell_attributes (tests.test_pytokenizer.TestPyTokenizer) -parse table cell style attributes ... ok -test_tables40_table_cell_empty_attributes (tests.test_pytokenizer.TestPyTokenizer) -parse table cell with style markers but no attributes ... ok -test_tables41_table_cell_with_dash (tests.test_pytokenizer.TestPyTokenizer) -parse a situation in which a cell line looks like a row line ... ok -test_tables42_table_cell_attributes_quote_with_pipe (tests.test_pytokenizer.TestPyTokenizer) -pipe inside an attribute quote should still be used as a style separator ... ok -test_tables43_table_cell_attributes_name_with_pipe (tests.test_pytokenizer.TestPyTokenizer) -pipe inside an attribute name should still be used as a style separator ... ok -test_tables44_table_cell_attributes_pipe_after_equals (tests.test_pytokenizer.TestPyTokenizer) -pipe inside an attribute should still be used as a style separator after an equals ... ok -test_tables45_table_cell_attributes_templates (tests.test_pytokenizer.TestPyTokenizer) -pipe inside attributes shouldn't be style separator ... ok -test_tables46_header_cell_attributes (tests.test_pytokenizer.TestPyTokenizer) -parse header cell style attributes ... ok -test_tables47_inline_cell_attributes (tests.test_pytokenizer.TestPyTokenizer) -parse cell style attributes of inline cells ... ok -test_tables48_table_row_attributes (tests.test_pytokenizer.TestPyTokenizer) -parse table row style attributes ... ok -test_tables49_table_row_attributes_crazy_whitespace (tests.test_pytokenizer.TestPyTokenizer) -parse table row style attributes with different whitespace ... ok -test_tables50_table_attributes (tests.test_pytokenizer.TestPyTokenizer) -parse table style attributes ... ok -test_tables51_inline_table_attributes (tests.test_pytokenizer.TestPyTokenizer) -handle attributes in inline tables ... ok -test_tables52_table_incorrect_attributes (tests.test_pytokenizer.TestPyTokenizer) -parse incorrect table style attributes ... ok -test_tables53_templates_in_table_attribute (tests.test_pytokenizer.TestPyTokenizer) -templates in the attributes of a table, after the start ... ok -test_tables54_templates_in_table_attribute_2 (tests.test_pytokenizer.TestPyTokenizer) -templates in the attributes of a table, after the start ... ok -test_tables55_inappropriate_marker_at_line_start (tests.test_pytokenizer.TestPyTokenizer) -an inappropriate marker (a right bracket) at the start of a line in the table ... ok -test_tables56_fake_close_near_start (tests.test_pytokenizer.TestPyTokenizer) -a fake closing token at the end of the first line in the table ... ok -test_tables57_fake_close_near_start_2 (tests.test_pytokenizer.TestPyTokenizer) -a fake closing token at the end of the first line in the table ... ok -test_tables58_junk_after_table_start (tests.test_pytokenizer.TestPyTokenizer) -ignore more junk on the first line of the table ... ok -test_tables59_junk_after_table_row (tests.test_pytokenizer.TestPyTokenizer) -ignore junk on the first line of a table row ... ok -test_tags01_basic (tests.test_pytokenizer.TestPyTokenizer) -a basic tag with an open and close ... ok -test_tags02_basic_selfclosing (tests.test_pytokenizer.TestPyTokenizer) -a basic self-closing tag ... ok -test_tags03_content (tests.test_pytokenizer.TestPyTokenizer) -a tag with some content in the middle ... ok -test_tags04_padded_open (tests.test_pytokenizer.TestPyTokenizer) -a tag with some padding in the open tag ... ok -test_tags05_padded_close (tests.test_pytokenizer.TestPyTokenizer) -a tag with some padding in the close tag ... ok -test_tags06_padded_selfclosing (tests.test_pytokenizer.TestPyTokenizer) -a self-closing tag with padding ... ok -test_tags07_attribute (tests.test_pytokenizer.TestPyTokenizer) -a tag with a single attribute ... ok -test_tags08_attribute_value (tests.test_pytokenizer.TestPyTokenizer) -a tag with a single attribute with a value ... ok -test_tags09_attribute_quoted (tests.test_pytokenizer.TestPyTokenizer) -a tag with a single quoted attribute ... ok -test_tags10_attribute_single_quoted (tests.test_pytokenizer.TestPyTokenizer) -a tag with a single singly-quoted attribute ... ok -test_tags11_attribute_hyphen (tests.test_pytokenizer.TestPyTokenizer) -a tag with a single attribute, containing a hyphen ... ok -test_tags12_attribute_quoted_hyphen (tests.test_pytokenizer.TestPyTokenizer) -a tag with a single quoted attribute, containing a hyphen ... ok -test_tags13_attribute_selfclosing (tests.test_pytokenizer.TestPyTokenizer) -a self-closing tag with a single attribute ... ok -test_tags14_attribute_selfclosing_value (tests.test_pytokenizer.TestPyTokenizer) -a self-closing tag with a single attribute with a value ... ok -test_tags15_attribute_selfclosing_value_quoted (tests.test_pytokenizer.TestPyTokenizer) -a self-closing tag with a single quoted attribute ... ok -test_tags16_nested_tag (tests.test_pytokenizer.TestPyTokenizer) -a tag nested within the attributes of another ... ok -test_tags17_nested_tag_quoted (tests.test_pytokenizer.TestPyTokenizer) -a tag nested within the attributes of another, quoted ... ok -test_tags18_nested_troll_tag (tests.test_pytokenizer.TestPyTokenizer) -a bogus tag that appears to be nested within the attributes of another ... ok -test_tags19_nested_troll_tag_quoted (tests.test_pytokenizer.TestPyTokenizer) -a bogus tag that appears to be nested within the attributes of another, quoted ... ok -test_tags20_nested_tag_selfclosing (tests.test_pytokenizer.TestPyTokenizer) -a tag nested within the attributes of another; outer tag implicitly self-closing ... ok -test_tags21_invalid_space_begin_open (tests.test_pytokenizer.TestPyTokenizer) -invalid tag: a space at the beginning of the open tag ... ok -test_tags22_invalid_space_begin_close (tests.test_pytokenizer.TestPyTokenizer) -invalid tag: a space at the beginning of the close tag ... ok -test_tags23_valid_space_end (tests.test_pytokenizer.TestPyTokenizer) -valid tag: spaces at the ends of both the open and close tags ... ok -test_tags24_invalid_template_ends (tests.test_pytokenizer.TestPyTokenizer) -invalid tag: a template at the ends of both the open and close tags ... ok -test_tags25_invalid_template_ends_nospace (tests.test_pytokenizer.TestPyTokenizer) -invalid tag: a template at the ends of both the open and close tags, without spacing ... ok -test_tags26_valid_template_end_open (tests.test_pytokenizer.TestPyTokenizer) -valid tag: a template at the end of the open tag ... ok -test_tags27_valid_template_end_open_space_end_close (tests.test_pytokenizer.TestPyTokenizer) -valid tag: a template at the end of the open tag; whitespace at the end of the close tag ... ok -test_tags28_invalid_template_end_open_nospace (tests.test_pytokenizer.TestPyTokenizer) -invalid tag: a template at the end of the open tag, without spacing ... ok -test_tags29_invalid_template_start_close (tests.test_pytokenizer.TestPyTokenizer) -invalid tag: a template at the beginning of the close tag ... ok -test_tags30_invalid_template_start_open (tests.test_pytokenizer.TestPyTokenizer) -invalid tag: a template at the beginning of the open tag ... ok -test_tags31_unclosed_quote (tests.test_pytokenizer.TestPyTokenizer) -a quoted attribute that is never closed ... ok -test_tags32_fake_quote (tests.test_pytokenizer.TestPyTokenizer) -a fake quoted attribute ... ok -test_tags33_fake_quote_complex (tests.test_pytokenizer.TestPyTokenizer) -a fake quoted attribute, with spaces and templates and links ... ok -test_tags34_quotes_in_quotes (tests.test_pytokenizer.TestPyTokenizer) -singly-quoted text inside a doubly-quoted attribute ... ok -test_tags35_quotes_in_quotes_2 (tests.test_pytokenizer.TestPyTokenizer) -doubly-quoted text inside a singly-quoted attribute ... ok -test_tags36_quotes_in_quotes_3 (tests.test_pytokenizer.TestPyTokenizer) -doubly-quoted text inside a singly-quoted attribute, with backslashes ... ok -test_tags37_incomplete_lbracket (tests.test_pytokenizer.TestPyTokenizer) -incomplete tags: just a left bracket ... ok -test_tags38_incomplete_lbracket_junk (tests.test_pytokenizer.TestPyTokenizer) -incomplete tags: just a left bracket, surrounded by stuff ... ok -test_tags39_incomplete_unclosed_open (tests.test_pytokenizer.TestPyTokenizer) -incomplete tags: an unclosed open tag ... ok -test_tags40_incomplete_unclosed_open_space (tests.test_pytokenizer.TestPyTokenizer) -incomplete tags: an unclosed open tag, space ... ok -test_tags41_incomplete_unclosed_open_unnamed_attr (tests.test_pytokenizer.TestPyTokenizer) -incomplete tags: an unclosed open tag, unnamed attribute ... ok -test_tags42_incomplete_unclosed_open_attr_equals (tests.test_pytokenizer.TestPyTokenizer) -incomplete tags: an unclosed open tag, attribute, equal sign ... ok -test_tags43_incomplete_unclosed_open_attr_equals_quoted (tests.test_pytokenizer.TestPyTokenizer) -incomplete tags: an unclosed open tag, attribute, equal sign, quote ... ok -test_tags44_incomplete_unclosed_open_attr (tests.test_pytokenizer.TestPyTokenizer) -incomplete tags: an unclosed open tag, attribute with a key/value ... ok -test_tags45_incomplete_unclosed_open_attr_quoted (tests.test_pytokenizer.TestPyTokenizer) -incomplete tags: an unclosed open tag, attribute with a key/value, quoted ... ok -test_tags46_incomplete_open (tests.test_pytokenizer.TestPyTokenizer) -incomplete tags: an open tag ... ok -test_tags47_incomplete_open_unnamed_attr (tests.test_pytokenizer.TestPyTokenizer) -incomplete tags: an open tag, unnamed attribute ... ok -test_tags48_incomplete_open_attr_equals (tests.test_pytokenizer.TestPyTokenizer) -incomplete tags: an open tag, attribute, equal sign ... ok -test_tags49_incomplete_open_attr (tests.test_pytokenizer.TestPyTokenizer) -incomplete tags: an open tag, attribute with a key/value ... ok -test_tags50_incomplete_open_attr_quoted (tests.test_pytokenizer.TestPyTokenizer) -incomplete tags: an open tag, attribute with a key/value, quoted ... ok -test_tags51_incomplete_open_text (tests.test_pytokenizer.TestPyTokenizer) -incomplete tags: an open tag, text ... ok -test_tags52_incomplete_open_attr_text (tests.test_pytokenizer.TestPyTokenizer) -incomplete tags: an open tag, attribute with a key/value, text ... ok -test_tags53_incomplete_open_text_lbracket (tests.test_pytokenizer.TestPyTokenizer) -incomplete tags: an open tag, text, left open bracket ... ok -test_tags54_incomplete_open_text_lbracket_slash (tests.test_pytokenizer.TestPyTokenizer) -incomplete tags: an open tag, text, left bracket, slash ... ok -test_tags55_incomplete_open_text_unclosed_close (tests.test_pytokenizer.TestPyTokenizer) -incomplete tags: an open tag, text, unclosed close ... ok -test_tags56_incomplete_open_text_wrong_close (tests.test_pytokenizer.TestPyTokenizer) -incomplete tags: an open tag, text, wrong close ... ok -test_tags57_incomplete_unclosed_close (tests.test_pytokenizer.TestPyTokenizer) -incomplete tags: an unclosed close tag ... ok -test_tags58_incomplete_unclosed_close_text (tests.test_pytokenizer.TestPyTokenizer) -incomplete tags: an unclosed close tag, with text ... ok -test_tags59_incomplete_close (tests.test_pytokenizer.TestPyTokenizer) -incomplete tags: a close tag ... ok -test_tags60_incomplete_no_tag_name_open (tests.test_pytokenizer.TestPyTokenizer) -incomplete tags: no tag name within brackets; just an open ... ok -test_tags61_incomplete_no_tag_name_selfclosing (tests.test_pytokenizer.TestPyTokenizer) -incomplete tags: no tag name within brackets; self-closing ... ok -test_tags62_incomplete_no_tag_name_open_close (tests.test_pytokenizer.TestPyTokenizer) -incomplete tags: no tag name within brackets; open and close ... ok -test_tags63_backslash_premature_before (tests.test_pytokenizer.TestPyTokenizer) -a backslash before a quote before a space ... ok -test_tags64_backslash_premature_after (tests.test_pytokenizer.TestPyTokenizer) -a backslash before a quote after a space ... ok -test_tags65_backslash_premature_middle (tests.test_pytokenizer.TestPyTokenizer) -a backslash before a quote in the middle of a word ... ok -test_tags66_backslash_adjacent (tests.test_pytokenizer.TestPyTokenizer) -escaped quotes next to unescaped quotes ... ok -test_tags67_backslash_endquote (tests.test_pytokenizer.TestPyTokenizer) -backslashes before the end quote, causing the attribute to become unquoted ... ok -test_tags68_backslash_double (tests.test_pytokenizer.TestPyTokenizer) -two adjacent backslashes, which do *not* affect the quote ... ok -test_tags69_backslash_triple (tests.test_pytokenizer.TestPyTokenizer) -three adjacent backslashes, which do *not* affect the quote ... ok -test_tags70_backslash_unaffecting (tests.test_pytokenizer.TestPyTokenizer) -backslashes near quotes, but not immediately adjacent, thus having no effect ... ok -test_tags71_unparsable (tests.test_pytokenizer.TestPyTokenizer) -a tag that should not be put through the normal parser ... ok -test_tags72_unparsable_complex (tests.test_pytokenizer.TestPyTokenizer) -a tag that should not be put through the normal parser; lots of stuff inside ... ok -test_tags73_unparsable_attributed (tests.test_pytokenizer.TestPyTokenizer) -a tag that should not be put through the normal parser; parsed attributes ... ok -test_tags74_unparsable_incomplete (tests.test_pytokenizer.TestPyTokenizer) -a tag that should not be put through the normal parser; incomplete ... ok -test_tags75_unparsable_entity (tests.test_pytokenizer.TestPyTokenizer) -a HTML entity inside unparsable text is still parsed ... ok -test_tags76_unparsable_entity_incomplete (tests.test_pytokenizer.TestPyTokenizer) -an incomplete HTML entity inside unparsable text ... ok -test_tags77_unparsable_entity_incomplete_2 (tests.test_pytokenizer.TestPyTokenizer) -an incomplete HTML entity inside unparsable text ... ok -test_tags78_single_open_close (tests.test_pytokenizer.TestPyTokenizer) -a tag that supports being single; both an open and a close tag ... ok -test_tags79_single_open (tests.test_pytokenizer.TestPyTokenizer) -a tag that supports being single; just an open tag ... ok -test_tags80_single_selfclose (tests.test_pytokenizer.TestPyTokenizer) -a tag that supports being single; a self-closing tag ... ok -test_tags81_single_close (tests.test_pytokenizer.TestPyTokenizer) -a tag that supports being single; just a close tag ... ok -test_tags82_single_only_open_close (tests.test_pytokenizer.TestPyTokenizer) -a tag that can only be single; both an open and a close tag ... ok -test_tags83_single_only_open (tests.test_pytokenizer.TestPyTokenizer) -a tag that can only be single; just an open tag ... ok -test_tags84_single_only_selfclose (tests.test_pytokenizer.TestPyTokenizer) -a tag that can only be single; a self-closing tag ... ok -test_tags85_single_only_close (tests.test_pytokenizer.TestPyTokenizer) -a tag that can only be single; just a close tag ... ok -test_tags86_single_only_double (tests.test_pytokenizer.TestPyTokenizer) -a tag that can only be single; a tag with backslashes at the beginning and end ... ok -test_tags87_single_only_close_attribute (tests.test_pytokenizer.TestPyTokenizer) -a tag that can only be single; presented as a close tag with an attribute ... ok -test_tags88_capitalization (tests.test_pytokenizer.TestPyTokenizer) -caps should be ignored within tag names ... ok -test_tags89_unparsable_incomplete_close (tests.test_pytokenizer.TestPyTokenizer) -an unparsable tag with an incomplete close afterwards ... ok -test_tags90_unparsable_with_intermediates (tests.test_pytokenizer.TestPyTokenizer) -an unparsable tag with intermediate tags inside of it ... ok -test_tags91_unparsable_with_intermediates_normalize (tests.test_pytokenizer.TestPyTokenizer) -an unparsable tag with intermediate tags inside of it, requiring normalization ... ok -test_tags92_non_ascii_open (tests.test_pytokenizer.TestPyTokenizer) -a open tag containing non-ASCII characters ... ok -test_tags93_non_ascii_full (tests.test_pytokenizer.TestPyTokenizer) -an open/close tag pair containing non-ASCII characters ... ok -test_tags94_single_nested_selfclosing (tests.test_pytokenizer.TestPyTokenizer) -a single (unpaired) tag with a self-closing tag in the middle (see issue #147) ... ok -test_tags_wikimarkup01_basic_italics (tests.test_pytokenizer.TestPyTokenizer) -basic italic text ... ok -test_tags_wikimarkup02_basic_bold (tests.test_pytokenizer.TestPyTokenizer) -basic bold text ... ok -test_tags_wikimarkup03_basic_ul (tests.test_pytokenizer.TestPyTokenizer) -basic unordered list ... ok -test_tags_wikimarkup04_basic_ol (tests.test_pytokenizer.TestPyTokenizer) -basic ordered list ... ok -test_tags_wikimarkup05_basic_dt (tests.test_pytokenizer.TestPyTokenizer) -basic description term ... ok -test_tags_wikimarkup06_basic_dd (tests.test_pytokenizer.TestPyTokenizer) -basic description item ... ok -test_tags_wikimarkup07_basic_hr (tests.test_pytokenizer.TestPyTokenizer) -basic horizontal rule ... ok -test_tags_wikimarkup08_complex_italics (tests.test_pytokenizer.TestPyTokenizer) -italics with a lot in them ... ok -test_tags_wikimarkup09_multiline_italics (tests.test_pytokenizer.TestPyTokenizer) -italics spanning mulitple lines ... ok -test_tags_wikimarkup10_unending_italics (tests.test_pytokenizer.TestPyTokenizer) -italics without an ending tag ... ok -test_tags_wikimarkup11_misleading_italics_end (tests.test_pytokenizer.TestPyTokenizer) -italics with something that looks like an end but isn't ... ok -test_tags_wikimarkup12_italics_start_outside_end_inside (tests.test_pytokenizer.TestPyTokenizer) -italics that start outside a link and end inside it ... ok -test_tags_wikimarkup13_italics_start_inside_end_outside (tests.test_pytokenizer.TestPyTokenizer) -italics that start inside a link and end outside it ... ok -test_tags_wikimarkup14_complex_bold (tests.test_pytokenizer.TestPyTokenizer) -bold with a lot in it ... ok -test_tags_wikimarkup15_multiline_bold (tests.test_pytokenizer.TestPyTokenizer) -bold spanning mulitple lines ... ok -test_tags_wikimarkup16_unending_bold (tests.test_pytokenizer.TestPyTokenizer) -bold without an ending tag ... ok -test_tags_wikimarkup17_misleading_bold_end (tests.test_pytokenizer.TestPyTokenizer) -bold with something that looks like an end but isn't ... ok -test_tags_wikimarkup18_bold_start_outside_end_inside (tests.test_pytokenizer.TestPyTokenizer) -bold that start outside a link and end inside it ... ok -test_tags_wikimarkup19_bold_start_inside_end_outside (tests.test_pytokenizer.TestPyTokenizer) -bold that start inside a link and end outside it ... ok -test_tags_wikimarkup20_bold_and_italics (tests.test_pytokenizer.TestPyTokenizer) -bold and italics together ... ok -test_tags_wikimarkup21_both_then_bold (tests.test_pytokenizer.TestPyTokenizer) -text that starts bold/italic, then is just bold ... ok -test_tags_wikimarkup22_both_then_italics (tests.test_pytokenizer.TestPyTokenizer) -text that starts bold/italic, then is just italic ... ok -test_tags_wikimarkup23_bold_then_both (tests.test_pytokenizer.TestPyTokenizer) -text that starts just bold, then is bold/italic ... ok -test_tags_wikimarkup24_italics_then_both (tests.test_pytokenizer.TestPyTokenizer) -text that starts just italic, then is bold/italic ... ok -test_tags_wikimarkup25_italics_then_bold (tests.test_pytokenizer.TestPyTokenizer) -text that starts italic, then is bold ... ok -test_tags_wikimarkup26_bold_then_italics (tests.test_pytokenizer.TestPyTokenizer) -text that starts bold, then is italic ... ok -test_tags_wikimarkup27_five_three (tests.test_pytokenizer.TestPyTokenizer) -five ticks to open, three to close (bold) ... ok -test_tags_wikimarkup28_five_two (tests.test_pytokenizer.TestPyTokenizer) -five ticks to open, two to close (bold) ... ok -test_tags_wikimarkup29_four (tests.test_pytokenizer.TestPyTokenizer) -four ticks ... ok -test_tags_wikimarkup30_four_two (tests.test_pytokenizer.TestPyTokenizer) -four ticks to open, two to close ... ok -test_tags_wikimarkup31_two_three (tests.test_pytokenizer.TestPyTokenizer) -two ticks to open, three to close ... ok -test_tags_wikimarkup32_two_four (tests.test_pytokenizer.TestPyTokenizer) -two ticks to open, four to close ... ok -test_tags_wikimarkup33_two_three_two (tests.test_pytokenizer.TestPyTokenizer) -two ticks to open, three to close, two afterwards ... ok -test_tags_wikimarkup34_two_four_four (tests.test_pytokenizer.TestPyTokenizer) -two ticks to open, four to close, four afterwards ... ok -test_tags_wikimarkup35_seven (tests.test_pytokenizer.TestPyTokenizer) -seven ticks ... ok -test_tags_wikimarkup36_unending_bold_and_italics (tests.test_pytokenizer.TestPyTokenizer) -five ticks (bold and italics) that don't end ... ok -test_tags_wikimarkup37_complex_ul (tests.test_pytokenizer.TestPyTokenizer) -ul with a lot in it ... ok -test_tags_wikimarkup38_ul_multiline_template (tests.test_pytokenizer.TestPyTokenizer) -ul with a template that spans multiple lines ... ok -test_tags_wikimarkup39_ul_adjacent (tests.test_pytokenizer.TestPyTokenizer) -multiple adjacent uls ... ok -test_tags_wikimarkup40_ul_depths (tests.test_pytokenizer.TestPyTokenizer) -multiple adjacent uls, with differing depths ... ok -test_tags_wikimarkup41_ul_space_before (tests.test_pytokenizer.TestPyTokenizer) -uls with space before them ... ok -test_tags_wikimarkup42_ul_interruption (tests.test_pytokenizer.TestPyTokenizer) -high-depth ul with something blocking it ... ok -test_tags_wikimarkup43_complex_ol (tests.test_pytokenizer.TestPyTokenizer) -ol with a lot in it ... ok -test_tags_wikimarkup44_ol_multiline_template (tests.test_pytokenizer.TestPyTokenizer) -ol with a template that spans moltiple lines ... ok -test_tags_wikimarkup45_ol_adjacent (tests.test_pytokenizer.TestPyTokenizer) -moltiple adjacent ols ... ok -test_tags_wikimarkup46_ol_depths (tests.test_pytokenizer.TestPyTokenizer) -moltiple adjacent ols, with differing depths ... ok -test_tags_wikimarkup47_ol_space_before (tests.test_pytokenizer.TestPyTokenizer) -ols with space before them ... ok -test_tags_wikimarkup48_ol_interruption (tests.test_pytokenizer.TestPyTokenizer) -high-depth ol with something blocking it ... ok -test_tags_wikimarkup49_ul_ol_mix (tests.test_pytokenizer.TestPyTokenizer) -a mix of adjacent uls and ols ... ok -test_tags_wikimarkup50_complex_dt (tests.test_pytokenizer.TestPyTokenizer) -dt with a lot in it ... ok -test_tags_wikimarkup51_dt_multiline_template (tests.test_pytokenizer.TestPyTokenizer) -dt with a template that spans mdttiple lines ... ok -test_tags_wikimarkup52_dt_adjacent (tests.test_pytokenizer.TestPyTokenizer) -mdttiple adjacent dts ... ok -test_tags_wikimarkup53_dt_depths (tests.test_pytokenizer.TestPyTokenizer) -mdttiple adjacent dts, with differing depths ... ok -test_tags_wikimarkup54_dt_space_before (tests.test_pytokenizer.TestPyTokenizer) -dts with space before them ... ok -test_tags_wikimarkup55_dt_interruption (tests.test_pytokenizer.TestPyTokenizer) -high-depth dt with something blocking it ... ok -test_tags_wikimarkup56_complex_dd (tests.test_pytokenizer.TestPyTokenizer) -dd with a lot in it ... ok -test_tags_wikimarkup57_dd_multiline_template (tests.test_pytokenizer.TestPyTokenizer) -dd with a template that spans mddtiple lines ... ok -test_tags_wikimarkup58_dd_adjacent (tests.test_pytokenizer.TestPyTokenizer) -mddtiple adjacent dds ... ok -test_tags_wikimarkup59_dd_depths (tests.test_pytokenizer.TestPyTokenizer) -mddtiple adjacent dds, with differing depths ... ok -test_tags_wikimarkup60_dd_space_before (tests.test_pytokenizer.TestPyTokenizer) -dds with space before them ... ok -test_tags_wikimarkup61_dd_interruption (tests.test_pytokenizer.TestPyTokenizer) -high-depth dd with something blocking it ... ok -test_tags_wikimarkup62_dt_dd_mix (tests.test_pytokenizer.TestPyTokenizer) -a mix of adjacent dts and dds ... ok -test_tags_wikimarkup63_dt_dd_mix2 (tests.test_pytokenizer.TestPyTokenizer) -the correct usage of a dt/dd unit, as in a dl ... ok -test_tags_wikimarkup64_dt_dd_mix3 (tests.test_pytokenizer.TestPyTokenizer) -another example of correct (but strange) dt/dd usage ... ok -test_tags_wikimarkup65_dt_dd_mix4 (tests.test_pytokenizer.TestPyTokenizer) -another example of correct dt/dd usage, with a trigger for a specific parse route ... ok -test_tags_wikimarkup66_ul_ol_dt_dd_mix (tests.test_pytokenizer.TestPyTokenizer) -an assortment of uls, ols, dds, and dts ... ok -test_tags_wikimarkup67_hr_text_before (tests.test_pytokenizer.TestPyTokenizer) -text before an otherwise-valid hr ... ok -test_tags_wikimarkup68_hr_text_after (tests.test_pytokenizer.TestPyTokenizer) -text after a valid hr ... ok -test_tags_wikimarkup69_hr_text_before_after (tests.test_pytokenizer.TestPyTokenizer) -text at both ends of an otherwise-valid hr ... ok -test_tags_wikimarkup70_hr_newlines (tests.test_pytokenizer.TestPyTokenizer) -newlines surrounding a valid hr ... ok -test_tags_wikimarkup71_hr_adjacent (tests.test_pytokenizer.TestPyTokenizer) -two adjacent hrs ... ok -test_tags_wikimarkup72_hr_adjacent_space (tests.test_pytokenizer.TestPyTokenizer) -two adjacent hrs, with a space before the second one, making it invalid ... ok -test_tags_wikimarkup73_hr_short (tests.test_pytokenizer.TestPyTokenizer) -an invalid three-hyphen-long hr ... ok -test_tags_wikimarkup74_hr_long (tests.test_pytokenizer.TestPyTokenizer) -a very long, valid hr ... ok -test_tags_wikimarkup75_hr_interruption_short (tests.test_pytokenizer.TestPyTokenizer) -a hr that is interrupted, making it invalid ... ok -test_tags_wikimarkup76_hr_interruption_long (tests.test_pytokenizer.TestPyTokenizer) -a hr that is interrupted, but the first part remains valid because it is long enough ... ok -test_tags_wikimarkup77_nowiki_cancel (tests.test_pytokenizer.TestPyTokenizer) -a nowiki tag before a list causes it to not be parsed ... ok -test_templates001_no_params (tests.test_pytokenizer.TestPyTokenizer) -simplest type of template ... ok -test_templates002_one_param_unnamed (tests.test_pytokenizer.TestPyTokenizer) -basic template with one unnamed parameter ... ok -test_templates003_one_param_named (tests.test_pytokenizer.TestPyTokenizer) -basic template with one named parameter ... ok -test_templates004_multiple_unnamed_params (tests.test_pytokenizer.TestPyTokenizer) -basic template with multiple unnamed parameters ... ok -test_templates005_multiple_named_params (tests.test_pytokenizer.TestPyTokenizer) -basic template with multiple named parameters ... ok -test_templates006_multiple_mixed_params (tests.test_pytokenizer.TestPyTokenizer) -basic template with multiple unnamed/named parameters ... ok -test_templates007_multiple_mixed_params2 (tests.test_pytokenizer.TestPyTokenizer) -basic template with multiple unnamed/named parameters in another order ... ok -test_templates008_blank_params (tests.test_pytokenizer.TestPyTokenizer) -template with blank parameters (mix of pipes and equal signs) ... ok -test_templates009_nested_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) -nested template as an unnamed parameter ... ok -test_templates010_nested_named_param_value (tests.test_pytokenizer.TestPyTokenizer) -nested template as a parameter value with a named parameter ... ok -test_templates011_nested_named_param_name_and_value (tests.test_pytokenizer.TestPyTokenizer) -nested templates as a parameter name and value ... ok -test_templates012_nested_name_start (tests.test_pytokenizer.TestPyTokenizer) -nested template at the beginning of a template name ... ok -test_templates013_nested_name_start_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) -nested template at the beginning of a template name and as an unnamed parameter ... ok -test_templates014_nested_name_start_named_param_value (tests.test_pytokenizer.TestPyTokenizer) -nested template at the beginning of a template name and as a parameter value with a named parameter ... ok -test_templates015_nested_name_start_named_param_name_and_value (tests.test_pytokenizer.TestPyTokenizer) -nested template at the beginning of a template name and as a parameter name and value ... ok -test_templates016_nested_name_end (tests.test_pytokenizer.TestPyTokenizer) -nested template at the end of a template name ... ok -test_templates017_nested_name_end_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) -nested template at the end of a template name and as an unnamed parameter ... ok -test_templates018_nested_name_end_named_param_value (tests.test_pytokenizer.TestPyTokenizer) -nested template at the end of a template name and as a parameter value with a named parameter ... ok -test_templates019_nested_name_end_named_param_name_and_value (tests.test_pytokenizer.TestPyTokenizer) -nested template at the end of a template name and as a parameter name and value ... ok -test_templates020_nested_name_mid (tests.test_pytokenizer.TestPyTokenizer) -nested template in the middle of a template name ... ok -test_templates021_nested_name_mid_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) -nested template in the middle of a template name and as an unnamed parameter ... ok -test_templates022_nested_name_mid_named_param_value (tests.test_pytokenizer.TestPyTokenizer) -nested template in the middle of a template name and as a parameter value with a named parameter ... ok -test_templates023_nested_name_mid_named_param_name_and_value (tests.test_pytokenizer.TestPyTokenizer) -nested template in the middle of a template name and as a parameter name and value ... ok -test_templates024_nested_name_start_end (tests.test_pytokenizer.TestPyTokenizer) -nested template at the beginning and end of a template name ... ok -test_templates025_nested_name_start_end_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) -nested template at the beginning and end of a template name and as an unnamed parameter ... ok -test_templates026_nested_name_start_end_named_param_value (tests.test_pytokenizer.TestPyTokenizer) -nested template at the beginning and end of a template name and as a parameter value with a named parameter ... ok -test_templates027_nested_name_start_end_named_param_name_and_value (tests.test_pytokenizer.TestPyTokenizer) -nested template at the beginning and end of a template name and as a parameter name and value ... ok -test_templates028_nested_names_multiple (tests.test_pytokenizer.TestPyTokenizer) -multiple nested templates within nested templates ... ok -test_templates029_nested_names_multiple_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) -multiple nested templates within nested templates with a nested unnamed parameter ... ok -test_templates030_nested_names_multiple_named_param_value (tests.test_pytokenizer.TestPyTokenizer) -multiple nested templates within nested templates with a nested parameter value in a named parameter ... ok -test_templates031_nested_names_multiple_named_param_name_and_value (tests.test_pytokenizer.TestPyTokenizer) -multiple nested templates within nested templates with a nested parameter name and value ... ok -test_templates032_mixed_nested_templates (tests.test_pytokenizer.TestPyTokenizer) -mixed assortment of nested templates within template names, parameter names, and values ... ok -test_templates033_nested_two_args (tests.test_pytokenizer.TestPyTokenizer) -template whose first parameter is unnamed with two templates, followed by a named parameter ... ok -test_templates034_newlines_start (tests.test_pytokenizer.TestPyTokenizer) -a newline at the start of a template name ... ok -test_templates035_newlines_end (tests.test_pytokenizer.TestPyTokenizer) -a newline at the end of a template name ... ok -test_templates036_newlines_start_end (tests.test_pytokenizer.TestPyTokenizer) -a newline at the start and end of a template name ... ok -test_templates037_newlines_mid (tests.test_pytokenizer.TestPyTokenizer) -a newline at the middle of a template name ... ok -test_templates038_newlines_start_mid (tests.test_pytokenizer.TestPyTokenizer) -a newline at the start and middle of a template name ... ok -test_templates039_newlines_mid_end (tests.test_pytokenizer.TestPyTokenizer) -a newline at the middle and end of a template name ... ok -test_templates040_newlines_start_mid_end (tests.test_pytokenizer.TestPyTokenizer) -a newline at the start, middle, and end of a template name ... ok -test_templates041_newlines_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) -newlines within an unnamed template parameter ... ok -test_templates042_newlines_enclose_template_name_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) -newlines enclosing a template name and within an unnamed template parameter ... ok -test_templates043_newlines_within_template_name_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) -newlines within a template name and within an unnamed template parameter ... ok -test_templates044_newlines_enclose_template_name_named_param_value (tests.test_pytokenizer.TestPyTokenizer) -newlines enclosing a template name and within a named parameter value ... ok -test_templates045_newlines_within_template_name_named_param_value (tests.test_pytokenizer.TestPyTokenizer) -newlines within a template name and within a named parameter value ... ok -test_templates046_newlines_named_param_name (tests.test_pytokenizer.TestPyTokenizer) -newlines within a parameter name ... ok -test_templates047_newlines_named_param_name_param_value (tests.test_pytokenizer.TestPyTokenizer) -newlines within a parameter name and within a parameter value ... ok -test_templates048_newlines_enclose_template_name_named_param_name (tests.test_pytokenizer.TestPyTokenizer) -newlines enclosing a template name and within a parameter name ... ok -test_templates049_newlines_enclose_template_name_named_param_name_param_value (tests.test_pytokenizer.TestPyTokenizer) -newlines enclosing a template name and within a parameter name and within a parameter value ... ok -test_templates050_newlines_within_template_name_named_param_name (tests.test_pytokenizer.TestPyTokenizer) -newlines within a template name and within a parameter name ... ok -test_templates051_newlines_within_template_name_named_param_name_param_value (tests.test_pytokenizer.TestPyTokenizer) -newlines within a template name and within a parameter name and within a parameter value ... ok -test_templates052_newlines_wildcard (tests.test_pytokenizer.TestPyTokenizer) -a random, complex assortment of templates and newlines ... ok -test_templates053_newlines_wildcard_redux (tests.test_pytokenizer.TestPyTokenizer) -an even more random and complex assortment of templates and newlines ... ok -test_templates054_newlines_wildcard_redux_invalid (tests.test_pytokenizer.TestPyTokenizer) -a variation of the newlines_wildcard_redux test that is invalid ... ok -test_templates055_newlines_spaces (tests.test_pytokenizer.TestPyTokenizer) -newlines in the middle of a template name, followed by spaces ... ok -test_templates056_newlines_spaces_param (tests.test_pytokenizer.TestPyTokenizer) -newlines in the middle of a template name, followed by spaces, with a parameter ... ok -test_templates057_invalid_blank (tests.test_pytokenizer.TestPyTokenizer) -invalid template with no content ... ok -test_templates058_invalid_blank_whitespace (tests.test_pytokenizer.TestPyTokenizer) -invalid template with no content, but whitespace ... ok -test_templates059_invalid_blank_pipe (tests.test_pytokenizer.TestPyTokenizer) -invalid template with no content, but a parameter ... ok -test_templates060_invalid_blank_whitespace_pipe (tests.test_pytokenizer.TestPyTokenizer) -invalid template with no content, but whitespace and a parameter ... ok -test_templates061_invalid_name_left_brace_middle (tests.test_pytokenizer.TestPyTokenizer) -invalid characters in template name: left brace in middle ... ok -test_templates062_invalid_name_right_brace_middle (tests.test_pytokenizer.TestPyTokenizer) -invalid characters in template name: right brace in middle ... ok -test_templates063_invalid_name_left_braces (tests.test_pytokenizer.TestPyTokenizer) -invalid characters in template name: two left braces in middle ... ok -test_templates064_invalid_name_left_bracket_middle (tests.test_pytokenizer.TestPyTokenizer) -invalid characters in template name: left bracket in middle ... ok -test_templates065_invalid_name_right_bracket_middle (tests.test_pytokenizer.TestPyTokenizer) -invalid characters in template name: right bracket in middle ... ok -test_templates066_invalid_name_left_bracket_start (tests.test_pytokenizer.TestPyTokenizer) -invalid characters in template name: left bracket at start ... ok -test_templates067_invalid_name_right_bracket_start (tests.test_pytokenizer.TestPyTokenizer) -invalid characters in template name: right bracket at end ... ok -test_templates068_valid_name_left_brace_start (tests.test_pytokenizer.TestPyTokenizer) -valid characters in template name: left brace at start ... ok -test_templates069_valid_unnamed_param_left_brace (tests.test_pytokenizer.TestPyTokenizer) -valid characters in unnamed template parameter: left brace ... ok -test_templates070_valid_unnamed_param_braces (tests.test_pytokenizer.TestPyTokenizer) -valid characters in unnamed template parameter: left and right braces ... ok -test_templates071_valid_param_name_braces (tests.test_pytokenizer.TestPyTokenizer) -valid characters in template parameter name: left and right braces ... ok -test_templates072_valid_param_name_brackets (tests.test_pytokenizer.TestPyTokenizer) -valid characters in unnamed template parameter: left and right brackets ... ok -test_templates073_valid_param_name_double_left_brackets (tests.test_pytokenizer.TestPyTokenizer) -valid characters in unnamed template parameter: double left brackets ... ok -test_templates074_valid_param_name_double_right_brackets (tests.test_pytokenizer.TestPyTokenizer) -valid characters in unnamed template parameter: double right brackets ... ok -test_templates075_valid_param_name_double_brackets (tests.test_pytokenizer.TestPyTokenizer) -valid characters in unnamed template parameter: double left and right brackets ... ok -test_templates076_invalid_param_name_double_left_braces (tests.test_pytokenizer.TestPyTokenizer) -invalid characters in template parameter name: double left braces ... ok -test_templates077_invalid_param_name_double_braces (tests.test_pytokenizer.TestPyTokenizer) -invalid characters in template parameter name: double left and right braces ... ok -test_templates078_invalid_left_angle_bracket (tests.test_pytokenizer.TestPyTokenizer) -invalid template: left angle bracket in name ... ok -test_templates079_invalid_right_angle_bracket (tests.test_pytokenizer.TestPyTokenizer) -invalid template: right angle bracket in name ... ok -test_templates080_incomplete_stub (tests.test_pytokenizer.TestPyTokenizer) -incomplete templates that should fail gracefully: just an opening ... ok -test_templates081_incomplete_plain (tests.test_pytokenizer.TestPyTokenizer) -incomplete templates that should fail gracefully: no close whatsoever ... ok -test_templates082_incomplete_right_brace (tests.test_pytokenizer.TestPyTokenizer) -incomplete templates that should fail gracefully: only one right brace ... ok -test_templates083_incomplete_pipe (tests.test_pytokenizer.TestPyTokenizer) -incomplete templates that should fail gracefully: a pipe ... ok -test_templates084_incomplete_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) -incomplete templates that should fail gracefully: an unnamed parameter ... ok -test_templates085_incomplete_unnamed_param_pipe (tests.test_pytokenizer.TestPyTokenizer) -incomplete templates that should fail gracefully: an unnamed parameter, then a pipe ... ok -test_templates086_incomplete_valueless_param (tests.test_pytokenizer.TestPyTokenizer) -incomplete templates that should fail gracefully: an a named parameter with no value ... ok -test_templates087_incomplete_valueless_param_pipe (tests.test_pytokenizer.TestPyTokenizer) -incomplete templates that should fail gracefully: a named parameter with no value, then a pipe ... ok -test_templates088_incomplete_named_param (tests.test_pytokenizer.TestPyTokenizer) -incomplete templates that should fail gracefully: a named parameter with a value ... ok -test_templates089_incomplete_named_param_pipe (tests.test_pytokenizer.TestPyTokenizer) -incomplete templates that should fail gracefully: a named parameter with a value, then a paipe ... ok -test_templates090_incomplete_two_unnamed_params (tests.test_pytokenizer.TestPyTokenizer) -incomplete templates that should fail gracefully: two unnamed parameters ... ok -test_templates091_incomplete_unnamed_param_valueless_param (tests.test_pytokenizer.TestPyTokenizer) -incomplete templates that should fail gracefully: an unnamed parameter, then a named parameter with no value ... ok -test_templates092_incomplete_unnamed_param_named_param (tests.test_pytokenizer.TestPyTokenizer) -incomplete templates that should fail gracefully: an unnamed parameter, then a named parameter with a value ... ok -test_templates093_incomplete_named_param_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) -incomplete templates that should fail gracefully: a named parameter with a value, then an unnamed parameter ... ok -test_templates094_incomplete_named_param_valueless_param (tests.test_pytokenizer.TestPyTokenizer) -incomplete templates that should fail gracefully: a named parameter with a value, then a named parameter with no value ... ok -test_templates095_incomplete_two_named_params (tests.test_pytokenizer.TestPyTokenizer) -incomplete templates that should fail gracefully: two named parameters with values ... ok -test_templates096_incomplete_nested_template_as_unnamed_param (tests.test_pytokenizer.TestPyTokenizer) -incomplete templates that should fail gracefully: a valid nested template as an unnamed parameter ... ok -test_templates097_incomplete_nested_template_as_param_value (tests.test_pytokenizer.TestPyTokenizer) -incomplete templates that should fail gracefully: a valid nested template as a parameter value ... ok -test_templates098_recursion_five_hundred_opens (tests.test_pytokenizer.TestPyTokenizer) -test potentially dangerous recursion: five hundred template openings, without spaces ... ok -test_templates099_recursion_one_hundred_opens (tests.test_pytokenizer.TestPyTokenizer) -test potentially dangerous recursion: one hundred template openings, with spaces ... ok -test_templates100_recursion_opens_and_closes (tests.test_pytokenizer.TestPyTokenizer) -test potentially dangerous recursion: template openings and closings ... ok -test_text1_basic (tests.test_pytokenizer.TestPyTokenizer) -sanity check for basic text parsing, no gimmicks ... ok -test_text2_newlines (tests.test_pytokenizer.TestPyTokenizer) -slightly more complex text parsing, with newlines ... ok -test_text3_unicode (tests.test_pytokenizer.TestPyTokenizer) -ensure unicode data is handled properly ... ok -test_text4_unicode2 (tests.test_pytokenizer.TestPyTokenizer) -additional unicode check for non-BMP codepoints ... ok -test_text5_large (tests.test_pytokenizer.TestPyTokenizer) -a lot of text, requiring proper storage in the C tokenizer ... ok -test_uses_c (tests.test_pytokenizer.TestPyTokenizer) -make sure the Python tokenizer identifies as not using C ... ok -test_wikilinks01_blank (tests.test_pytokenizer.TestPyTokenizer) -wikilink with no content ... ok -test_wikilinks02_blank_with_text (tests.test_pytokenizer.TestPyTokenizer) -wikilink with no content but a pipe ... ok -test_wikilinks03_basic (tests.test_pytokenizer.TestPyTokenizer) -simplest type of wikilink ... ok -test_wikilinks04_with_text (tests.test_pytokenizer.TestPyTokenizer) -wikilink with a text value ... ok -test_wikilinks05_blank_with_multiple_texts (tests.test_pytokenizer.TestPyTokenizer) -no content, multiple pipes ... ok -test_wikilinks06_multiple_texts (tests.test_pytokenizer.TestPyTokenizer) -multiple text values separated by pipes ... ok -test_wikilinks07_newline_text (tests.test_pytokenizer.TestPyTokenizer) -a newline in the middle of the text ... ok -test_wikilinks08_bracket_text (tests.test_pytokenizer.TestPyTokenizer) -a left bracket in the middle of the text ... ok -test_wikilinks09_nested (tests.test_pytokenizer.TestPyTokenizer) -a wikilink nested within another ... ok -test_wikilinks10_nested_padding (tests.test_pytokenizer.TestPyTokenizer) -a wikilink nested within another, separated by other data ... ok -test_wikilinks11_invalid_newline (tests.test_pytokenizer.TestPyTokenizer) -invalid wikilink: newline as only content ... ok -test_wikilinks12_invalid_right_brace (tests.test_pytokenizer.TestPyTokenizer) -invalid wikilink: right brace ... ok -test_wikilinks13_invalid_left_brace (tests.test_pytokenizer.TestPyTokenizer) -invalid wikilink: left brace ... ok -test_wikilinks14_invalid_right_bracket (tests.test_pytokenizer.TestPyTokenizer) -invalid wikilink: right bracket ... ok -test_wikilinks15_invalid_left_bracket (tests.test_pytokenizer.TestPyTokenizer) -invalid wikilink: left bracket ... ok -test_wikilinks16_invalid_nested (tests.test_pytokenizer.TestPyTokenizer) -invalid wikilink: trying to nest in the wrong context ... ok -test_wikilinks17_invalid_nested_padding (tests.test_pytokenizer.TestPyTokenizer) -invalid wikilink: trying to nest in the wrong context, with a text param ... ok -test_wikilinks18_invalid_nested_no_close (tests.test_pytokenizer.TestPyTokenizer) -invalid wikilink: a wikilink nested within the value of another, missing a pair of closing brackets ... ok -test_wikilinks19_invalid_left_angle_bracket (tests.test_pytokenizer.TestPyTokenizer) -invalid wikilink: left angle bracket ... ok -test_wikilinks20_invalid_right_angle_bracket (tests.test_pytokenizer.TestPyTokenizer) -invalid wikilink: right angle bracket ... ok -test_wikilinks21_invalid_newline_at_start (tests.test_pytokenizer.TestPyTokenizer) -invalid wikilink: newline at start of title ... ok -test_wikilinks22_invalid_newline_at_end (tests.test_pytokenizer.TestPyTokenizer) -invalid wikilink: newline at end of title ... ok -test_wikilinks23_incomplete_open_only (tests.test_pytokenizer.TestPyTokenizer) -incomplete wikilinks: just an open ... ok -test_wikilinks24_incomplete_open_text (tests.test_pytokenizer.TestPyTokenizer) -incomplete wikilinks: an open with some text ... ok -test_wikilinks25_incomplete_open_text_pipe (tests.test_pytokenizer.TestPyTokenizer) -incomplete wikilinks: an open, text, then a pipe ... ok -test_wikilinks26_incomplete_open_pipe (tests.test_pytokenizer.TestPyTokenizer) -incomplete wikilinks: an open, then a pipe ... ok -test_wikilinks27_incomplete_open_pipe_text (tests.test_pytokenizer.TestPyTokenizer) -incomplete wikilinks: an open, then a pipe, then text ... ok -test_wikilinks28_incomplete_open_pipes_text (tests.test_pytokenizer.TestPyTokenizer) -incomplete wikilinks: a pipe, then text then two pipes ... ok -test_wikilinks29_incomplete_open_partial_close (tests.test_pytokenizer.TestPyTokenizer) -incomplete wikilinks: an open, then one right brace ... ok -test_wikilinks30_incomplete_preserve_previous (tests.test_pytokenizer.TestPyTokenizer) -incomplete wikilinks: a valid wikilink followed by an invalid one ... ok -test_parsing (tests.test_parser.TestParser) -integration test for parsing overall ... ok -test_skip_style_tags (tests.test_parser.TestParser) -test Parser.parse(skip_style_tags=True) ... ok -test_use_c (tests.test_parser.TestParser) -make sure the correct tokenizer is used ... ok -test_attributes (tests.test_tokens.TestTokens) -check that Token attributes can be managed properly ... ok -test_equality (tests.test_tokens.TestTokens) -check that equivalent tokens are considered equal ... ok -test_issubclass (tests.test_tokens.TestTokens) -check that all classes within the tokens module are really Tokens ... ok -test_repr (tests.test_tokens.TestTokens) -check that repr() on a Token works as expected ... ok -test_repr_equality (tests.test_tokens.TestTokens) -check that eval(repr(token)) == token ... ok -test_brackets (tests.test_external_link.TestExternalLink) -test getter/setter for the brackets attribute ... ok -test_children (tests.test_external_link.TestExternalLink) -test ExternalLink.__children__() ... ok -test_showtree (tests.test_external_link.TestExternalLink) -test ExternalLink.__showtree__() ... ok -test_strip (tests.test_external_link.TestExternalLink) -test ExternalLink.__strip__() ... ok -test_title (tests.test_external_link.TestExternalLink) -test getter/setter for the title attribute ... ok -test_unicode (tests.test_external_link.TestExternalLink) -test ExternalLink.__unicode__() ... ok -test_url (tests.test_external_link.TestExternalLink) -test getter/setter for the url attribute ... ok -test_children (tests.test_wikilink.TestWikilink) -test Wikilink.__children__() ... ok -test_showtree (tests.test_wikilink.TestWikilink) -test Wikilink.__showtree__() ... ok -test_strip (tests.test_wikilink.TestWikilink) -test Wikilink.__strip__() ... ok -test_text (tests.test_wikilink.TestWikilink) -test getter/setter for the text attribute ... ok -test_title (tests.test_wikilink.TestWikilink) -test getter/setter for the title attribute ... ok -test_unicode (tests.test_wikilink.TestWikilink) -test Wikilink.__unicode__() ... ok -test_parse_anything_invalid (tests.test_utils.TestUtils) -tests for invalid input to utils.parse_anything() ... ok -test_parse_anything_valid (tests.test_utils.TestUtils) -tests for valid input to utils.parse_anything() ... ok -test_append (tests.test_wikicode.TestWikicode) -test Wikicode.append() ... ok -test_contains (tests.test_wikicode.TestWikicode) -test Wikicode.contains() ... ok -test_filter_family (tests.test_wikicode.TestWikicode) -test the Wikicode.i?filter() family of functions ... ok -test_get (tests.test_wikicode.TestWikicode) -test Wikicode.get() ... ok -test_get_ancestors_parent (tests.test_wikicode.TestWikicode) -test Wikicode.get_ancestors() and Wikicode.get_parent() ... ok -test_get_sections (tests.test_wikicode.TestWikicode) -test Wikicode.get_sections() ... ok -test_get_tree (tests.test_wikicode.TestWikicode) -test Wikicode.get_tree() ... ok -test_index (tests.test_wikicode.TestWikicode) -test Wikicode.index() ... ok -test_insert (tests.test_wikicode.TestWikicode) -test Wikicode.insert() ... ok -test_insert_after (tests.test_wikicode.TestWikicode) -test Wikicode.insert_after() ... ok -test_insert_before (tests.test_wikicode.TestWikicode) -test Wikicode.insert_before() ... ok -test_matches (tests.test_wikicode.TestWikicode) -test Wikicode.matches() ... ok -test_nodes (tests.test_wikicode.TestWikicode) -test getter/setter for the nodes attribute ... ok -test_remove (tests.test_wikicode.TestWikicode) -test Wikicode.remove() ... ok -test_replace (tests.test_wikicode.TestWikicode) -test Wikicode.replace() ... ok -test_set (tests.test_wikicode.TestWikicode) -test Wikicode.set() ... ok -test_strip_code (tests.test_wikicode.TestWikicode) -test Wikicode.strip_code() ... ok -test_unicode (tests.test_wikicode.TestWikicode) -test Wikicode.__unicode__() ... ok -test_children (tests.test_heading.TestHeading) -test Heading.__children__() ... ok -test_level (tests.test_heading.TestHeading) -test getter/setter for the level attribute ... ok -test_showtree (tests.test_heading.TestHeading) -test Heading.__showtree__() ... ok -test_strip (tests.test_heading.TestHeading) -test Heading.__strip__() ... ok -test_title (tests.test_heading.TestHeading) -test getter/setter for the title attribute ... ok -test_unicode (tests.test_heading.TestHeading) -test Heading.__unicode__() ... ok -test_argument (tests.test_builder.TestBuilder) -tests for building Argument nodes ... ok -test_comment (tests.test_builder.TestBuilder) -tests for building Comment nodes ... ok -test_external_link (tests.test_builder.TestBuilder) -tests for building ExternalLink nodes ... ok -test_heading (tests.test_builder.TestBuilder) -tests for building Heading nodes ... ok -test_html_entity (tests.test_builder.TestBuilder) -tests for building HTMLEntity nodes ... ok -test_integration (tests.test_builder.TestBuilder) -a test for building a combination of templates together ... ok -test_integration2 (tests.test_builder.TestBuilder) -an even more audacious test for building a horrible wikicode mess ... ok -test_parser_errors (tests.test_builder.TestBuilder) -test whether ParserError gets thrown for bad input ... ok -test_tag (tests.test_builder.TestBuilder) -tests for building Tag nodes ... ok -test_template (tests.test_builder.TestBuilder) -tests for building Template nodes ... ok -test_text (tests.test_builder.TestBuilder) -tests for building Text nodes ... ok -test_wikilink (tests.test_builder.TestBuilder) -tests for building Wikilink nodes ... ok -test_comparisons (tests.test_string_mixin.TestStringMixIn) -make sure comparison operators work ... ok -test_docs (tests.test_string_mixin.TestStringMixIn) -make sure the various methods of StringMixIn have docstrings ... ok -test_other_magics (tests.test_string_mixin.TestStringMixIn) -test other magically implemented features, like len() and iter() ... ok -test_other_methods (tests.test_string_mixin.TestStringMixIn) -test the remaining non-magic methods of StringMixIn ... ok -test_types (tests.test_string_mixin.TestStringMixIn) -make sure StringMixIns convert to different types correctly ... ok test_children (tests.test_text.TestText) test Text.__children__() ... ok test_showtree (tests.test_text.TestText) @@ -7836,19 +7858,9 @@ test Text.__unicode__() ... ok test_value (tests.test_text.TestText) test getter/setter for the value attribute ... ok -test_name (tests.test_attribute.TestAttribute) -test getter/setter for the name attribute ... ok -test_padding (tests.test_attribute.TestAttribute) -test getter/setter for the padding attributes ... ok -test_quotes (tests.test_attribute.TestAttribute) -test getter/setter for the quotes attribute ... ok -test_unicode (tests.test_attribute.TestAttribute) -test Attribute.__unicode__() ... ok -test_value (tests.test_attribute.TestAttribute) -test getter/setter for the value attribute ... ok ---------------------------------------------------------------------- -Ran 1796 tests in 1.019s +Ran 1796 tests in 0.230s OK (skipped=1) create-stamp debian/debhelper-build-stamp @@ -7866,60 +7878,60 @@ creating /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7 creating /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages creating /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell -copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/smart_list.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell -copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/definitions.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell -copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/compat.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/wikicode.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell +copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/definitions.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell creating /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes -copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes/comment.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes -copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes/text.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes -copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes/html_entity.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes -copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes/external_link.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes -copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes/wikilink.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes/template.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes -copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes/tag.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes -copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes/__init__.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes -copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes/argument.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes -copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes/heading.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes +copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes/external_link.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes creating /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes/extras copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes/extras/attribute.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes/extras copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes/extras/__init__.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes/extras copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes/extras/parameter.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes/extras +copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes/heading.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes +copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes/html_entity.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes +copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes/argument.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes +copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes/text.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes +copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes/__init__.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes +copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes/comment.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes +copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes/tag.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes +copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/nodes/wikilink.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/__init__.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/string_mixin.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/utils.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell +copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/smart_list.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell creating /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/parser -copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/parser/_tokenizer.so -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/parser -copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/parser/builder.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/parser copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/parser/tokens.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/parser -copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/parser/__init__.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/parser copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/parser/tokenizer.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/parser +copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/parser/builder.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/parser +copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/parser/__init__.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/parser copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/parser/contexts.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/parser -byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/smart_list.py to smart_list.pyc -byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/definitions.py to definitions.pyc -byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/compat.py to compat.pyc +copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/parser/_tokenizer.so -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/parser +copying /build/mwparserfromhell-0.5.2/.pybuild/cpython2_2.7/build/mwparserfromhell/compat.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/wikicode.py to wikicode.pyc -byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes/comment.py to comment.pyc -byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes/text.py to text.pyc -byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes/html_entity.py to html_entity.pyc -byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes/external_link.py to external_link.pyc -byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes/wikilink.py to wikilink.pyc +byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/definitions.py to definitions.pyc byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes/template.py to template.pyc -byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes/tag.py to tag.pyc -byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes/__init__.py to __init__.pyc -byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes/argument.py to argument.pyc -byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes/heading.py to heading.pyc +byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes/external_link.py to external_link.pyc byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes/extras/attribute.py to attribute.pyc byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes/extras/__init__.py to __init__.pyc byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes/extras/parameter.py to parameter.pyc +byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes/heading.py to heading.pyc +byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes/html_entity.py to html_entity.pyc +byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes/argument.py to argument.pyc +byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes/text.py to text.pyc +byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes/__init__.py to __init__.pyc +byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes/comment.py to comment.pyc +byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes/tag.py to tag.pyc +byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/nodes/wikilink.py to wikilink.pyc byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/__init__.py to __init__.pyc byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/string_mixin.py to string_mixin.pyc byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/utils.py to utils.pyc -byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/parser/builder.py to builder.pyc +byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/smart_list.py to smart_list.pyc byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/parser/tokens.py to tokens.pyc -byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/parser/__init__.py to __init__.pyc byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/parser/tokenizer.py to tokenizer.pyc +byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/parser/builder.py to builder.pyc +byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/parser/__init__.py to __init__.pyc byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/parser/contexts.py to contexts.pyc +byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python2.7/dist-packages/mwparserfromhell/compat.py to compat.pyc running install_egg_info running egg_info writing mwparserfromhell.egg-info/PKG-INFO @@ -7940,60 +7952,60 @@ creating /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7 creating /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages creating /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell -copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/smart_list.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell -copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/definitions.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell -copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/compat.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/wikicode.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell +copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/definitions.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell creating /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes -copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes/comment.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes -copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes/text.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes -copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes/html_entity.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes -copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes/external_link.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes -copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes/wikilink.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes/template.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes -copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes/tag.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes -copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes/__init__.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes -copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes/argument.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes -copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes/heading.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes +copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes/external_link.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes creating /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes/extras copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes/extras/attribute.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes/extras copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes/extras/__init__.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes/extras copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes/extras/parameter.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes/extras +copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes/heading.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes +copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes/html_entity.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes +copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes/argument.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes +copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes/text.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes +copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes/__init__.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes +copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes/comment.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes +copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes/tag.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes +copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/nodes/wikilink.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/__init__.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/string_mixin.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/utils.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell +copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/smart_list.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell creating /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/parser copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/parser/_tokenizer.cpython-37m-i386-linux-gnu.so -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/parser -copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/parser/builder.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/parser copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/parser/tokens.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/parser -copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/parser/__init__.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/parser copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/parser/tokenizer.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/parser +copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/parser/builder.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/parser +copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/parser/__init__.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/parser copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/parser/contexts.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/parser -byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/smart_list.py to smart_list.cpython-37.pyc -byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/definitions.py to definitions.cpython-37.pyc -byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/compat.py to compat.cpython-37.pyc +copying /build/mwparserfromhell-0.5.2/.pybuild/cpython3_3.7/build/mwparserfromhell/compat.py -> /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/wikicode.py to wikicode.cpython-37.pyc -byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes/comment.py to comment.cpython-37.pyc -byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes/text.py to text.cpython-37.pyc -byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes/html_entity.py to html_entity.cpython-37.pyc -byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes/external_link.py to external_link.cpython-37.pyc -byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes/wikilink.py to wikilink.cpython-37.pyc +byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/definitions.py to definitions.cpython-37.pyc byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes/template.py to template.cpython-37.pyc -byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes/tag.py to tag.cpython-37.pyc -byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes/argument.py to argument.cpython-37.pyc -byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes/heading.py to heading.cpython-37.pyc +byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes/external_link.py to external_link.cpython-37.pyc byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes/extras/attribute.py to attribute.cpython-37.pyc byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes/extras/__init__.py to __init__.cpython-37.pyc byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes/extras/parameter.py to parameter.cpython-37.pyc +byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes/heading.py to heading.cpython-37.pyc +byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes/html_entity.py to html_entity.cpython-37.pyc +byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes/argument.py to argument.cpython-37.pyc +byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes/text.py to text.cpython-37.pyc +byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes/comment.py to comment.cpython-37.pyc +byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes/tag.py to tag.cpython-37.pyc +byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/nodes/wikilink.py to wikilink.cpython-37.pyc byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/__init__.py to __init__.cpython-37.pyc byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/string_mixin.py to string_mixin.cpython-37.pyc byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/utils.py to utils.cpython-37.pyc -byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/parser/builder.py to builder.cpython-37.pyc +byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/smart_list.py to smart_list.cpython-37.pyc byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/parser/tokens.py to tokens.cpython-37.pyc -byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/parser/__init__.py to __init__.cpython-37.pyc byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/parser/tokenizer.py to tokenizer.cpython-37.pyc +byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/parser/builder.py to builder.cpython-37.pyc +byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/parser/__init__.py to __init__.cpython-37.pyc byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/parser/contexts.py to contexts.cpython-37.pyc +byte-compiling /build/mwparserfromhell-0.5.2/debian/tmp/usr/lib/python3.7/dist-packages/mwparserfromhell/compat.py to compat.cpython-37.pyc running install_egg_info running egg_info writing mwparserfromhell.egg-info/PKG-INFO @@ -8021,36 +8033,38 @@ dh_strip -O--buildsystem=pybuild dh_makeshlibs -O--buildsystem=pybuild dh_shlibdeps -O--buildsystem=pybuild -dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/python-mwparserfromhell/usr/lib/python2.7/dist-packages/mwparserfromhell/parser/_tokenizer.i386-linux-gnu.so was not linked against libpthread.so.0 (it uses none of the library's symbols) dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/python3-mwparserfromhell/usr/lib/python3/dist-packages/mwparserfromhell/parser/_tokenizer.cpython-37m-i386-linux-gnu.so was not linked against libpthread.so.0 (it uses none of the library's symbols) +dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/python-mwparserfromhell/usr/lib/python2.7/dist-packages/mwparserfromhell/parser/_tokenizer.i386-linux-gnu.so was not linked against libpthread.so.0 (it uses none of the library's symbols) dh_installdeb -O--buildsystem=pybuild dh_gencontrol -O--buildsystem=pybuild dpkg-gencontrol: warning: package python-mwparserfromhell: substitution variable ${python:Provides} unused, but is defined dpkg-gencontrol: warning: package python-mwparserfromhell: substitution variable ${python:Versions} unused, but is defined dpkg-gencontrol: warning: package python3-mwparserfromhell: substitution variable ${python3:Provides} unused, but is defined dpkg-gencontrol: warning: package python3-mwparserfromhell: substitution variable ${python3:Versions} unused, but is defined -dpkg-gencontrol: warning: package python3-mwparserfromhell: substitution variable ${python3:Provides} unused, but is defined -dpkg-gencontrol: warning: package python3-mwparserfromhell: substitution variable ${python3:Versions} unused, but is defined dpkg-gencontrol: warning: package python-mwparserfromhell: substitution variable ${python:Provides} unused, but is defined dpkg-gencontrol: warning: package python-mwparserfromhell: substitution variable ${python:Versions} unused, but is defined +dpkg-gencontrol: warning: package python3-mwparserfromhell: substitution variable ${python3:Provides} unused, but is defined +dpkg-gencontrol: warning: package python3-mwparserfromhell: substitution variable ${python3:Versions} unused, but is defined dh_md5sums -O--buildsystem=pybuild dh_builddeb -O--buildsystem=pybuild -dpkg-deb: building package 'python3-mwparserfromhell-dbgsym' in '../python3-mwparserfromhell-dbgsym_0.5.2-2_i386.deb'. dpkg-deb: building package 'python3-mwparserfromhell' in '../python3-mwparserfromhell_0.5.2-2_i386.deb'. -dpkg-deb: building package 'python-mwparserfromhell-dbgsym' in '../python-mwparserfromhell-dbgsym_0.5.2-2_i386.deb'. +dpkg-deb: building package 'python3-mwparserfromhell-dbgsym' in '../python3-mwparserfromhell-dbgsym_0.5.2-2_i386.deb'. dpkg-deb: building package 'python-mwparserfromhell' in '../python-mwparserfromhell_0.5.2-2_i386.deb'. +dpkg-deb: building package 'python-mwparserfromhell-dbgsym' in '../python-mwparserfromhell-dbgsym_0.5.2-2_i386.deb'. dpkg-genbuildinfo --build=binary dpkg-genchanges --build=binary >../mwparserfromhell_0.5.2-2_i386.changes dpkg-genchanges: info: binary-only upload (no source code included) dpkg-source --after-build . dpkg-buildpackage: info: binary-only upload (no source included) I: copying local configuration +I: user script /srv/workspace/pbuilder/51016/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/51016/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/17897 and its subdirectories -I: Current time: Fri Mar 6 12:18:58 -12 2020 -I: pbuilder-time-stamp: 1583540338 +I: removing directory /srv/workspace/pbuilder/51016 and its subdirectories +I: Current time: Fri Apr 9 20:42:38 +14 2021 +I: pbuilder-time-stamp: 1617950558