diff --git a/.coveragerc b/.coveragerc new file mode 100644 index 00000000..6facf352 --- /dev/null +++ b/.coveragerc @@ -0,0 +1,8 @@ +[run] +branch = True +source = html5lib + +[paths] +source = + html5lib + .tox/*/lib/python*/site-packages/html5lib diff --git a/.prospector.yaml b/.prospector.yaml new file mode 100644 index 00000000..7e8efe1a --- /dev/null +++ b/.prospector.yaml @@ -0,0 +1,21 @@ +strictness: veryhigh +doc-warnings: false +test-warnings: false + +max-line-length: 139 + +requirements: + - requirements.txt + - requirements-test.txt + - requirements-optional.txt + +ignore-paths: + - parse.py + - utils/ + +python-targets: + - 2 + - 3 + +mccabe: + run: false diff --git a/.pylintrc b/.pylintrc new file mode 100644 index 00000000..ea74d5db --- /dev/null +++ b/.pylintrc @@ -0,0 +1,10 @@ +[MASTER] +ignore=tests + +[MESSAGES CONTROL] +# messages up to fixme should probably be fixed somehow +disable = redefined-builtin,attribute-defined-outside-init,anomalous-backslash-in-string,no-self-use,redefined-outer-name,bad-continuation,wrong-import-order,superfluous-parens,no-member,duplicate-code,super-init-not-called,abstract-method,property-on-old-class,wrong-import-position,no-name-in-module,no-init,bad-mcs-classmethod-argument,bad-classmethod-argument,fixme,invalid-name,import-error,too-few-public-methods,too-many-ancestors,too-many-arguments,too-many-boolean-expressions,too-many-branches,too-many-instance-attributes,too-many-locals,too-many-lines,too-many-public-methods,too-many-return-statements,too-many-statements,missing-docstring,line-too-long,locally-disabled,locally-enabled,bad-builtin,deprecated-lambda + +[FORMAT] +max-line-length=139 +single-line-if-stmt=no diff --git a/.pytest.expect b/.pytest.expect new file mode 100644 index 00000000..0fa326f0 --- /dev/null +++ b/.pytest.expect @@ -0,0 +1,1322 @@ +pytest-expect file v1 +(2, 7, 11, 'final', 0) +b'html5lib/tests/test_encoding.py::test_encoding::[110]': FAIL +b'html5lib/tests/test_encoding.py::test_encoding::[111]': FAIL +u'html5lib/tests/testdata/tokenizer/test2.test::0::dataState': FAIL +u'html5lib/tests/testdata/tokenizer/test3.test::228::dataState': FAIL +u'html5lib/tests/testdata/tokenizer/test3.test::231::dataState': FAIL +u'html5lib/tests/testdata/tokenizer/test3.test::232::dataState': FAIL +u'html5lib/tests/testdata/tokenizer/test3.test::234::dataState': FAIL +u'html5lib/tests/testdata/tokenizer/test3.test::235::dataState': FAIL +u'html5lib/tests/testdata/tokenizer/test3.test::237::dataState': FAIL +u'html5lib/tests/testdata/tokenizer/test3.test::240::dataState': FAIL +u'html5lib/tests/testdata/tokenizer/test3.test::241::dataState': FAIL +u'html5lib/tests/testdata/tokenizer/test3.test::243::dataState': FAIL +u'html5lib/tests/testdata/tokenizer/test3.test::244::dataState': FAIL +u'html5lib/tests/testdata/tokenizer/test3.test::246::dataState': FAIL +u'html5lib/tests/testdata/tokenizer/test3.test::258::dataState': FAIL +u'html5lib/tests/testdata/tokenizer/test3.test::656::dataState': FAIL +u'html5lib/tests/testdata/tree-construction/adoption01.dat::17::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/adoption01.dat::17::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/adoption01.dat::17::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/adoption01.dat::17::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/adoption01.dat::17::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/adoption01.dat::17::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/adoption01.dat::17::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/adoption01.dat::17::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::0::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::0::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::0::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::0::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::0::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::0::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::0::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::0::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::18::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::18::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::18::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::18::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::18::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::18::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::18::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::18::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::19::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::19::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::19::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::19::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::19::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::19::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::19::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::19::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::1::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::1::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::1::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::1::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::1::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::1::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::1::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::1::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::22::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::22::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::22::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::22::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::22::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::22::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::22::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::22::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::23::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::23::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::23::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::23::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::23::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::23::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::23::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::23::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::26::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::26::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::26::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::26::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::26::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::26::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::26::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::26::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::27::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::27::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::27::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::27::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::27::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::27::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::27::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::27::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::2::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::2::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::2::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::2::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::2::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::2::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::2::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::2::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::30::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::30::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::30::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::30::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::30::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::30::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::30::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::30::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::31::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::31::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::31::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::31::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::31::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::31::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::31::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::31::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::34::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::34::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::34::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::34::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::34::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::34::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::34::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::34::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::35::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::35::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::35::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::35::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::35::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::35::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::35::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::35::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::38::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::38::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::38::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::38::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::38::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::38::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::38::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::38::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::39::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::39::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::39::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::39::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::39::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::39::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::39::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::39::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::3::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::3::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::3::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::3::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::3::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::3::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::3::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::3::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::40::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::40::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::40::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::40::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::40::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::40::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::40::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::40::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::41::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::41::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::41::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::41::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::41::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::41::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::41::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::41::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::47::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::47::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::47::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::47::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::47::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::47::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::47::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::47::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::48::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::48::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::48::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::48::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::48::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::48::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::48::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/foreign-fragment.dat::48::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::0::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::0::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::0::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::0::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::0::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::0::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::0::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::0::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::1::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::1::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::1::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::1::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::1::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::1::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::1::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::1::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::2::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::2::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::2::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::2::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::2::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::2::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::2::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::2::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::3::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::3::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::3::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::3::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::3::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::3::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::3::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/isindex.dat::3::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::3::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::3::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::3::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::3::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::3::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::3::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::3::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::3::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::4::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::4::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::4::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::4::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::4::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::4::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::4::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::4::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::5::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::5::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::5::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::5::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::5::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::5::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::5::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/menuitem-element.dat::5::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/namespace-sensitivity.dat::0::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/namespace-sensitivity.dat::0::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/namespace-sensitivity.dat::0::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/namespace-sensitivity.dat::0::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/namespace-sensitivity.dat::0::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/namespace-sensitivity.dat::0::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/namespace-sensitivity.dat::0::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/namespace-sensitivity.dat::0::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::0::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::0::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::0::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::0::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::0::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::0::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::0::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::0::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::10::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::10::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::10::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::10::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::10::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::10::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::10::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::10::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::12::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::12::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::12::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::12::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::12::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::12::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::12::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::12::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::15::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::15::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::15::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::15::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::15::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::15::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::15::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::15::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::17::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::17::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::17::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::17::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::17::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::17::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::17::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::17::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::1::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::1::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::1::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::1::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::1::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::1::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::1::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::1::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::20::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::20::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::20::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::20::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::20::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::20::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::20::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::20::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::2::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::2::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::2::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::2::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::2::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::2::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::2::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::2::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::3::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::3::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::3::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::3::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::3::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::3::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::3::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::3::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::5::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::5::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::5::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::5::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::5::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::5::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::5::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::5::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::7::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::7::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::7::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::7::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::7::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::7::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::7::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/ruby.dat::7::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/adoption01.dat::0::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/adoption01.dat::0::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/adoption01.dat::0::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/adoption01.dat::0::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/adoption01.dat::0::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/adoption01.dat::0::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/adoption01.dat::0::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/adoption01.dat::0::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/ark.dat::0::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/ark.dat::0::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/ark.dat::0::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/ark.dat::0::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/ark.dat::0::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/ark.dat::0::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/ark.dat::0::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/ark.dat::0::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::0::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::0::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::0::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::0::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::0::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::0::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::0::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::0::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::1::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::1::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::1::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::1::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::1::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::1::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::1::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/scripted/webkit01.dat::1::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::0::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::0::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::0::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::0::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::0::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::0::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::0::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::0::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::100::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::100::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::100::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::100::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::100::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::100::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::100::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::100::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::101::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::101::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::101::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::101::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::101::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::101::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::101::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::101::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::102::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::102::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::102::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::102::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::102::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::102::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::102::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::102::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::103::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::103::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::103::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::103::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::103::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::103::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::103::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::103::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::104::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::104::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::104::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::104::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::104::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::104::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::104::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::104::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::105::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::105::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::105::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::105::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::105::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::105::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::105::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::105::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::106::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::106::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::106::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::106::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::106::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::106::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::106::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::106::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::107::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::107::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::107::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::107::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::107::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::107::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::107::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::107::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::10::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::10::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::10::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::10::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::10::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::10::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::10::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::10::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::11::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::11::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::11::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::11::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::11::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::11::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::11::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::11::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::12::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::12::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::12::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::12::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::12::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::12::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::12::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::12::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::13::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::13::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::13::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::13::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::13::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::13::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::13::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::13::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::14::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::14::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::14::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::14::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::14::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::14::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::14::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::14::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::15::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::15::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::15::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::15::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::15::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::15::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::15::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::15::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::16::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::16::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::16::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::16::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::16::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::16::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::16::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::16::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::17::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::17::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::17::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::17::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::17::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::17::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::17::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::17::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::18::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::18::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::18::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::18::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::18::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::18::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::18::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::18::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::19::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::19::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::19::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::19::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::19::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::19::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::19::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::19::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::1::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::1::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::1::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::1::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::1::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::1::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::1::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::1::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::20::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::20::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::20::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::20::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::20::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::20::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::20::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::20::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::21::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::21::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::21::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::21::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::21::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::21::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::21::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::21::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::22::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::22::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::22::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::22::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::22::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::22::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::22::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::22::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::23::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::23::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::23::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::23::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::23::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::23::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::23::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::23::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::24::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::24::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::24::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::24::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::24::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::24::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::24::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::24::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::25::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::25::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::25::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::25::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::25::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::25::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::25::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::25::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::26::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::26::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::26::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::26::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::26::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::26::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::26::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::26::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::27::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::27::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::27::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::27::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::27::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::27::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::27::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::27::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::28::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::28::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::28::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::28::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::28::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::28::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::28::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::28::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::29::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::29::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::29::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::29::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::29::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::29::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::29::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::29::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::2::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::2::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::2::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::2::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::2::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::2::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::2::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::2::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::30::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::30::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::30::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::30::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::30::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::30::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::30::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::30::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::31::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::31::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::31::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::31::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::31::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::31::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::31::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::31::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::32::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::32::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::32::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::32::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::32::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::32::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::32::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::32::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::33::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::33::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::33::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::33::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::33::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::33::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::33::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::33::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::34::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::34::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::34::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::34::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::34::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::34::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::34::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::34::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::35::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::35::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::35::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::35::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::35::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::35::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::35::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::35::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::36::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::36::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::36::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::36::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::36::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::36::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::36::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::36::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::37::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::37::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::37::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::37::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::37::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::37::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::37::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::37::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::38::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::38::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::38::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::38::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::38::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::38::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::38::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::38::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::3::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::3::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::3::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::3::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::3::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::3::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::3::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::3::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::40::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::40::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::40::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::40::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::40::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::40::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::40::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::40::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::41::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::41::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::41::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::41::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::41::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::41::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::41::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::41::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::42::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::42::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::42::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::42::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::42::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::42::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::42::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::42::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::43::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::43::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::43::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::43::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::43::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::43::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::43::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::43::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::44::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::44::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::44::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::44::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::44::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::44::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::44::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::44::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::45::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::45::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::45::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::45::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::45::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::45::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::45::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::45::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::46::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::46::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::46::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::46::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::46::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::46::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::46::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::46::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::47::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::47::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::47::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::47::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::47::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::47::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::47::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::47::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::48::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::48::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::48::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::48::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::48::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::48::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::48::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::48::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::49::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::49::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::49::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::49::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::49::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::49::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::49::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::49::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::4::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::4::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::4::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::4::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::4::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::4::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::4::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::4::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::50::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::50::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::50::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::50::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::50::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::50::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::50::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::50::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::51::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::51::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::51::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::51::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::51::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::51::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::51::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::51::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::52::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::52::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::52::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::52::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::52::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::52::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::52::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::52::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::53::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::53::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::53::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::53::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::53::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::53::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::53::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::53::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::54::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::54::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::54::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::54::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::54::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::54::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::54::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::54::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::55::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::55::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::55::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::55::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::55::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::55::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::55::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::55::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::56::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::56::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::56::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::56::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::56::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::56::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::56::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::56::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::57::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::57::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::57::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::57::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::57::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::57::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::57::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::57::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::58::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::58::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::58::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::58::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::58::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::58::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::58::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::58::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::59::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::59::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::59::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::59::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::59::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::59::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::59::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::59::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::5::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::5::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::5::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::5::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::5::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::5::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::5::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::5::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::60::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::60::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::60::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::60::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::60::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::60::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::60::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::60::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::61::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::61::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::61::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::61::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::61::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::61::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::61::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::61::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::62::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::62::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::62::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::62::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::62::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::62::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::62::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::62::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::63::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::63::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::63::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::63::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::63::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::63::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::63::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::63::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::64::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::64::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::64::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::64::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::64::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::64::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::64::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::64::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::65::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::65::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::65::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::65::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::65::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::65::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::65::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::65::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::66::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::66::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::66::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::66::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::66::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::66::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::66::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::66::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::67::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::67::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::67::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::67::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::67::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::67::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::67::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::67::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::68::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::68::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::68::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::68::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::68::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::68::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::68::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::68::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::69::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::69::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::69::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::69::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::69::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::69::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::69::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::69::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::6::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::6::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::6::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::6::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::6::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::6::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::6::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::6::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::70::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::70::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::70::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::70::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::70::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::70::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::70::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::70::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::71::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::71::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::71::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::71::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::71::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::71::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::71::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::71::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::72::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::72::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::72::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::72::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::72::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::72::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::72::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::72::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::73::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::73::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::73::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::73::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::73::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::73::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::73::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::73::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::74::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::74::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::74::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::74::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::74::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::74::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::74::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::74::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::75::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::75::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::75::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::75::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::75::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::75::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::75::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::75::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::76::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::76::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::76::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::76::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::76::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::76::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::76::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::76::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::77::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::77::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::77::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::77::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::77::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::77::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::77::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::77::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::78::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::78::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::78::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::78::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::78::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::78::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::78::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::78::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::79::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::79::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::79::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::79::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::79::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::79::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::79::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::79::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::80::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::80::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::80::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::80::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::80::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::80::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::80::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::80::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::81::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::81::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::81::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::81::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::81::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::81::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::81::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::81::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::82::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::82::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::82::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::82::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::82::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::82::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::82::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::82::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::83::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::83::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::83::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::83::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::83::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::83::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::83::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::83::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::84::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::84::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::84::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::84::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::84::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::84::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::84::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::84::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::85::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::85::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::85::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::85::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::85::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::85::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::85::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::85::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::86::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::86::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::86::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::86::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::86::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::86::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::86::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::86::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::87::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::87::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::87::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::87::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::87::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::87::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::87::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::87::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::88::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::88::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::88::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::88::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::88::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::88::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::88::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::88::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::89::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::89::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::89::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::89::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::89::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::89::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::89::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::89::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::8::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::8::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::8::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::8::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::8::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::8::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::8::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::8::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::90::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::90::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::90::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::90::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::90::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::90::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::90::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::90::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::91::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::91::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::91::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::91::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::91::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::91::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::91::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::91::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::92::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::92::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::92::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::92::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::92::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::92::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::92::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::92::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::93::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::93::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::93::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::93::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::93::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::93::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::93::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::93::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::94::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::94::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::94::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::94::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::94::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::94::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::94::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::94::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::95::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::95::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::95::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::95::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::95::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::95::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::95::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::95::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::96::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::96::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::96::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::96::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::96::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::96::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::96::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::96::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::97::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::97::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::97::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::97::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::97::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::97::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::97::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::97::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::98::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::98::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::98::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::98::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::98::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::98::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::98::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::98::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::99::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::99::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::99::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::99::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::99::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::99::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::99::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::99::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::9::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::9::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::9::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::9::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::9::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::9::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::9::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/template.dat::9::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::2::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::2::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::2::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::2::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::2::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::2::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::2::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::2::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::4::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::4::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::4::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::4::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::4::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::4::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::4::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::4::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::5::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::5::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::5::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::5::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::5::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::5::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::5::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::5::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::6::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::6::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::6::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::6::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::6::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::6::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::6::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests11.dat::6::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::14::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::14::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::14::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::14::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::14::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::14::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::14::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::14::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::17::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::17::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::17::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::17::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::17::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::17::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::17::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::17::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::7::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::7::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::7::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::7::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::7::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::7::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::7::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests19.dat::7::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests2.dat::6::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests2.dat::6::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests2.dat::6::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests2.dat::6::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests2.dat::6::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests2.dat::6::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests2.dat::6::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests2.dat::6::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests2.dat::7::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests2.dat::7::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests2.dat::7::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests2.dat::7::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests2.dat::7::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests2.dat::7::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests2.dat::7::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests2.dat::7::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests25.dat::7::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests25.dat::7::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests25.dat::7::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests25.dat::7::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests25.dat::7::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests25.dat::7::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/tests25.dat::7::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/tests25.dat::7::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::14::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::14::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::14::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::14::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::14::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::14::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::14::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::14::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::15::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::15::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::15::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::15::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::15::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::15::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::15::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::15::lxml::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::16::DOM::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::16::DOM::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::16::ElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::16::ElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::16::cElementTree::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::16::cElementTree::parser::void-namespace': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::16::lxml::parser::namespaced': FAIL +u'html5lib/tests/testdata/tree-construction/webkit02.dat::16::lxml::parser::void-namespace': FAIL diff --git a/.travis.yml b/.travis.yml index 790b3089..94bb87e7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,10 +2,11 @@ language: python python: - "2.6" - "2.7" - - "3.2" - "3.3" - "3.4" + - "3.5" - "pypy" + sudo: false cache: @@ -16,18 +17,6 @@ env: - USE_OPTIONAL=true - USE_OPTIONAL=false -matrix: - exclude: - - python: "2.7" - env: USE_OPTIONAL=false - - python: "3.4" - env: USE_OPTIONAL=false - include: - - python: "2.7" - env: USE_OPTIONAL=false FLAKE=true - - python: "3.4" - env: USE_OPTIONAL=false FLAKE=true - before_install: - git submodule update --init --recursive @@ -35,8 +24,12 @@ install: - bash requirements-install.sh script: - - nosetests + - if [[ $TRAVIS_PYTHON_VERSION == pypy* ]]; then py.test; fi + - if [[ $TRAVIS_PYTHON_VERSION != pypy* ]]; then coverage run -m pytest; fi - bash flake8-run.sh after_script: - python debug-info.py + +after_success: + - if [[ $TRAVIS_PYTHON_VERSION != pypy* ]]; then coverage combine && codecov; fi diff --git a/AUTHORS.rst b/AUTHORS.rst index fe9ae89b..c3820ef7 100644 --- a/AUTHORS.rst +++ b/AUTHORS.rst @@ -41,3 +41,4 @@ Patches and suggestions - Jim Baker - Michael[tm] Smith - Marc Abramowitz +- Jon Dufresne diff --git a/CHANGES.rst b/CHANGES.rst index d7797bf9..570c9605 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,6 +1,79 @@ Change Log ---------- +0.999999999/1.0b10 +~~~~~~~~~~~~~~~~~~ + +Released on July 15, 2016 + +* Fix attribute order going to the tree builder to be document order + instead of reverse document order(!). + + +0.99999999/1.0b9 +~~~~~~~~~~~~~~~~ + +Released on July 14, 2016 + +* **Added ordereddict as a mandatory dependency on Python 2.6.** + +* Added ``lxml``, ``genshi``, ``datrie``, ``charade``, and ``all`` + extras that will do the right thing based on the specific + interpreter implementation. + +* Now requires the ``mock`` package for the testsuite. + +* Cease supporting DATrie under PyPy. + +* **Remove ``PullDOM`` support, as this hasn't ever been properly + tested, doesn't entirely work, and as far as I can tell is + completely unused by anyone.** + +* Move testsuite to ``py.test``. + +* **Fix #124: move to webencodings for decoding the input byte stream; + this makes html5lib compliant with the Encoding Standard, and + introduces a required dependency on webencodings.** + +* **Cease supporting Python 3.2 (in both CPython and PyPy forms).** + +* **Fix comments containing double-dash with lxml 3.5 and above.** + +* **Use scripting disabled by default (as we don't implement + scripting).** + +* **Fix #11, avoiding the XSS bug potentially caused by serializer + allowing attribute values to be escaped out of in old browser versions, + changing the quote_attr_values option on serializer to take one of + three values, "always" (the old True value), "legacy" (the new option, + and the new default), and "spec" (the old False value, and the old + default).** + +* **Fix #72 by rewriting the sanitizer to apply only to treewalkers + (instead of the tokenizer); as such, this will require amending all + callers of it to use it via the treewalker API.** + +* **Drop support of charade, now that chardet is supported once more.** + +* **Replace the charset keyword argument on parse and related methods + with a set of keyword arguments: override_encoding, transport_encoding, + same_origin_parent_encoding, likely_encoding, and default_encoding.** + +* **Move filters._base, treebuilder._base, and treewalkers._base to .base + to clarify their status as public.** + +* **Get rid of the sanitizer package. Merge sanitizer.sanitize into the + sanitizer.htmlsanitizer module and move that to saniziter. This means + anyone who used sanitizer.sanitize or sanitizer.HTMLSanitizer needs no + code changes.** + +* **Rename treewalkers.lxmletree to .etree_lxml and + treewalkers.genshistream to .genshi to have a consistent API.** + +* Move a whole load of stuff (inputstream, ihatexml, trie, tokenizer, + utils) to be underscore prefixed to clarify their status as private. + + 0.9999999/1.0b8 ~~~~~~~~~~~~~~~ @@ -173,7 +246,7 @@ Released on May 17, 2013 * Test harness has been improved and now depends on ``nose``. -* Documentation updated and moved to http://html5lib.readthedocs.org/. +* Documentation updated and moved to https://html5lib.readthedocs.io/. 0.95 diff --git a/MANIFEST.in b/MANIFEST.in index 1edd0b7d..4b3ffe3e 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,6 +1,10 @@ include LICENSE +include AUTHORS.rst include CHANGES.rst include README.rst include requirements*.txt +include .pytest.expect +include tox.ini +include pytest.ini graft html5lib/tests/testdata recursive-include html5lib/tests *.py diff --git a/README.rst b/README.rst index 9e0a0f74..2ad46090 100644 --- a/README.rst +++ b/README.rst @@ -51,7 +51,7 @@ pass into html5lib as follows: import html5lib with closing(urlopen("http://example.com/")) as f: - document = html5lib.parse(f, encoding=f.info().getparam("charset")) + document = html5lib.parse(f, transport_encoding=f.info().getparam("charset")) When using with ``urllib.request`` (Python 3), the charset from HTTP should be pass into html5lib as follows: @@ -62,7 +62,7 @@ should be pass into html5lib as follows: import html5lib with urlopen("http://example.com/") as f: - document = html5lib.parse(f, encoding=f.info().get_content_charset()) + document = html5lib.parse(f, transport_encoding=f.info().get_content_charset()) To have more control over the parser, create a parser object explicitly. For instance, to make the parser raise exceptions on parse errors, use: @@ -84,13 +84,13 @@ format: parser = html5lib.HTMLParser(tree=html5lib.getTreeBuilder("dom")) minidom_document = parser.parse("
Hello World!")
-More documentation is available at http://html5lib.readthedocs.org/.
+More documentation is available at https://html5lib.readthedocs.io/.
Installation
------------
-html5lib works on CPython 2.6+, CPython 3.2+ and PyPy. To install it,
+html5lib works on CPython 2.6+, CPython 3.3+ and PyPy. To install it,
use:
.. code-block:: bash
@@ -104,8 +104,8 @@ Optional Dependencies
The following third-party libraries may be used for additional
functionality:
-- ``datrie`` can be used to improve parsing performance (though in
- almost all cases the improvement is marginal);
+- ``datrie`` can be used under CPython to improve parsing performance
+ (though in almost all cases the improvement is marginal);
- ``lxml`` is supported as a tree format (for both building and
walking) under CPython (but *not* PyPy where it is known to cause
@@ -113,13 +113,8 @@ functionality:
- ``genshi`` has a treewalker (but not builder); and
-- ``charade`` can be used as a fallback when character encoding cannot
- be determined; ``chardet``, from which it was forked, can also be used
- on Python 2.
-
-- ``ordereddict`` can be used under Python 2.6
- (``collections.OrderedDict`` is used instead on later versions) to
- serialize attributes in alphabetical order.
+- ``chardet`` can be used as a fallback when character encoding cannot
+ be determined.
Bugs
@@ -132,9 +127,9 @@ Please report any bugs on the `issue tracker
Tests
-----
-Unit tests require the ``nose`` library and can be run using the
-``nosetests`` command in the root directory; ``ordereddict`` is
-required under Python 2.6. All should pass.
+Unit tests require the ``pytest`` and ``mock`` libraries and can be
+run using the ``py.test`` command in the root directory;
+``ordereddict`` is required under Python 2.6. All should pass.
Test data are contained in a separate `html5lib-tests
- self.processSpaceCharactersNonPre = self.processSpaceCharacters
+ # Set this to the default handler
+ self.processSpaceCharacters = self.processSpaceCharactersNonPre
- self.startTagHandler = utils.MethodDispatcher([
+ self.startTagHandler = _utils.MethodDispatcher([
("html", self.startTagHtml),
(("base", "basefont", "bgsound", "command", "link", "meta",
"script", "style", "title"),
@@ -885,7 +883,7 @@ def __init__(self, parser, tree):
("body", self.startTagBody),
("frameset", self.startTagFrameset),
(("address", "article", "aside", "blockquote", "center", "details",
- "details", "dir", "div", "dl", "fieldset", "figcaption", "figure",
+ "dir", "div", "dl", "fieldset", "figcaption", "figure",
"footer", "header", "hgroup", "main", "menu", "nav", "ol", "p",
"section", "summary", "ul"),
self.startTagCloseP),
@@ -911,7 +909,8 @@ def __init__(self, parser, tree):
("isindex", self.startTagIsIndex),
("textarea", self.startTagTextarea),
("iframe", self.startTagIFrame),
- (("noembed", "noframes", "noscript"), self.startTagRawtext),
+ ("noscript", self.startTagNoscript),
+ (("noembed", "noframes"), self.startTagRawtext),
("select", self.startTagSelect),
(("rp", "rt"), self.startTagRpRt),
(("option", "optgroup"), self.startTagOpt),
@@ -923,7 +922,7 @@ def __init__(self, parser, tree):
])
self.startTagHandler.default = self.startTagOther
- self.endTagHandler = utils.MethodDispatcher([
+ self.endTagHandler = _utils.MethodDispatcher([
("body", self.endTagBody),
("html", self.endTagHtml),
(("address", "article", "aside", "blockquote", "button", "center",
@@ -942,17 +941,9 @@ def __init__(self, parser, tree):
self.endTagHandler.default = self.endTagOther
def isMatchingFormattingElement(self, node1, node2):
- if node1.name != node2.name or node1.namespace != node2.namespace:
- return False
- elif len(node1.attributes) != len(node2.attributes):
- return False
- else:
- attributes1 = sorted(node1.attributes.items())
- attributes2 = sorted(node2.attributes.items())
- for attr1, attr2 in zip(attributes1, attributes2):
- if attr1 != attr2:
- return False
- return True
+ return (node1.name == node2.name and
+ node1.namespace == node2.namespace and
+ node1.attributes == node2.attributes)
# helper
def addFormattingElement(self, token):
@@ -988,8 +979,8 @@ def processSpaceCharactersDropNewline(self, token):
data = token["data"]
self.processSpaceCharacters = self.processSpaceCharactersNonPre
if (data.startswith("\n") and
- self.tree.openElements[-1].name in ("pre", "listing", "textarea")
- and not self.tree.openElements[-1].hasContent()):
+ self.tree.openElements[-1].name in ("pre", "listing", "textarea") and
+ not self.tree.openElements[-1].hasContent()):
data = data[1:]
if data:
self.tree.reconstructActiveFormattingElements()
@@ -1007,7 +998,7 @@ def processCharacters(self, token):
for char in token["data"]])):
self.parser.framesetOK = False
- def processSpaceCharacters(self, token):
+ def processSpaceCharactersNonPre(self, token):
self.tree.reconstructActiveFormattingElements()
self.tree.insertText(token["data"])
@@ -1016,8 +1007,8 @@ def startTagProcessInHead(self, token):
def startTagBody(self, token):
self.parser.parseError("unexpected-start-tag", {"name": "body"})
- if (len(self.tree.openElements) == 1
- or self.tree.openElements[1].name != "body"):
+ if (len(self.tree.openElements) == 1 or
+ self.tree.openElements[1].name != "body"):
assert self.parser.innerHTML
else:
self.parser.framesetOK = False
@@ -1232,6 +1223,12 @@ def startTagIFrame(self, token):
self.parser.framesetOK = False
self.startTagRawtext(token)
+ def startTagNoscript(self, token):
+ if self.parser.scripting:
+ self.startTagRawtext(token)
+ else:
+ self.startTagOther(token)
+
def startTagRawtext(self, token):
"""iframe, noembed noframes, noscript(if scripting enabled)"""
self.parser.parseRCDataRawtext(token, "RAWTEXT")
@@ -1327,7 +1324,7 @@ def endTagBody(self, token):
# Not sure this is the correct name for the parse error
self.parser.parseError(
"expected-one-end-tag-but-got-another",
- {"expectedName": "body", "gotName": node.name})
+ {"gotName": "body", "expectedName": node.name})
break
self.parser.phase = self.parser.phases["afterBody"]
@@ -1595,9 +1592,9 @@ def endTagOther(self, token):
class TextPhase(Phase):
def __init__(self, parser, tree):
Phase.__init__(self, parser, tree)
- self.startTagHandler = utils.MethodDispatcher([])
+ self.startTagHandler = _utils.MethodDispatcher([])
self.startTagHandler.default = self.startTagOther
- self.endTagHandler = utils.MethodDispatcher([
+ self.endTagHandler = _utils.MethodDispatcher([
("script", self.endTagScript)])
self.endTagHandler.default = self.endTagOther
@@ -1629,7 +1626,7 @@ class InTablePhase(Phase):
# http://www.whatwg.org/specs/web-apps/current-work/#in-table
def __init__(self, parser, tree):
Phase.__init__(self, parser, tree)
- self.startTagHandler = utils.MethodDispatcher([
+ self.startTagHandler = _utils.MethodDispatcher([
("html", self.startTagHtml),
("caption", self.startTagCaption),
("colgroup", self.startTagColgroup),
@@ -1643,7 +1640,7 @@ def __init__(self, parser, tree):
])
self.startTagHandler.default = self.startTagOther
- self.endTagHandler = utils.MethodDispatcher([
+ self.endTagHandler = _utils.MethodDispatcher([
("table", self.endTagTable),
(("body", "caption", "col", "colgroup", "html", "tbody", "td",
"tfoot", "th", "thead", "tr"), self.endTagIgnore)
@@ -1820,14 +1817,14 @@ class InCaptionPhase(Phase):
def __init__(self, parser, tree):
Phase.__init__(self, parser, tree)
- self.startTagHandler = utils.MethodDispatcher([
+ self.startTagHandler = _utils.MethodDispatcher([
("html", self.startTagHtml),
(("caption", "col", "colgroup", "tbody", "td", "tfoot", "th",
"thead", "tr"), self.startTagTableElement)
])
self.startTagHandler.default = self.startTagOther
- self.endTagHandler = utils.MethodDispatcher([
+ self.endTagHandler = _utils.MethodDispatcher([
("caption", self.endTagCaption),
("table", self.endTagTable),
(("body", "col", "colgroup", "html", "tbody", "td", "tfoot", "th",
@@ -1892,13 +1889,13 @@ class InColumnGroupPhase(Phase):
def __init__(self, parser, tree):
Phase.__init__(self, parser, tree)
- self.startTagHandler = utils.MethodDispatcher([
+ self.startTagHandler = _utils.MethodDispatcher([
("html", self.startTagHtml),
("col", self.startTagCol)
])
self.startTagHandler.default = self.startTagOther
- self.endTagHandler = utils.MethodDispatcher([
+ self.endTagHandler = _utils.MethodDispatcher([
("colgroup", self.endTagColgroup),
("col", self.endTagCol)
])
@@ -1926,6 +1923,7 @@ def processCharacters(self, token):
def startTagCol(self, token):
self.tree.insertElement(token)
self.tree.openElements.pop()
+ token["selfClosingAcknowledged"] = True
def startTagOther(self, token):
ignoreEndTag = self.ignoreEndTagColgroup()
@@ -1955,7 +1953,7 @@ class InTableBodyPhase(Phase):
# http://www.whatwg.org/specs/web-apps/current-work/#in-table0
def __init__(self, parser, tree):
Phase.__init__(self, parser, tree)
- self.startTagHandler = utils.MethodDispatcher([
+ self.startTagHandler = _utils.MethodDispatcher([
("html", self.startTagHtml),
("tr", self.startTagTr),
(("td", "th"), self.startTagTableCell),
@@ -1964,7 +1962,7 @@ def __init__(self, parser, tree):
])
self.startTagHandler.default = self.startTagOther
- self.endTagHandler = utils.MethodDispatcher([
+ self.endTagHandler = _utils.MethodDispatcher([
(("tbody", "tfoot", "thead"), self.endTagTableRowGroup),
("table", self.endTagTable),
(("body", "caption", "col", "colgroup", "html", "td", "th",
@@ -2053,7 +2051,7 @@ class InRowPhase(Phase):
# http://www.whatwg.org/specs/web-apps/current-work/#in-row
def __init__(self, parser, tree):
Phase.__init__(self, parser, tree)
- self.startTagHandler = utils.MethodDispatcher([
+ self.startTagHandler = _utils.MethodDispatcher([
("html", self.startTagHtml),
(("td", "th"), self.startTagTableCell),
(("caption", "col", "colgroup", "tbody", "tfoot", "thead",
@@ -2061,7 +2059,7 @@ def __init__(self, parser, tree):
])
self.startTagHandler.default = self.startTagOther
- self.endTagHandler = utils.MethodDispatcher([
+ self.endTagHandler = _utils.MethodDispatcher([
("tr", self.endTagTr),
("table", self.endTagTable),
(("tbody", "tfoot", "thead"), self.endTagTableRowGroup),
@@ -2142,14 +2140,14 @@ class InCellPhase(Phase):
# http://www.whatwg.org/specs/web-apps/current-work/#in-cell
def __init__(self, parser, tree):
Phase.__init__(self, parser, tree)
- self.startTagHandler = utils.MethodDispatcher([
+ self.startTagHandler = _utils.MethodDispatcher([
("html", self.startTagHtml),
(("caption", "col", "colgroup", "tbody", "td", "tfoot", "th",
"thead", "tr"), self.startTagTableOther)
])
self.startTagHandler.default = self.startTagOther
- self.endTagHandler = utils.MethodDispatcher([
+ self.endTagHandler = _utils.MethodDispatcher([
(("td", "th"), self.endTagTableCell),
(("body", "caption", "col", "colgroup", "html"), self.endTagIgnore),
(("table", "tbody", "tfoot", "thead", "tr"), self.endTagImply)
@@ -2218,7 +2216,7 @@ class InSelectPhase(Phase):
def __init__(self, parser, tree):
Phase.__init__(self, parser, tree)
- self.startTagHandler = utils.MethodDispatcher([
+ self.startTagHandler = _utils.MethodDispatcher([
("html", self.startTagHtml),
("option", self.startTagOption),
("optgroup", self.startTagOptgroup),
@@ -2228,7 +2226,7 @@ def __init__(self, parser, tree):
])
self.startTagHandler.default = self.startTagOther
- self.endTagHandler = utils.MethodDispatcher([
+ self.endTagHandler = _utils.MethodDispatcher([
("option", self.endTagOption),
("optgroup", self.endTagOptgroup),
("select", self.endTagSelect)
@@ -2318,13 +2316,13 @@ class InSelectInTablePhase(Phase):
def __init__(self, parser, tree):
Phase.__init__(self, parser, tree)
- self.startTagHandler = utils.MethodDispatcher([
+ self.startTagHandler = _utils.MethodDispatcher([
(("caption", "table", "tbody", "tfoot", "thead", "tr", "td", "th"),
self.startTagTable)
])
self.startTagHandler.default = self.startTagOther
- self.endTagHandler = utils.MethodDispatcher([
+ self.endTagHandler = _utils.MethodDispatcher([
(("caption", "table", "tbody", "tfoot", "thead", "tr", "td", "th"),
self.endTagTable)
])
@@ -2445,7 +2443,7 @@ def processStartTag(self, token):
def processEndTag(self, token):
nodeIndex = len(self.tree.openElements) - 1
node = self.tree.openElements[-1]
- if node.name != token["name"]:
+ if node.name.translate(asciiUpper2Lower) != token["name"]:
self.parser.parseError("unexpected-end-tag", {"name": token["name"]})
while True:
@@ -2472,12 +2470,12 @@ class AfterBodyPhase(Phase):
def __init__(self, parser, tree):
Phase.__init__(self, parser, tree)
- self.startTagHandler = utils.MethodDispatcher([
+ self.startTagHandler = _utils.MethodDispatcher([
("html", self.startTagHtml)
])
self.startTagHandler.default = self.startTagOther
- self.endTagHandler = utils.MethodDispatcher([("html", self.endTagHtml)])
+ self.endTagHandler = _utils.MethodDispatcher([("html", self.endTagHtml)])
self.endTagHandler.default = self.endTagOther
def processEOF(self):
@@ -2520,7 +2518,7 @@ class InFramesetPhase(Phase):
def __init__(self, parser, tree):
Phase.__init__(self, parser, tree)
- self.startTagHandler = utils.MethodDispatcher([
+ self.startTagHandler = _utils.MethodDispatcher([
("html", self.startTagHtml),
("frameset", self.startTagFrameset),
("frame", self.startTagFrame),
@@ -2528,7 +2526,7 @@ def __init__(self, parser, tree):
])
self.startTagHandler.default = self.startTagOther
- self.endTagHandler = utils.MethodDispatcher([
+ self.endTagHandler = _utils.MethodDispatcher([
("frameset", self.endTagFrameset)
])
self.endTagHandler.default = self.endTagOther
@@ -2564,7 +2562,7 @@ def endTagFrameset(self, token):
self.tree.openElements.pop()
if (not self.parser.innerHTML and
self.tree.openElements[-1].name != "frameset"):
- # If we're not in innerHTML mode and the the current node is not a
+ # If we're not in innerHTML mode and the current node is not a
# "frameset" element (anymore) then switch.
self.parser.phase = self.parser.phases["afterFrameset"]
@@ -2577,13 +2575,13 @@ class AfterFramesetPhase(Phase):
def __init__(self, parser, tree):
Phase.__init__(self, parser, tree)
- self.startTagHandler = utils.MethodDispatcher([
+ self.startTagHandler = _utils.MethodDispatcher([
("html", self.startTagHtml),
("noframes", self.startTagNoframes)
])
self.startTagHandler.default = self.startTagOther
- self.endTagHandler = utils.MethodDispatcher([
+ self.endTagHandler = _utils.MethodDispatcher([
("html", self.endTagHtml)
])
self.endTagHandler.default = self.endTagOther
@@ -2613,7 +2611,7 @@ class AfterAfterBodyPhase(Phase):
def __init__(self, parser, tree):
Phase.__init__(self, parser, tree)
- self.startTagHandler = utils.MethodDispatcher([
+ self.startTagHandler = _utils.MethodDispatcher([
("html", self.startTagHtml)
])
self.startTagHandler.default = self.startTagOther
@@ -2651,7 +2649,7 @@ class AfterAfterFramesetPhase(Phase):
def __init__(self, parser, tree):
Phase.__init__(self, parser, tree)
- self.startTagHandler = utils.MethodDispatcher([
+ self.startTagHandler = _utils.MethodDispatcher([
("html", self.startTagHtml),
("noframes", self.startTagNoFrames)
])
@@ -2682,13 +2680,14 @@ def startTagOther(self, token):
def processEndTag(self, token):
self.parser.parseError("expected-eof-but-got-end-tag",
{"name": token["name"]})
+ # pylint:enable=unused-argument
return {
"initial": InitialPhase,
"beforeHtml": BeforeHtmlPhase,
"beforeHead": BeforeHeadPhase,
"inHead": InHeadPhase,
- # XXX "inHeadNoscript": InHeadNoScriptPhase,
+ "inHeadNoscript": InHeadNoscriptPhase,
"afterHead": AfterHeadPhase,
"inBody": InBodyPhase,
"text": TextPhase,
@@ -2711,6 +2710,16 @@ def processEndTag(self, token):
}
+def adjust_attributes(token, replacements):
+ if PY3 or _utils.PY27:
+ needs_adjustment = viewkeys(token['data']) & viewkeys(replacements)
+ else:
+ needs_adjustment = frozenset(token['data']) & frozenset(replacements)
+ if needs_adjustment:
+ token['data'] = OrderedDict((replacements.get(k, k), v)
+ for k, v in token['data'].items())
+
+
def impliedTagToken(name, type="EndTag", attributes=None,
selfClosing=False):
if attributes is None:
diff --git a/html5lib/sanitizer.py b/html5lib/sanitizer.py
deleted file mode 100644
index b714e8c9..00000000
--- a/html5lib/sanitizer.py
+++ /dev/null
@@ -1,300 +0,0 @@
-from __future__ import absolute_import, division, unicode_literals
-
-import re
-from xml.sax.saxutils import escape, unescape
-from six.moves import urllib_parse as urlparse
-
-from .tokenizer import HTMLTokenizer
-from .constants import tokenTypes
-
-
-content_type_rgx = re.compile(r'''
- ^
- # Match a content type
",
+ "output": "
"
+ },
+
+ {
+ "name": "img_dynsrc_lowsrc",
+ "input": "
",
+ "output": "
"
+ },
+
+ {
+ "name": "img_vbscript",
+ "input": "
",
+ "output": "
"
+ },
+
+ {
+ "name": "input_image",
+ "input": "",
+ "output": ""
+ },
+
+ {
+ "name": "link_stylesheets",
+ "input": "",
+ "output": "<link href=\"javascript:alert('XSS');\" rel=\"stylesheet\">"
+ },
+
+ {
+ "name": "link_stylesheets_2",
+ "input": "",
+ "output": "<link href=\"http://ha.ckers.org/xss.css\" rel=\"stylesheet\">"
+ },
+
+ {
+ "name": "list_style_image",
+ "input": "
",
+ "output": "
"
+ },
+
+ {
+ "name": "non_alpha_non_digit_II",
+ "input": "foo",
+ "output": "foo"
+ },
+
+ {
+ "name": "non_alpha_non_digit_III",
+ "input": "foo",
+ "output": "foo"
+ },
+
+ {
+ "name": "platypus",
+ "input": "never trust your upstream platypus",
+ "output": "never trust your upstream platypus"
+ },
+
+ {
+ "name": "protocol_resolution_in_script_tag",
+ "input": "",
+ "output": "<script src=\"//ha.ckers.org/.j\"></script>"
+ },
+
+ {
+ "name": "should_allow_anchors",
+ "input": "",
+ "output": "<script>baz</script>"
+ },
+
+ {
+ "name": "should_allow_image_alt_attribute",
+ "input": "
",
+ "output": "
"
+ },
+
+ {
+ "name": "should_allow_image_height_attribute",
+ "input": "
",
+ "output": "
"
+ },
+
+ {
+ "name": "should_allow_image_src_attribute",
+ "input": "
",
+ "output": "
"
+ },
+
+ {
+ "name": "should_allow_image_width_attribute",
+ "input": "
",
+ "output": "
"
+ },
+
+ {
+ "name": "should_handle_blank_text",
+ "input": "",
+ "output": ""
+ },
+
+ {
+ "name": "should_handle_malformed_image_tags",
+ "input": "
\">",
+ "output": "
<script>alert(\"XSS\")</script>\">"
+ },
+
+ {
+ "name": "should_handle_non_html",
+ "input": "abc",
+ "output": "abc"
+ },
+
+ {
+ "name": "should_not_fall_for_ridiculous_hack",
+ "input": "
",
+ "output": "
"
+ },
+
+ {
+ "name": "should_not_fall_for_xss_image_hack_0",
+ "input": "
",
+ "output": "
"
+ },
+
+ {
+ "name": "should_not_fall_for_xss_image_hack_1",
+ "input": "
",
+ "output": "
"
+ },
+
+ {
+ "name": "should_not_fall_for_xss_image_hack_10",
+ "input": "
",
+ "output": "
"
+ },
+
+ {
+ "name": "should_not_fall_for_xss_image_hack_11",
+ "input": "
",
+ "output": "
"
+ },
+
+ {
+ "name": "should_not_fall_for_xss_image_hack_12",
+ "input": "
",
+ "output": "
"
+ },
+
+ {
+ "name": "should_not_fall_for_xss_image_hack_13",
+ "input": "
",
+ "output": "
"
+ },
+
+ {
+ "name": "should_not_fall_for_xss_image_hack_14",
+ "input": "
",
+ "output": "
"
+ },
+
+ {
+ "name": "should_not_fall_for_xss_image_hack_2",
+ "input": "
",
+ "output": "
"
+ },
+
+ {
+ "name": "should_not_fall_for_xss_image_hack_3",
+ "input": "
",
+ "output": "
"
+ },
+
+ {
+ "name": "should_not_fall_for_xss_image_hack_4",
+ "input": "
",
+ "output": "
"
+ },
+
+ {
+ "name": "should_not_fall_for_xss_image_hack_5",
+ "input": "
",
+ "output": "
"
+ },
+
+ {
+ "name": "should_not_fall_for_xss_image_hack_6",
+ "input": "
",
+ "output": "
"
+ },
+
+ {
+ "name": "should_not_fall_for_xss_image_hack_7",
+ "input": "
",
+ "output": "
"
+ },
+
+ {
+ "name": "should_not_fall_for_xss_image_hack_8",
+ "input": "
",
+ "output": "
"
+ },
+
+ {
+ "name": "should_not_fall_for_xss_image_hack_9",
+ "input": "
",
+ "output": "
"
+ },
+
+ {
+ "name": "should_sanitize_half_open_scripts",
+ "input": "
",
+ "output": "<script src=\"http://ha.ckers.org/xss.js\" xss=\"\"></script>"
+ },
+
+ {
+ "name": "should_sanitize_script_tag_with_multiple_open_brackets",
+ "input": "<",
+ "output": "<<script>alert(\"XSS\");//<</script>"
+ },
+
+ {
+ "name": "should_sanitize_script_tag_with_multiple_open_brackets_2",
+ "input": "
𝒵 𝔸
") + expected = '\U0001d4b5 \U0001d538
' + assert expected == sanitized -def runSanitizerTest(name, expected, input, toxml=None): - if toxml is None: - toxml = toxmlFactory() - expected = ''.join([toxml(token) for token in html5parser.HTMLParser(). - parseFragment(expected)]) - expected = json.loads(json.dumps(expected)) - assert expected == sanitize_html(input) +def test_should_allow_relative_uris(): + sanitized = sanitize_html('') + expected = '' + assert expected == sanitized -def sanitize_html(stream, toxml=None): - if toxml is None: - toxml = toxmlFactory() - return ''.join([toxml(token) for token in - html5parser.HTMLParser(tokenizer=sanitizer.HTMLSanitizer). - parseFragment(stream)]) +def test_invalid_data_uri(): + sanitized = sanitize_html('') + expected = '' + assert expected == sanitized -def test_should_handle_astral_plane_characters(): - assert '𝒵 𝔸
") +def test_invalid_ipv6_url(): + sanitized = sanitize_html('') + expected = "" + assert expected == sanitized -def test_should_allow_relative_uris(): - assert 'foo <bad>bar</bad> baz
" % (attribute_name, attribute_value), - "foo
foo <bad>bar</bad> baz
", - "foo
foo