[Python-modules-team] Bug#966985: python-bleach: FTBFS: dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.8 returned exit code 13
Lucas Nussbaum
lucas at debian.org
Mon Aug 3 10:01:30 BST 2020
Source: python-bleach
Version: 3.1.5-2
Severity: serious
Justification: FTBFS on amd64
Tags: bullseye sid ftbfs
Usertags: ftbfs-20200802 ftbfs-bullseye
Hi,
During a rebuild of all packages in sid, your package failed to build
on amd64.
Relevant part (hopefully):
> make[1]: Entering directory '/<<PKGBUILDDIR>>'
> dh_auto_build -O--buildsystem=pybuild
> I: pybuild base:217: /usr/bin/python3 setup.py build
> running build
> running build_py
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach
> copying bleach/callbacks.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach
> copying bleach/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach
> copying bleach/html5lib_shim.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach
> copying bleach/linkifier.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach
> copying bleach/sanitizer.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach
> copying bleach/utils.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor
> copying bleach/_vendor/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib
> copying bleach/_vendor/html5lib/_inputstream.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib
> copying bleach/_vendor/html5lib/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib
> copying bleach/_vendor/html5lib/_utils.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib
> copying bleach/_vendor/html5lib/_tokenizer.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib
> copying bleach/_vendor/html5lib/constants.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib
> copying bleach/_vendor/html5lib/html5parser.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib
> copying bleach/_vendor/html5lib/serializer.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib
> copying bleach/_vendor/html5lib/_ihatexml.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib/filters
> copying bleach/_vendor/html5lib/filters/lint.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib/filters
> copying bleach/_vendor/html5lib/filters/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib/filters
> copying bleach/_vendor/html5lib/filters/alphabeticalattributes.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib/filters
> copying bleach/_vendor/html5lib/filters/whitespace.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib/filters
> copying bleach/_vendor/html5lib/filters/inject_meta_charset.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib/filters
> copying bleach/_vendor/html5lib/filters/optionaltags.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib/filters
> copying bleach/_vendor/html5lib/filters/base.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib/filters
> copying bleach/_vendor/html5lib/filters/sanitizer.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib/filters
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib/treewalkers
> copying bleach/_vendor/html5lib/treewalkers/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib/treewalkers
> copying bleach/_vendor/html5lib/treewalkers/etree.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib/treewalkers
> copying bleach/_vendor/html5lib/treewalkers/genshi.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib/treewalkers
> copying bleach/_vendor/html5lib/treewalkers/etree_lxml.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib/treewalkers
> copying bleach/_vendor/html5lib/treewalkers/dom.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib/treewalkers
> copying bleach/_vendor/html5lib/treewalkers/base.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib/treewalkers
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib/_trie
> copying bleach/_vendor/html5lib/_trie/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib/_trie
> copying bleach/_vendor/html5lib/_trie/_base.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib/_trie
> copying bleach/_vendor/html5lib/_trie/datrie.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib/_trie
> copying bleach/_vendor/html5lib/_trie/py.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib/_trie
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib/treeadapters
> copying bleach/_vendor/html5lib/treeadapters/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib/treeadapters
> copying bleach/_vendor/html5lib/treeadapters/genshi.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib/treeadapters
> copying bleach/_vendor/html5lib/treeadapters/sax.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib/treeadapters
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib/treebuilders
> copying bleach/_vendor/html5lib/treebuilders/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib/treebuilders
> copying bleach/_vendor/html5lib/treebuilders/etree.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib/treebuilders
> copying bleach/_vendor/html5lib/treebuilders/etree_lxml.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib/treebuilders
> copying bleach/_vendor/html5lib/treebuilders/dom.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib/treebuilders
> copying bleach/_vendor/html5lib/treebuilders/base.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib/treebuilders
> running egg_info
> creating bleach.egg-info
> writing bleach.egg-info/PKG-INFO
> writing dependency_links to bleach.egg-info/dependency_links.txt
> writing requirements to bleach.egg-info/requires.txt
> writing top-level names to bleach.egg-info/top_level.txt
> writing manifest file 'bleach.egg-info/SOURCES.txt'
> reading manifest file 'bleach.egg-info/SOURCES.txt'
> reading manifest template 'MANIFEST.in'
> writing manifest file 'bleach.egg-info/SOURCES.txt'
> copying bleach/_vendor/README.rst -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor
> copying bleach/_vendor/pip_install_vendor.sh -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor
> copying bleach/_vendor/vendor.txt -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib-1.0.1.dist-info
> copying bleach/_vendor/html5lib-1.0.1.dist-info/DESCRIPTION.rst -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib-1.0.1.dist-info
> copying bleach/_vendor/html5lib-1.0.1.dist-info/INSTALLER -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib-1.0.1.dist-info
> copying bleach/_vendor/html5lib-1.0.1.dist-info/LICENSE.txt -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib-1.0.1.dist-info
> copying bleach/_vendor/html5lib-1.0.1.dist-info/METADATA -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib-1.0.1.dist-info
> copying bleach/_vendor/html5lib-1.0.1.dist-info/RECORD -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib-1.0.1.dist-info
> copying bleach/_vendor/html5lib-1.0.1.dist-info/WHEEL -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib-1.0.1.dist-info
> copying bleach/_vendor/html5lib-1.0.1.dist-info/metadata.json -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib-1.0.1.dist-info
> copying bleach/_vendor/html5lib-1.0.1.dist-info/top_level.txt -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build/bleach/_vendor/html5lib-1.0.1.dist-info
> PYTHONPATH=. http_proxy='localhost' python3 -m sphinx -N -bhtml docs/ build/html
> Running Sphinx v2.4.3
> making output directory... done
> WARNING: html_static_path entry '_static' does not exist
> building [mo]: targets for 0 po files that are out of date
> building [html]: targets for 6 source files that are out of date
> updating environment: [new config] 6 added, 0 changed, 0 removed
> reading sources... [ 16%] changes
> reading sources... [ 33%] clean
> reading sources... [ 50%] dev
> reading sources... [ 66%] goals
> reading sources... [ 83%] index
> reading sources... [100%] linkify
>
> looking for now-outdated files... none found
> pickling environment... done
> checking consistency... done
> preparing documents... done
> writing output... [ 16%] changes
> writing output... [ 33%] clean
> writing output... [ 50%] dev
> writing output... [ 66%] goals
> writing output... [ 83%] index
> writing output... [100%] linkify
>
> generating indices... genindexdone
> highlighting module code... [ 33%] bleach
> highlighting module code... [ 66%] bleach.linkifier
> highlighting module code... [100%] bleach.sanitizer
>
> writing additional pages... searchdone
> copying static files... ... done
> copying extra files... done
> dumping search index in English (code: en)... done
> dumping object inventory... done
> build succeeded, 1 warning.
>
> The HTML pages are in build/html.
> make[1]: Leaving directory '/<<PKGBUILDDIR>>'
> dh_auto_test -O--buildsystem=pybuild
> I: pybuild base:217: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build; python3.8 -m pytest tests
> ============================= test session starts ==============================
> platform linux -- Python 3.8.5, pytest-4.6.11, py-1.8.1, pluggy-0.13.0
> rootdir: /<<PKGBUILDDIR>>
> collected 338 items
>
> tests/test_callbacks.py .......... [ 2%]
> tests/test_clean.py .................................................... [ 18%]
> ........................................................................ [ 39%]
> ............................................ [ 52%]
> tests/test_css.py .....x..xx................F. [ 60%]
> tests/test_html5lib_shim.py .................FF. [ 66%]
> tests/test_linkify.py .................................................. [ 81%]
> .................................................. [ 96%]
> tests/test_unicode.py ......... [ 99%]
> tests/test_utils.py ... [100%]
>
> =================================== FAILURES ===================================
> _______________ test_css_parsing_gauntlet_regex_backtracking['] ________________
>
> overlap_test_char = "'"
>
> @pytest.mark.parametrize('overlap_test_char', ["\"", "'", "-"])
> def test_css_parsing_gauntlet_regex_backtracking(overlap_test_char):
> """The sanitizer gauntlet regex should not catastrophically backtrack"""
> # refs: https://bugzilla.mozilla.org/show_bug.cgi?id=1623633
>
> def time_clean(test_char, size):
> style_attr_value = (test_char + 'a' + test_char) * size + '^'
> stmt = """clean('''<a style='%s'></a>''', attributes={'a': ['style']})""" % style_attr_value
> return timeit(stmt=stmt, setup='from bleach import clean', number=1)
>
> # should complete in less than one second
> > assert time_clean(overlap_test_char, 22) < 1.0
>
> tests/test_css.py:246:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> tests/test_css.py:243: in time_clean
> return timeit(stmt=stmt, setup='from bleach import clean', number=1)
> /usr/lib/python3.8/timeit.py:233: in timeit
> return Timer(stmt, setup, timer, globals).timeit(number)
> /usr/lib/python3.8/timeit.py:177: in timeit
> timing = self.inner(it, self.timer)
> <timeit-src>:6: in inner
> ???
> bleach/__init__.py:84: in clean
> return cleaner.clean(text)
> bleach/sanitizer.py:169: in clean
> dom = self.parser.parseFragment(text)
> /usr/lib/python3/dist-packages/html5lib/html5parser.py:312: in parseFragment
> self._parse(stream, True, *args, **kwargs)
> bleach/html5lib_shim.py:399: in _parse
> self.mainLoop()
> /usr/lib/python3/dist-packages/html5lib/html5parser.py:240: in mainLoop
> new_token = phase.processStartTag(new_token)
> /usr/lib/python3/dist-packages/html5lib/html5parser.py:469: in processStartTag
> return func(token)
> /usr/lib/python3/dist-packages/html5lib/html5parser.py:1109: in startTagA
> self.addFormattingElement(token)
> /usr/lib/python3/dist-packages/html5lib/html5parser.py:958: in addFormattingElement
> self.tree.insertElement(token)
> /usr/lib/python3/dist-packages/html5lib/treebuilders/base.py:328: in insertElementNormal
> element.attributes = token["data"]
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>
> self = <a>
> attributes = ['style', "a''a''a''a''a''a''a''a''a''a''a''a''a''a''a''a''a''a''a''a''a''a'^'"]
>
> def _setAttributes(self, attributes):
> el_attrib = self._element.attrib
> el_attrib.clear()
> if attributes:
> # calling .items _always_ allocates, and the above truthy check is cheaper than the
> # allocation on average
> > for key, value in attributes.items():
> E AttributeError: 'list' object has no attribute 'items'
>
> /usr/lib/python3/dist-packages/html5lib/treebuilders/etree.py:71: AttributeError
> _ test_bleach_html_parser[parser_args3-<a href="http://example.com"">-<a href="http://example.com"></a>] _
>
> parser_args = {}, data = '<a href="http://example.com"">'
> expected = '<a href="http://example.com"></a>'
>
> @pytest.mark.parametrize('parser_args, data, expected', [
> # Make sure InputStreamWithMemory has charEncoding and changeEncoding
> (
> {},
> '<meta charset="utf-8">',
> '<meta charset="utf-8">'
> ),
> # Handle consume entities False--all entities are passed along and then
> # escaped when serialized
> (
> {'consume_entities': False},
> 'text &>"',
> 'text &>"'
> ),
> # Handle consume entities True--all entities are consumed and converted
> # to their character equivalents and then &, <, and > are escaped when
> # serialized
> (
> {'consume_entities': True},
> 'text &>"',
> 'text &>"'
> ),
> # Test that "invalid-character-in-attribute-name" errors in tokenizing
> # result in attributes with invalid names getting dropped
> (
> {},
> '<a href="http://example.com"">',
> '<a href="http://example.com"></a>'
> ),
> (
> {},
> '<a href=\'http://example.com\'\'>',
> '<a href="http://example.com"></a>'
> ),
> # Test that "expected-closing-tag-but-got-char" works when tags is None
> (
> {},
> '</ chars',
> '<!-- chars-->',
> )
> ])
> def test_bleach_html_parser(parser_args, data, expected):
> args = {
> 'tags': None,
> 'strip': True,
> 'consume_entities': True
> }
> args.update(parser_args)
>
> # Build a parser, walker, and serializer just like we do in clean()
> parser = html5lib_shim.BleachHTMLParser(**args)
> walker = html5lib_shim.getTreeWalker('etree')
> serializer = html5lib_shim.BleachHTMLSerializer(
> quote_attr_values='always',
> omit_optional_tags=False,
> escape_lt_in_attrs=True,
> resolve_entities=False,
> sanitize=False,
> alphabetical_attributes=False,
> )
>
> # Parse, walk, and then serialize the output
> > dom = parser.parseFragment(data)
>
> tests/test_html5lib_shim.py:149:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> /usr/lib/python3/dist-packages/html5lib/html5parser.py:312: in parseFragment
> self._parse(stream, True, *args, **kwargs)
> bleach/html5lib_shim.py:399: in _parse
> self.mainLoop()
> /usr/lib/python3/dist-packages/html5lib/html5parser.py:240: in mainLoop
> new_token = phase.processStartTag(new_token)
> /usr/lib/python3/dist-packages/html5lib/html5parser.py:469: in processStartTag
> return func(token)
> /usr/lib/python3/dist-packages/html5lib/html5parser.py:1109: in startTagA
> self.addFormattingElement(token)
> /usr/lib/python3/dist-packages/html5lib/html5parser.py:958: in addFormattingElement
> self.tree.insertElement(token)
> /usr/lib/python3/dist-packages/html5lib/treebuilders/base.py:328: in insertElementNormal
> element.attributes = token["data"]
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>
> self = <a>, attributes = ['href']
>
> def _setAttributes(self, attributes):
> el_attrib = self._element.attrib
> el_attrib.clear()
> if attributes:
> # calling .items _always_ allocates, and the above truthy check is cheaper than the
> # allocation on average
> > for key, value in attributes.items():
> E AttributeError: 'list' object has no attribute 'items'
>
> /usr/lib/python3/dist-packages/html5lib/treebuilders/etree.py:71: AttributeError
> _ test_bleach_html_parser[parser_args4-<a href='http://example.com''>-<a href="http://example.com"></a>] _
>
> parser_args = {}, data = "<a href='http://example.com''>"
> expected = '<a href="http://example.com"></a>'
>
> @pytest.mark.parametrize('parser_args, data, expected', [
> # Make sure InputStreamWithMemory has charEncoding and changeEncoding
> (
> {},
> '<meta charset="utf-8">',
> '<meta charset="utf-8">'
> ),
> # Handle consume entities False--all entities are passed along and then
> # escaped when serialized
> (
> {'consume_entities': False},
> 'text &>"',
> 'text &>"'
> ),
> # Handle consume entities True--all entities are consumed and converted
> # to their character equivalents and then &, <, and > are escaped when
> # serialized
> (
> {'consume_entities': True},
> 'text &>"',
> 'text &>"'
> ),
> # Test that "invalid-character-in-attribute-name" errors in tokenizing
> # result in attributes with invalid names getting dropped
> (
> {},
> '<a href="http://example.com"">',
> '<a href="http://example.com"></a>'
> ),
> (
> {},
> '<a href=\'http://example.com\'\'>',
> '<a href="http://example.com"></a>'
> ),
> # Test that "expected-closing-tag-but-got-char" works when tags is None
> (
> {},
> '</ chars',
> '<!-- chars-->',
> )
> ])
> def test_bleach_html_parser(parser_args, data, expected):
> args = {
> 'tags': None,
> 'strip': True,
> 'consume_entities': True
> }
> args.update(parser_args)
>
> # Build a parser, walker, and serializer just like we do in clean()
> parser = html5lib_shim.BleachHTMLParser(**args)
> walker = html5lib_shim.getTreeWalker('etree')
> serializer = html5lib_shim.BleachHTMLSerializer(
> quote_attr_values='always',
> omit_optional_tags=False,
> escape_lt_in_attrs=True,
> resolve_entities=False,
> sanitize=False,
> alphabetical_attributes=False,
> )
>
> # Parse, walk, and then serialize the output
> > dom = parser.parseFragment(data)
>
> tests/test_html5lib_shim.py:149:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> /usr/lib/python3/dist-packages/html5lib/html5parser.py:312: in parseFragment
> self._parse(stream, True, *args, **kwargs)
> bleach/html5lib_shim.py:399: in _parse
> self.mainLoop()
> /usr/lib/python3/dist-packages/html5lib/html5parser.py:240: in mainLoop
> new_token = phase.processStartTag(new_token)
> /usr/lib/python3/dist-packages/html5lib/html5parser.py:469: in processStartTag
> return func(token)
> /usr/lib/python3/dist-packages/html5lib/html5parser.py:1109: in startTagA
> self.addFormattingElement(token)
> /usr/lib/python3/dist-packages/html5lib/html5parser.py:958: in addFormattingElement
> self.tree.insertElement(token)
> /usr/lib/python3/dist-packages/html5lib/treebuilders/base.py:328: in insertElementNormal
> element.attributes = token["data"]
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>
> self = <a>, attributes = ['href']
>
> def _setAttributes(self, attributes):
> el_attrib = self._element.attrib
> el_attrib.clear()
> if attributes:
> # calling .items _always_ allocates, and the above truthy check is cheaper than the
> # allocation on average
> > for key, value in attributes.items():
> E AttributeError: 'list' object has no attribute 'items'
>
> /usr/lib/python3/dist-packages/html5lib/treebuilders/etree.py:71: AttributeError
> =============================== warnings summary ===============================
> /usr/lib/python3/dist-packages/html5lib/filters/sanitizer.py:29
> /usr/lib/python3/dist-packages/html5lib/filters/sanitizer.py:29: DeprecationWarning: html5lib's sanitizer is deprecated; see https://github.com/html5lib/html5lib-python/issues/443 and please let us know if Bleach is unsuitable for your needs
> warnings.warn(_deprecation_msg, DeprecationWarning)
>
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_clean_idempotent
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_clean_idempotent
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_clean_idempotent
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_only_text_is_cleaned
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_content_has_no_html
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_content_has_allowed_html[an <strong>allowed</strong> tag-an <strong>allowed</strong> tag]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_content_has_allowed_html[another <em>good</em> tag-another <em>good</em> tag]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_html_is_lowercased
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_invalid_uri_does_not_raise_error
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_comments[<!-- this is a comment -->-True-]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_comments[<!-- open comment-True-]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_comments[<!--open comment-True-]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_comments[<!-- open comment-False-<!-- open comment-->]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_comments[<!--open comment-False-<!--open comment-->]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_comments[<!-- comment -->text-True-text]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_comments[<!--comment-->text-True-text]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_comments[<!-- comment -->text-False-<!-- comment -->text]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_comments[<!--comment-->text-False-<!--comment-->text]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_comments[text<!-- comment -->-True-text]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_comments[text<!--comment-->-True-text]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_comments[text<!-- comment -->-False-text<!-- comment -->]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_comments[text<!--comment-->-False-text<!--comment-->]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_invalid_char_in_tag
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_invalid_char_in_tag
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_unclosed_tag
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_unclosed_tag
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_unclosed_tag
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_unclosed_tag
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_nested_script_tag
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_nested_script_tag
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_nested_script_tag
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_bare_entities_get_escaped_correctly[an & entity-an & entity]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_bare_entities_get_escaped_correctly[an < entity-an < entity]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_bare_entities_get_escaped_correctly[tag < <em>and</em> entity-tag < <em>and</em> entity]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_character_entities_handling[&-&]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_character_entities_handling[ - ]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_character_entities_handling[ test string - test string ]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_character_entities_handling[<em>strong</em>-<em>strong</em>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_character_entities_handling[&is cool-&is cool]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_character_entities_handling[cool &-cool &]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_character_entities_handling[&& is cool-&& is cool]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_character_entities_handling[& is cool &&-& is cool &&]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_character_entities_handling[this & that-this & that]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_character_entities_handling[http://example.com?active=true¤t=true-http://example.com?active=true¤t=true]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_character_entities_handling[<a href="?art©">foo</a>-<a href="?art©">foo</a>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_character_entities_handling[<a href="?this=>that">foo</a>-<a href="?this=>that">foo</a>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_character_entities_handling[<a href="http://example.com/&xx;">foo</a>-<a href="http://example.com/&xx;">foo</a>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_character_entities_handling[<a href="http://example.com?active=true¤t=true">foo</a>-<a href="http://example.com?active=true¤t=true">foo</a>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_character_entities_handling[&xx;-&xx;]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_character_entities_handling['-']
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_character_entities_handling["-"]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_character_entities_handling[{-{]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_character_entities_handling[{-{]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_character_entities_handling[{-{]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_character_entities_handling[&#-&#]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_character_entities_handling[&#<-&#<]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_character_entities_handling['"-'"]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[a test <em>with</em> <b>html</b> tags-kwargs0-a test <em>with</em> <b>html</b> tags]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[a test <em>with</em> <b>html</b> tags-kwargs0-a test <em>with</em> <b>html</b> tags]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[a test <em>with</em> <b>html</b> tags-kwargs0-a test <em>with</em> <b>html</b> tags]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[a test <em>with</em> <img src="http://example.com/"> <b>html</b> tags-kwargs1-a test <em>with</em> <b>html</b> tags]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[a test <em>with</em> <img src="http://example.com/"> <b>html</b> tags-kwargs1-a test <em>with</em> <b>html</b> tags]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[a test <em>with</em> <img src="http://example.com/"> <b>html</b> tags-kwargs1-a test <em>with</em> <b>html</b> tags]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[<p><a href="http://example.com/">link text</a></p>-kwargs2-<p>link text</p>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[<p><a href="http://example.com/">link text</a></p>-kwargs2-<p>link text</p>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[<p><a href="http://example.com/">link text</a></p>-kwargs2-<p>link text</p>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[<p><span>multiply <span>nested <span>text</span></span></span></p>-kwargs3-<p>multiply nested text</p>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[<p><span>multiply <span>nested <span>text</span></span></span></p>-kwargs3-<p>multiply nested text</p>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[<p><span>multiply <span>nested <span>text</span></span></span></p>-kwargs3-<p>multiply nested text</p>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[<ul><li><script></li></ul>-kwargs4-<ul><li></li></ul>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[<ul><li><script></li></ul>-kwargs4-<ul><li></li></ul>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[<ul><li><script></li></ul>-kwargs4-<ul><li></li></ul>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[<p><a href="http://example.com/"><img src="http://example.com/"></a></p>-kwargs5-<p><a href="http://example.com/"></a></p>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[<p><a href="http://example.com/"><img src="http://example.com/"></a></p>-kwargs5-<p><a href="http://example.com/"></a></p>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[<p><a href="http://example.com/"><img src="http://example.com/"></a></p>-kwargs5-<p><a href="http://example.com/"></a></p>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[<isindex>-kwargs6-]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[<isindex>-kwargs6-]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[<isindex>-kwargs6-]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[Yeah right <sarcasm/>-kwargs7-Yeah right ]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[Yeah right <sarcasm/>-kwargs7-Yeah right ]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[Yeah right <sarcasm/>-kwargs7-Yeah right ]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[<sarcasm>-kwargs8-]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[<sarcasm>-kwargs8-]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[<sarcasm>-kwargs8-]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[</sarcasm>-kwargs9-]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[</sarcasm>-kwargs9-]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[</sarcasm>-kwargs9-]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[</ sarcasm>-kwargs10-</ sarcasm>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[</ sarcasm>-kwargs10-</ sarcasm>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[</ sarcasm>-kwargs10-</ sarcasm>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[</ sarcasm >-kwargs11-</ sarcasm >]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[</ sarcasm >-kwargs11-</ sarcasm >]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[</ sarcasm >-kwargs11-</ sarcasm >]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[Foo <bar at example.com>-kwargs12-Foo ]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[Foo <bar at example.com>-kwargs12-Foo ]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[Foo <bar at example.com>-kwargs12-Foo ]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[Favorite movie: <name of movie>-kwargs13-Favorite movie: ]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[Favorite movie: <name of movie>-kwargs13-Favorite movie: ]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[Favorite movie: <name of movie>-kwargs13-Favorite movie: ]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[</3-kwargs14-</3]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[</3-kwargs14-</3]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags[</3-kwargs14-</3]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[<img src="javascript:alert('XSS');">-<img src="javascript:alert('XSS');">]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[<img src="javascript:alert('XSS');">-<img src="javascript:alert('XSS');">]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[<img src="javascript:alert('XSS');">-<img src="javascript:alert('XSS');">]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[<script>safe()</script>-<script>safe()</script>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[<script>safe()</script>-<script>safe()</script>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[<script>safe()</script>-<script>safe()</script>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[<style>body{}</style>-<style>body{}</style>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[<style>body{}</style>-<style>body{}</style>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[<style>body{}</style>-<style>body{}</style>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[<ul><li><script></li></ul>-<ul><li><script></li></ul>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[<ul><li><script></li></ul>-<ul><li><script></li></ul>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[<ul><li><script></li></ul>-<ul><li><script></li></ul>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[<isindex>-<isindex>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[<isindex>-<isindex>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[<isindex>-<isindex>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[<sarcasm/>-<sarcasm/>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[<sarcasm/>-<sarcasm/>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[<sarcasm/>-<sarcasm/>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[<sarcasm>-<sarcasm>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[<sarcasm>-<sarcasm>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[<sarcasm>-<sarcasm>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[</sarcasm>-</sarcasm>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[</sarcasm>-</sarcasm>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[</sarcasm>-</sarcasm>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[</ sarcasm>-</ sarcasm>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[</ sarcasm>-</ sarcasm>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[</ sarcasm>-</ sarcasm>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[</ sarcasm >-</ sarcasm >]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[</ sarcasm >-</ sarcasm >]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[</ sarcasm >-</ sarcasm >]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[</3-</3]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[</3-</3]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[</3-</3]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[<bar at example.com>-<bar at example.com>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[<bar at example.com>-<bar at example.com>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[<bar at example.com>-<bar at example.com>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[Favorite movie: <name of movie>-Favorite movie: <name of movie>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[Favorite movie: <name of movie>-Favorite movie: <name of movie>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_escaping_tags[Favorite movie: <name of movie>-Favorite movie: <name of movie>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags_is_safe[<scri<script>pt>alert(1)</scr</script>ipt>-pt>alert(1)ipt>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_stripping_tags_is_safe[<scri<scri<script>pt>pt>alert(1)</script>-pt>pt>alert(1)]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_allowed_styles
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_allowed_styles
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_allowed_styles
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_href_with_wrong_tag
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_disallowed_attr
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_disallowed_attr
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_disallowed_attr
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_unquoted_attr_values_are_quoted
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_unquoted_event_handler_attr_value
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_invalid_filter_attr
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_invalid_filter_attr
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_poster_attribute
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_poster_attribute
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_attributes_callable
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_attributes_wildcard
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_attributes_wildcard_callable
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_attributes_tag_callable
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_attributes_tag_callable
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_attributes_tag_list
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_attributes_list
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_uri_value_allowed_protocols[<a href="javascript:alert('XSS')">xss</a>-kwargs0-<a>xss</a>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_uri_value_allowed_protocols[<a href="file:///tmp/foo">foo</a>-kwargs1-<a>foo</a>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_uri_value_allowed_protocols[<a href="myprotocol://more_text">allowed href</a>-kwargs2-<a href="myprotocol://more_text">allowed href</a>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_uri_value_allowed_protocols[<a href="http://example.com">invalid href</a>-kwargs3-<a>invalid href</a>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_uri_value_allowed_protocols[<a href="#example.com">foo</a>-kwargs4-<a href="#example.com">foo</a>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_uri_value_allowed_protocols[<a href="example.com">valid</a>-kwargs5-<a href="example.com">valid</a>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_uri_value_allowed_protocols[<a href="example.com:8000">valid</a>-kwargs6-<a href="example.com:8000">valid</a>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_uri_value_allowed_protocols[<a href="localhost">valid</a>-kwargs7-<a href="localhost">valid</a>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_uri_value_allowed_protocols[<a href="localhost:8000">valid</a>-kwargs8-<a href="localhost:8000">valid</a>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_uri_value_allowed_protocols[<a href="192.168.100.100">valid</a>-kwargs9-<a href="192.168.100.100">valid</a>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_uri_value_allowed_protocols[<a href="192.168.100.100:8000">valid</a>-kwargs10-<a href="192.168.100.100:8000">valid</a>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_uri_value_allowed_protocols[<a href="example.com">foo</a>-kwargs11-<a>foo</a>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_uri_value_allowed_protocols[<a href="example.com:8000">foo</a>-kwargs12-<a>foo</a>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_uri_value_allowed_protocols[<a href="localhost">foo</a>-kwargs13-<a>foo</a>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_uri_value_allowed_protocols[<a href="localhost:8000">foo</a>-kwargs14-<a>foo</a>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_uri_value_allowed_protocols[<a href="192.168.100.100">foo</a>-kwargs15-<a>foo</a>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_uri_value_allowed_protocols[<a href="192.168.100.100:8000">foo</a>-kwargs16-<a>foo</a>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_uri_value_allowed_protocols[<a href="javas	cript:alert(1)">alert</a>-kwargs17-<a>alert</a>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_uri_value_allowed_protocols[<a href="javascript:alert(1)">alert</a>-kwargs18-<a>alert</a>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_uri_value_allowed_protocols[<a href="http://example.com/?foo bar">foo</a>-kwargs19-<a href="http://example.com/?foo bar">foo</a>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_svg_attr_val_allows_ref
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_svg_attr_val_allows_ref
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_svg_allow_local_href[<svg><pattern id="patt1" href="#patt2"></pattern></svg>-<svg><pattern href="#patt2" id="patt1"></pattern></svg>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_svg_allow_local_href[<svg><pattern id="patt1" xlink:href="#patt2"></pattern></svg>-<svg><pattern id="patt1" href="#patt2"></pattern></svg>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_svg_allow_local_href_nonlocal[<svg><pattern id="patt1" href="https://example.com/patt"></pattern></svg>-<svg><pattern id="patt1"></pattern></svg>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_svg_allow_local_href_nonlocal[<svg><pattern id="patt1" xlink:href="https://example.com/patt"></pattern></svg>-<svg><pattern id="patt1"></pattern></svg>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_invisible_characters[1\x0723-1?23]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_invisible_characters[1\x0823-1?23]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_invisible_characters[1\x0b23-1?23]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_invisible_characters[1\x0c23-1?23]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_invisible_characters[import y\x08ose\x08m\x08i\x08t\x08e\x08-import y?ose?m?i?t?e?]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_nonexistent_namespace
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_noscript_rawtag_[title-<noscript><title></noscript><img src=x onerror=alert(1) />-<noscript><title></noscript><img src=x onerror=alert(1) />]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_noscript_rawtag_[textarea-<noscript><textarea></noscript><img src=x onerror=alert(1) />-<noscript><textarea></noscript><img src=x onerror=alert(1) />]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_noscript_rawtag_[script-<noscript><script></noscript><img src=x onerror=alert(1) />-<noscript><script></noscript><img src=x onerror=alert(1) />]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_noscript_rawtag_[style-<noscript><style></noscript><img src=x onerror=alert(1) />-<noscript><style></noscript><img src=x onerror=alert(1) />]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_noscript_rawtag_[noembed-<noscript><noembed></noscript><img src=x onerror=alert(1) />-<noscript><noembed></noscript><img src=x onerror=alert(1) />]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_noscript_rawtag_[noframes-<noscript><noframes></noscript><img src=x onerror=alert(1) />-<noscript><noframes></noscript><img src=x onerror=alert(1) />]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_noscript_rawtag_[iframe-<noscript><iframe></noscript><img src=x onerror=alert(1) />-<noscript><iframe></noscript><img src=x onerror=alert(1) />]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_noscript_rawtag_[xmp-<noscript><xmp></noscript><img src=x onerror=alert(1) />-<noscript><xmp></noscript><img src=x onerror=alert(1) />]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_namespace_rc_data_element_strip_false[math-iframe-<math><iframe><img src=x onerror=alert(1)>-<math><iframe><img src=x onerror=alert(1)></iframe></math>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_namespace_rc_data_element_strip_false[math-script-<math><script><img src=x onerror=alert(1)>-<math><script><img src=x onerror=alert(1)></script></math>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_namespace_rc_data_element_strip_false[math-noembed-<math><noembed><img src=x onerror=alert(1)>-<math><noembed><img src=x onerror=alert(1)></noembed></math>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_namespace_rc_data_element_strip_false[math-style-<math><style><img src=x onerror=alert(1)>-<math><style><img src=x onerror=alert(1)></style></math>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_namespace_rc_data_element_strip_false[math-noframes-<math><noframes><img src=x onerror=alert(1)>-<math><noframes><img src=x onerror=alert(1)></noframes></math>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_namespace_rc_data_element_strip_false[math-noscript-<math><noscript><img src=x onerror=alert(1)>-<math><noscript><img src=x onerror=alert(1)></noscript></math>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_namespace_rc_data_element_strip_false[math-xmp-<math><xmp><img src=x onerror=alert(1)>-<math><xmp><img src=x onerror=alert(1)></xmp></math>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_namespace_rc_data_element_strip_false[svg-iframe-<svg><iframe><img src=x onerror=alert(1)>-<svg><iframe><img src=x onerror=alert(1)></iframe></svg>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_namespace_rc_data_element_strip_false[svg-script-<svg><script><img src=x onerror=alert(1)>-<svg><script><img src=x onerror=alert(1)></script></svg>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_namespace_rc_data_element_strip_false[svg-noembed-<svg><noembed><img src=x onerror=alert(1)>-<svg><noembed><img src=x onerror=alert(1)></noembed></svg>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_namespace_rc_data_element_strip_false[svg-style-<svg><style><img src=x onerror=alert(1)>-<svg><style><img src=x onerror=alert(1)></style></svg>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_namespace_rc_data_element_strip_false[svg-noframes-<svg><noframes><img src=x onerror=alert(1)>-<svg><noframes><img src=x onerror=alert(1)></noframes></svg>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_namespace_rc_data_element_strip_false[svg-noscript-<svg><noscript><img src=x onerror=alert(1)>-<svg><noscript><img src=x onerror=alert(1)></noscript></svg>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_namespace_rc_data_element_strip_false[svg-xmp-<svg><xmp><img src=x onerror=alert(1)>-<svg><xmp><img src=x onerror=alert(1)></xmp></svg>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_regressions[1.test]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_regressions[2.test]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_regressions[3.test]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_regressions[4.test]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_regressions[5.test]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_regressions[6.test]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_regressions[7.test]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_regressions[8.test]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_regressions[9.test]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_regressions[10.test]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_regressions[11.test]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_regressions[12.test]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_regressions[13.test]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_regressions[14.test]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_regressions[15.test]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_regressions[16.test]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_regressions[17.test]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_regressions[18.test]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_regressions[19.test]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::test_regressions[20.test]
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::TestCleaner::test_basics
> .pybuild/cpython3_3.8_bleach/build/tests/test_clean.py::TestCleaner::test_filters
> .pybuild/cpython3_3.8_bleach/build/tests/test_css.py::test_allowed_css[<p style="font-family: Arial; color: red; float: left; background-color: red;">bar</p>-styles0-<p style="color: red;">bar</p>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_css.py::test_allowed_css[<p style="border: 1px solid blue; color: red; float: left;">bar</p>-styles1-<p style="color: red;">bar</p>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_css.py::test_allowed_css[<p style="border: 1px solid blue; color: red; float: left;">bar</p>-styles2-<p style="color: red; float: left;">bar</p>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_css.py::test_allowed_css[<p style="color: red; float: left; padding: 1em;">bar</p>-styles3-<p style="color: red; float: left;">bar</p>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_css.py::test_allowed_css[<p style="color: red; float: left; padding: 1em;">bar</p>-styles4-<p style="color: red;">bar</p>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_css.py::test_allowed_css[<p style="cursor: -moz-grab;">bar</p>-styles5-<p style="cursor: -moz-grab;">bar</p>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_css.py::test_allowed_css[<p style="color: hsl(30,100%,50%);">bar</p>-styles6-<p style="color: hsl(30,100%,50%);">bar</p>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_css.py::test_allowed_css[<p style="color: rgba(255,0,0,0.4);">bar</p>-styles7-<p style="color: rgba(255,0,0,0.4);">bar</p>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_css.py::test_allowed_css[<p style="text-overflow: ',' ellipsis;">bar</p>-styles8-<p style="text-overflow: ',' ellipsis;">bar</p>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_css.py::test_allowed_css[<p style='text-overflow: "," ellipsis;'>bar</p>-styles9-<p style='text-overflow: "," ellipsis;'>bar</p>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_css.py::test_allowed_css[<p style='font-family: "Arial";'>bar</p>-styles10-<p style='font-family: "Arial";'>bar</p>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_css.py::test_allowed_css[<p style="font-family: \u30e1\u30a4\u30ea\u30aa; color: blue;">bar</p>-styles11-<p style="color: blue;">bar</p>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_css.py::test_valid_css
> .pybuild/cpython3_3.8_bleach/build/tests/test_css.py::test_valid_css
> .pybuild/cpython3_3.8_bleach/build/tests/test_css.py::test_urls[<p style="background: #00D;">foo</p>-<p style="background: #00D;">foo</p>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_css.py::test_urls[<p style="background: url(topbanner.png) #00D;">foo</p>-<p style="background: #00D;">foo</p>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_css.py::test_urls[<p style="background: url('topbanner.png') #00D;">foo</p>-<p style="background: #00D;">foo</p>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_css.py::test_urls[<p style='background: url("topbanner.png") #00D;'>foo</p>-<p style="background: #00D;">foo</p>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_css.py::test_urls[<p style="background: url( 'topbanner.png') #00D;">foo</p>-<p style="background: #00D;">foo</p>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_css.py::test_urls[<p style="background: url('topbanner.png' ) #00D;">foo</p>-<p style="background: #00D;">foo</p>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_css.py::test_urls[<p style="background: url( 'topbanner.png' ) #00D;">foo</p>-<p style="background: #00D;">foo</p>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_css.py::test_urls[<p style="background: url ( 'topbanner.png' ) #00D;">foo</p>-<p style="background: #00D;">foo</p>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_css.py::test_urls[<p style="background: url	('topbanner.png') #00D;">foo</p>-<p style="background: #00D;">foo</p>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_css.py::test_style_hang
> .pybuild/cpython3_3.8_bleach/build/tests/test_css.py::test_css_parsing_with_entities[<p style="font-family: Droid Sans, serif; white-space: pre-wrap;">text</p>-styles0-<p style="font-family: Droid Sans, serif; white-space: pre-wrap;">text</p>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_css.py::test_css_parsing_with_entities[<p style="font-family: "Droid Sans", serif; white-space: pre-wrap;">text</p>-styles1-<p style='font-family: "Droid Sans", serif; white-space: pre-wrap;'>text</p>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_css.py::test_css_parsing_gauntlet_regex_backtracking["]
> .pybuild/cpython3_3.8_bleach/build/tests/test_css.py::test_css_parsing_gauntlet_regex_backtracking[-]
> .pybuild/cpython3_3.8_bleach/build/tests/test_linkify.py::test_linkify_filter[abc-abc]
> .pybuild/cpython3_3.8_bleach/build/tests/test_linkify.py::test_linkify_filter[example.com-<a href="http://example.com">example.com</a>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_linkify.py::test_linkify_filter[http://example.com?b=1&c=2-<a href="http://example.com?b=1&c=2">http://example.com?b=1&c=2</a>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_linkify.py::test_linkify_filter[http://example.com?b=1&c=2-<a href="http://example.com?b=1&c=2">http://example.com?b=1&c=2</a>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_linkify.py::test_linkify_filter[link: https://example.com/watch#anchor-link: <a href="https://example.com/watch#anchor">https://example.com/watch#anchor</a>]
> .pybuild/cpython3_3.8_bleach/build/tests/test_unicode.py::test_japanese_safe_simple
> .pybuild/cpython3_3.8_bleach/build/tests/test_unicode.py::test_japanese_strip
> .pybuild/cpython3_3.8_bleach/build/tests/test_unicode.py::test_japanese_strip
> .pybuild/cpython3_3.8_bleach/build/tests/test_unicode.py::test_russian_simple
> .pybuild/cpython3_3.8_bleach/build/tests/test_unicode.py::test_mixed
> /usr/lib/python3/dist-packages/html5lib/filters/sanitizer.py:771: DeprecationWarning: html5lib's sanitizer is deprecated; see https://github.com/html5lib/html5lib-python/issues/443 and please let us know if Bleach is unsuitable for your needs
> warnings.warn(_deprecation_msg, DeprecationWarning)
>
> -- Docs: https://docs.pytest.org/en/latest/warnings.html
> ======== 3 failed, 332 passed, 3 xfailed, 278 warnings in 1.10 seconds =========
> E: pybuild pybuild:352: test: plugin distutils failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_bleach/build; python3.8 -m pytest tests
> dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.8 returned exit code 13
The full build log is available from:
http://qa-logs.debian.net/2020/08/02/python-bleach_3.1.5-2_unstable.log
A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!
About the archive rebuild: The rebuild was done on EC2 VM instances from
Amazon Web Services, using a clean, minimal and up-to-date chroot. Every
failed build was retried once to eliminate random failures.
More information about the Python-modules-team
mailing list