Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 648466 Details for
Bug 731828
dev-python/bleach fails tests
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
build.log
build.log (text/plain), 84.98 KB, created by
Agostino Sarubbo
on 2020-07-09 08:25:59 UTC
(
hide
)
Description:
build.log
Filename:
MIME Type:
Creator:
Agostino Sarubbo
Created:
2020-07-09 08:25:59 UTC
Size:
84.98 KB
patch
obsolete
> * Package: dev-python/bleach-3.1.5 > * Repository: gentoo > * Maintainer: python@gentoo.org > * USE: abi_x86_64 amd64 elibc_glibc kernel_linux python_targets_python2_7 python_targets_python3_7 test userland_GNU > * FEATURES: network-sandbox preserve-libs sandbox test userpriv usersandbox > > >@@@@@ PLEASE PAY ATTENTION HERE!!! @@@@@ >This information may help you to understand if this is a duplicate or if this bug exists after you pushed a fix; >This ebuild was merged at the following commit: >https://github.com/gentoo/gentoo/commit/a9559320b0e00dae66353dd4753f82ff4ca4949d >@@@@@ END @@@@@ > >>>> Unpacking source... >>>> Unpacking bleach-3.1.5.tar.gz to /var/tmp/portage/dev-python/bleach-3.1.5/work >>>> Source unpacked in /var/tmp/portage/dev-python/bleach-3.1.5/work >>>> Preparing source in /var/tmp/portage/dev-python/bleach-3.1.5/work/bleach-3.1.5 ... > * Applying bleach-3.1.5-py39.patch ... > [ ok ] >>>> Source prepared. >>>> Configuring source in /var/tmp/portage/dev-python/bleach-3.1.5/work/bleach-3.1.5 ... >>>> Source configured. >>>> Compiling source in /var/tmp/portage/dev-python/bleach-3.1.5/work/bleach-3.1.5 ... > * python2_7: running distutils-r1_run_phase distutils-r1_python_compile >python2.7 setup.py build >running build >running build_py >creating /var/tmp/portage/dev-python/bleach-3.1.5/work/bleach-3.1.5-python2_7/lib/bleach >copying bleach/linkifier.py -> /var/tmp/portage/dev-python/bleach-3.1.5/work/bleach-3.1.5-python2_7/lib/bleach >copying bleach/html5lib_shim.py -> /var/tmp/portage/dev-python/bleach-3.1.5/work/bleach-3.1.5-python2_7/lib/bleach >copying bleach/utils.py -> /var/tmp/portage/dev-python/bleach-3.1.5/work/bleach-3.1.5-python2_7/lib/bleach >copying bleach/callbacks.py -> /var/tmp/portage/dev-python/bleach-3.1.5/work/bleach-3.1.5-python2_7/lib/bleach >copying bleach/__init__.py -> /var/tmp/portage/dev-python/bleach-3.1.5/work/bleach-3.1.5-python2_7/lib/bleach >copying bleach/sanitizer.py -> /var/tmp/portage/dev-python/bleach-3.1.5/work/bleach-3.1.5-python2_7/lib/bleach >running egg_info >writing requirements to bleach.egg-info/requires.txt >writing bleach.egg-info/PKG-INFO >writing top-level names to bleach.egg-info/top_level.txt >writing dependency_links to bleach.egg-info/dependency_links.txt >reading manifest file 'bleach.egg-info/SOURCES.txt' >reading manifest template 'MANIFEST.in' >warning: no files found matching '*.json' under directory 'bleach' >warning: no files found matching '*.rst' under directory 'bleach' >warning: no files found matching '*.sh' under directory 'bleach' >warning: no files found matching '*.txt' under directory 'bleach' >warning: no files found matching 'INSTALLER' under directory 'bleach' >warning: no files found matching 'METADATA' under directory 'bleach' >warning: no files found matching 'RECORD' under directory 'bleach' >warning: no files found matching 'WHEEL' under directory 'bleach' >writing manifest file 'bleach.egg-info/SOURCES.txt' >warning: build_py: byte-compiling is disabled, skipping. > > * python3_7: running distutils-r1_run_phase distutils-r1_python_compile >python3.7 setup.py build -j 4 >running build >running build_py >creating /var/tmp/portage/dev-python/bleach-3.1.5/work/bleach-3.1.5-python3_7/lib/bleach >copying bleach/linkifier.py -> /var/tmp/portage/dev-python/bleach-3.1.5/work/bleach-3.1.5-python3_7/lib/bleach >copying bleach/html5lib_shim.py -> /var/tmp/portage/dev-python/bleach-3.1.5/work/bleach-3.1.5-python3_7/lib/bleach >copying bleach/utils.py -> /var/tmp/portage/dev-python/bleach-3.1.5/work/bleach-3.1.5-python3_7/lib/bleach >copying bleach/callbacks.py -> /var/tmp/portage/dev-python/bleach-3.1.5/work/bleach-3.1.5-python3_7/lib/bleach >copying bleach/__init__.py -> /var/tmp/portage/dev-python/bleach-3.1.5/work/bleach-3.1.5-python3_7/lib/bleach >copying bleach/sanitizer.py -> /var/tmp/portage/dev-python/bleach-3.1.5/work/bleach-3.1.5-python3_7/lib/bleach >running 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 >reading manifest file 'bleach.egg-info/SOURCES.txt' >reading manifest template 'MANIFEST.in' >warning: no files found matching '*.json' under directory 'bleach' >warning: no files found matching '*.rst' under directory 'bleach' >warning: no files found matching '*.sh' under directory 'bleach' >warning: no files found matching '*.txt' under directory 'bleach' >warning: no files found matching 'INSTALLER' under directory 'bleach' >warning: no files found matching 'METADATA' under directory 'bleach' >warning: no files found matching 'RECORD' under directory 'bleach' >warning: no files found matching 'WHEEL' under directory 'bleach' >writing manifest file 'bleach.egg-info/SOURCES.txt' >warning: build_py: byte-compiling is disabled, skipping. > >>>> Source compiled. >>>> Test phase: dev-python/bleach-3.1.5 > * python2_7: running distutils-r1_run_phase python_test >============================= test session starts ============================== >platform linux2 -- Python 2.7.18, pytest-4.6.11, py-1.8.0, pluggy-0.13.1 -- /usr/bin/python2.7 >cachedir: .pytest_cache >rootdir: /var/tmp/portage/dev-python/bleach-3.1.5/work/bleach-3.1.5 >collecting ... collected 335 items > >tests/test_callbacks.py::TestNofollowCallback::test_blank PASSED [ 0%] >tests/test_callbacks.py::TestNofollowCallback::test_no_href PASSED [ 0%] >tests/test_callbacks.py::TestNofollowCallback::test_basic PASSED [ 0%] >tests/test_callbacks.py::TestNofollowCallback::test_mailto PASSED [ 1%] >tests/test_callbacks.py::TestNofollowCallback::test_has_nofollow_already PASSED [ 1%] >tests/test_callbacks.py::TestNofollowCallback::test_other_rel PASSED [ 1%] >tests/test_callbacks.py::TestTargetBlankCallback::test_empty PASSED [ 2%] >tests/test_callbacks.py::TestTargetBlankCallback::test_mailto PASSED [ 2%] >tests/test_callbacks.py::TestTargetBlankCallback::test_add_target PASSED [ 2%] >tests/test_callbacks.py::TestTargetBlankCallback::test_stomp_target PASSED [ 2%] >tests/test_clean.py::test_clean_idempotent PASSED [ 3%] >tests/test_clean.py::test_only_text_is_cleaned PASSED [ 3%] >tests/test_clean.py::test_empty PASSED [ 3%] >tests/test_clean.py::test_content_has_no_html PASSED [ 4%] >tests/test_clean.py::test_content_has_allowed_html[an <strong>allowed</strong> tag-an <strong>allowed</strong> tag] PASSED [ 4%] >tests/test_clean.py::test_content_has_allowed_html[another <em>good</em> tag-another <em>good</em> tag] PASSED [ 4%] >tests/test_clean.py::test_html_is_lowercased PASSED [ 5%] >tests/test_clean.py::test_invalid_uri_does_not_raise_error PASSED [ 5%] >tests/test_clean.py::test_comments[<!-- this is a comment -->-True-] PASSED [ 5%] >tests/test_clean.py::test_comments[<!-- open comment-True-] PASSED [ 5%] >tests/test_clean.py::test_comments[<!--open comment-True-] PASSED [ 6%] >tests/test_clean.py::test_comments[<!-- open comment-False-<!-- open comment-->] PASSED [ 6%] >tests/test_clean.py::test_comments[<!--open comment-False-<!--open comment-->] PASSED [ 6%] >tests/test_clean.py::test_comments[<!-- comment -->text-True-text] PASSED [ 7%] >tests/test_clean.py::test_comments[<!--comment-->text-True-text] PASSED [ 7%] >tests/test_clean.py::test_comments[<!-- comment -->text-False-<!-- comment -->text] PASSED [ 7%] >tests/test_clean.py::test_comments[<!--comment-->text-False-<!--comment-->text] PASSED [ 8%] >tests/test_clean.py::test_comments[text<!-- comment -->-True-text] PASSED [ 8%] >tests/test_clean.py::test_comments[text<!--comment-->-True-text] PASSED [ 8%] >tests/test_clean.py::test_comments[text<!-- comment -->-False-text<!-- comment -->] PASSED [ 8%] >tests/test_clean.py::test_comments[text<!--comment-->-False-text<!--comment-->] PASSED [ 9%] >tests/test_clean.py::test_invalid_char_in_tag PASSED [ 9%] >tests/test_clean.py::test_unclosed_tag PASSED [ 9%] >tests/test_clean.py::test_nested_script_tag PASSED [ 10%] >tests/test_clean.py::test_bare_entities_get_escaped_correctly[an & entity-an & entity] PASSED [ 10%] >tests/test_clean.py::test_bare_entities_get_escaped_correctly[an < entity-an < entity] PASSED [ 10%] >tests/test_clean.py::test_bare_entities_get_escaped_correctly[tag < <em>and</em> entity-tag < <em>and</em> entity] PASSED [ 11%] >tests/test_clean.py::test_character_entities_handling[&-&] PASSED [ 11%] >tests/test_clean.py::test_character_entities_handling[ - ] PASSED [ 11%] >tests/test_clean.py::test_character_entities_handling[ test string - test string ] PASSED [ 11%] >tests/test_clean.py::test_character_entities_handling[<em>strong</em>-<em>strong</em>] PASSED [ 12%] >tests/test_clean.py::test_character_entities_handling[&is cool-&is cool] PASSED [ 12%] >tests/test_clean.py::test_character_entities_handling[cool &-cool &] PASSED [ 12%] >tests/test_clean.py::test_character_entities_handling[&& is cool-&& is cool] PASSED [ 13%] >tests/test_clean.py::test_character_entities_handling[& is cool &&-& is cool &&] PASSED [ 13%] >tests/test_clean.py::test_character_entities_handling[this & that-this &amp that] PASSED [ 13%] >tests/test_clean.py::test_character_entities_handling[http://example.com?active=true¤t=true-http://example.com?active=true&current=true] PASSED [ 14%] >tests/test_clean.py::test_character_entities_handling[<a href="?art&copy">foo</a>-<a href="?art&copy">foo</a>] PASSED [ 14%] >tests/test_clean.py::test_character_entities_handling[<a href="?this=>that">foo</a>-<a href="?this=>that">foo</a>] PASSED [ 14%] >tests/test_clean.py::test_character_entities_handling[<a href="http://example.com/&xx;">foo</a>-<a href="http://example.com/&xx;">foo</a>] PASSED [ 14%] >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&current=true">foo</a>] PASSED [ 15%] >tests/test_clean.py::test_character_entities_handling[&xx;-&xx;] PASSED [ 15%] >tests/test_clean.py::test_character_entities_handling['-'] PASSED [ 15%] >tests/test_clean.py::test_character_entities_handling["-"] PASSED [ 16%] >tests/test_clean.py::test_character_entities_handling[{-{] PASSED [ 16%] >tests/test_clean.py::test_character_entities_handling[{-{] PASSED [ 16%] >tests/test_clean.py::test_character_entities_handling[{-{] PASSED [ 17%] >tests/test_clean.py::test_character_entities_handling[&#-&#] PASSED [ 17%] >tests/test_clean.py::test_character_entities_handling[&#<-&#<] PASSED [ 17%] >tests/test_clean.py::test_character_entities_handling['"-'"] PASSED [ 17%] >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] PASSED [ 18%] >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] PASSED [ 18%] >tests/test_clean.py::test_stripping_tags[<p><a href="http://example.com/">link text</a></p>-kwargs2-<p>link text</p>] PASSED [ 18%] >tests/test_clean.py::test_stripping_tags[<p><span>multiply <span>nested <span>text</span></span></span></p>-kwargs3-<p>multiply nested text</p>] PASSED [ 19%] >tests/test_clean.py::test_stripping_tags[<ul><li><script></li></ul>-kwargs4-<ul><li></li></ul>] PASSED [ 19%] >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>] PASSED [ 19%] >tests/test_clean.py::test_stripping_tags[<isindex>-kwargs6-] PASSED [ 20%] >tests/test_clean.py::test_stripping_tags[Yeah right <sarcasm/>-kwargs7-Yeah right ] PASSED [ 20%] >tests/test_clean.py::test_stripping_tags[<sarcasm>-kwargs8-] PASSED [ 20%] >tests/test_clean.py::test_stripping_tags[</sarcasm>-kwargs9-] PASSED [ 20%] >tests/test_clean.py::test_stripping_tags[</ sarcasm>-kwargs10-</ sarcasm>] PASSED [ 21%] >tests/test_clean.py::test_stripping_tags[</ sarcasm >-kwargs11-</ sarcasm >] PASSED [ 21%] >tests/test_clean.py::test_stripping_tags[Foo <bar@example.com>-kwargs12-Foo ] PASSED [ 21%] >tests/test_clean.py::test_stripping_tags[Favorite movie: <name of movie>-kwargs13-Favorite movie: ] PASSED [ 22%] >tests/test_clean.py::test_stripping_tags[</3-kwargs14-</3] PASSED [ 22%] >tests/test_clean.py::test_escaping_tags[<img src="javascript:alert('XSS');">-<img src="javascript:alert('XSS');">] PASSED [ 22%] >tests/test_clean.py::test_escaping_tags[<script>safe()</script>-<script>safe()</script>] PASSED [ 22%] >tests/test_clean.py::test_escaping_tags[<style>body{}</style>-<style>body{}</style>] PASSED [ 23%] >tests/test_clean.py::test_escaping_tags[<ul><li><script></li></ul>-<ul><li><script></li></ul>] PASSED [ 23%] >tests/test_clean.py::test_escaping_tags[<isindex>-<isindex>] PASSED [ 23%] >tests/test_clean.py::test_escaping_tags[<sarcasm/>-<sarcasm/>] PASSED [ 24%] >tests/test_clean.py::test_escaping_tags[<sarcasm>-<sarcasm>] PASSED [ 24%] >tests/test_clean.py::test_escaping_tags[</sarcasm>-</sarcasm>] PASSED [ 24%] >tests/test_clean.py::test_escaping_tags[</ sarcasm>-</ sarcasm>] PASSED [ 25%] >tests/test_clean.py::test_escaping_tags[</ sarcasm >-</ sarcasm >] PASSED [ 25%] >tests/test_clean.py::test_escaping_tags[</3-</3] PASSED [ 25%] >tests/test_clean.py::test_escaping_tags[<bar@example.com>-<bar@example.com>] PASSED [ 25%] >tests/test_clean.py::test_escaping_tags[Favorite movie: <name of movie>-Favorite movie: <name of movie>] PASSED [ 26%] >tests/test_clean.py::test_stripping_tags_is_safe[<scri<script>pt>alert(1)</scr</script>ipt>-pt>alert(1)ipt>] PASSED [ 26%] >tests/test_clean.py::test_stripping_tags_is_safe[<scri<scri<script>pt>pt>alert(1)</script>-pt>pt>alert(1)] PASSED [ 26%] >tests/test_clean.py::test_allowed_styles PASSED [ 27%] >tests/test_clean.py::test_href_with_wrong_tag PASSED [ 27%] >tests/test_clean.py::test_disallowed_attr PASSED [ 27%] >tests/test_clean.py::test_unquoted_attr_values_are_quoted PASSED [ 28%] >tests/test_clean.py::test_unquoted_event_handler_attr_value PASSED [ 28%] >tests/test_clean.py::test_invalid_filter_attr PASSED [ 28%] >tests/test_clean.py::test_poster_attribute PASSED [ 28%] >tests/test_clean.py::test_attributes_callable PASSED [ 29%] >tests/test_clean.py::test_attributes_wildcard PASSED [ 29%] >tests/test_clean.py::test_attributes_wildcard_callable PASSED [ 29%] >tests/test_clean.py::test_attributes_tag_callable PASSED [ 30%] >tests/test_clean.py::test_attributes_tag_list PASSED [ 30%] >tests/test_clean.py::test_attributes_list PASSED [ 30%] >tests/test_clean.py::test_uri_value_allowed_protocols[<a href="javascript:alert('XSS')">xss</a>-kwargs0-<a>xss</a>] PASSED [ 31%] >tests/test_clean.py::test_uri_value_allowed_protocols[<a href="file:///tmp/foo">foo</a>-kwargs1-<a>foo</a>] PASSED [ 31%] >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>] PASSED [ 31%] >tests/test_clean.py::test_uri_value_allowed_protocols[<a href="http://example.com">invalid href</a>-kwargs3-<a>invalid href</a>] PASSED [ 31%] >tests/test_clean.py::test_uri_value_allowed_protocols[<a href="#example.com">foo</a>-kwargs4-<a href="#example.com">foo</a>] PASSED [ 32%] >tests/test_clean.py::test_uri_value_allowed_protocols[<a href="example.com">valid</a>-kwargs5-<a href="example.com">valid</a>] PASSED [ 32%] >tests/test_clean.py::test_uri_value_allowed_protocols[<a href="localhost">valid</a>-kwargs6-<a href="localhost">valid</a>] PASSED [ 32%] >tests/test_clean.py::test_uri_value_allowed_protocols[<a href="192.168.100.100">valid</a>-kwargs7-<a href="192.168.100.100">valid</a>] PASSED [ 33%] >tests/test_clean.py::test_uri_value_allowed_protocols[<a href="example.com">foo</a>-kwargs8-<a>foo</a>] PASSED [ 33%] >tests/test_clean.py::test_uri_value_allowed_protocols[<a href="example.com:8000">foo</a>-kwargs9-<a>foo</a>] PASSED [ 33%] >tests/test_clean.py::test_uri_value_allowed_protocols[<a href="localhost">foo</a>-kwargs10-<a>foo</a>] PASSED [ 34%] >tests/test_clean.py::test_uri_value_allowed_protocols[<a href="localhost:8000">foo</a>-kwargs11-<a>foo</a>] PASSED [ 34%] >tests/test_clean.py::test_uri_value_allowed_protocols[<a href="192.168.100.100">foo</a>-kwargs12-<a>foo</a>] PASSED [ 34%] >tests/test_clean.py::test_uri_value_allowed_protocols[<a href="192.168.100.100:8000">foo</a>-kwargs13-<a>foo</a>] PASSED [ 34%] >tests/test_clean.py::test_uri_value_allowed_protocols[<a href="javas	cript:alert(1)">alert</a>-kwargs14-<a>alert</a>] PASSED [ 35%] >tests/test_clean.py::test_uri_value_allowed_protocols[<a href="javascript:alert(1)">alert</a>-kwargs15-<a>alert</a>] PASSED [ 35%] >tests/test_clean.py::test_uri_value_allowed_protocols[<a href="http://example.com/?foo bar">foo</a>-kwargs16-<a href="http://example.com/?foo bar">foo</a>] PASSED [ 35%] >tests/test_clean.py::test_svg_attr_val_allows_ref PASSED [ 36%] >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>] PASSED [ 36%] >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>] PASSED [ 36%] >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>] PASSED [ 37%] >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>] PASSED [ 37%] >tests/test_clean.py::test_invisible_characters[1\x0723-1?23] PASSED [ 37%] >tests/test_clean.py::test_invisible_characters[1\x0823-1?23] PASSED [ 37%] >tests/test_clean.py::test_invisible_characters[1\x0b23-1?23] PASSED [ 38%] >tests/test_clean.py::test_invisible_characters[1\x0c23-1?23] PASSED [ 38%] >tests/test_clean.py::test_invisible_characters[import y\x08ose\x08m\x08i\x08t\x08e\x08-import y?ose?m?i?t?e?] PASSED [ 38%] >tests/test_clean.py::test_nonexistent_namespace PASSED [ 39%] >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) />] PASSED [ 39%] >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) />] PASSED [ 39%] >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) />] PASSED [ 40%] >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) />] PASSED [ 40%] >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) />] PASSED [ 40%] >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) />] PASSED [ 40%] >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) />] PASSED [ 41%] >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) />] PASSED [ 41%] >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>] PASSED [ 41%] >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>] PASSED [ 42%] >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>] PASSED [ 42%] >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>] PASSED [ 42%] >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>] PASSED [ 42%] >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>] PASSED [ 43%] >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>] PASSED [ 43%] >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>] PASSED [ 43%] >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>] PASSED [ 44%] >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>] PASSED [ 44%] >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>] PASSED [ 44%] >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>] PASSED [ 45%] >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>] PASSED [ 45%] >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>] PASSED [ 45%] >tests/test_clean.py::test_regressions[1.test] PASSED [ 45%] >tests/test_clean.py::test_regressions[2.test] PASSED [ 46%] >tests/test_clean.py::test_regressions[3.test] PASSED [ 46%] >tests/test_clean.py::test_regressions[4.test] PASSED [ 46%] >tests/test_clean.py::test_regressions[5.test] PASSED [ 47%] >tests/test_clean.py::test_regressions[6.test] PASSED [ 47%] >tests/test_clean.py::test_regressions[7.test] PASSED [ 47%] >tests/test_clean.py::test_regressions[8.test] PASSED [ 48%] >tests/test_clean.py::test_regressions[9.test] PASSED [ 48%] >tests/test_clean.py::test_regressions[10.test] PASSED [ 48%] >tests/test_clean.py::test_regressions[11.test] PASSED [ 48%] >tests/test_clean.py::test_regressions[12.test] PASSED [ 49%] >tests/test_clean.py::test_regressions[13.test] PASSED [ 49%] >tests/test_clean.py::test_regressions[14.test] PASSED [ 49%] >tests/test_clean.py::test_regressions[15.test] PASSED [ 50%] >tests/test_clean.py::test_regressions[16.test] PASSED [ 50%] >tests/test_clean.py::test_regressions[17.test] PASSED [ 50%] >tests/test_clean.py::test_regressions[18.test] PASSED [ 51%] >tests/test_clean.py::test_regressions[19.test] PASSED [ 51%] >tests/test_clean.py::test_regressions[20.test] PASSED [ 51%] >tests/test_clean.py::TestCleaner::test_basics PASSED [ 51%] >tests/test_clean.py::TestCleaner::test_filters PASSED [ 52%] >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>] PASSED [ 52%] >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>] PASSED [ 52%] >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>] PASSED [ 53%] >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>] PASSED [ 53%] >tests/test_css.py::test_allowed_css[<p style="color: red; float: left; padding: 1em;">bar</p>-styles4-<p style="color: red;">bar</p>] PASSED [ 53%] >tests/test_css.py::test_allowed_css[<p style="cursor: -moz-grab;">bar</p>-styles5-<p style="cursor: -moz-grab;">bar</p>] XFAIL [ 54%] >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>] PASSED [ 54%] >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>] PASSED [ 54%] >tests/test_css.py::test_allowed_css[<p style="text-overflow: ',' ellipsis;">bar</p>-styles8-<p style="text-overflow: ',' ellipsis;">bar</p>] XFAIL [ 54%] >tests/test_css.py::test_allowed_css[<p style='text-overflow: "," ellipsis;'>bar</p>-styles9-<p style='text-overflow: "," ellipsis;'>bar</p>] XFAIL [ 55%] >tests/test_css.py::test_allowed_css[<p style='font-family: "Arial";'>bar</p>-styles10-<p style='font-family: "Arial";'>bar</p>] PASSED [ 55%] >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>] PASSED [ 55%] >tests/test_css.py::test_valid_css PASSED [ 56%] >tests/test_css.py::test_urls[<p style="background: #00D;">foo</p>-<p style="background: #00D;">foo</p>] PASSED [ 56%] >tests/test_css.py::test_urls[<p style="background: url(topbanner.png) #00D;">foo</p>-<p style="background: #00D;">foo</p>] PASSED [ 56%] >tests/test_css.py::test_urls[<p style="background: url('topbanner.png') #00D;">foo</p>-<p style="background: #00D;">foo</p>] PASSED [ 57%] >tests/test_css.py::test_urls[<p style='background: url("topbanner.png") #00D;'>foo</p>-<p style="background: #00D;">foo</p>] PASSED [ 57%] >tests/test_css.py::test_urls[<p style="background: url( 'topbanner.png') #00D;">foo</p>-<p style="background: #00D;">foo</p>] PASSED [ 57%] >tests/test_css.py::test_urls[<p style="background: url('topbanner.png' ) #00D;">foo</p>-<p style="background: #00D;">foo</p>] PASSED [ 57%] >tests/test_css.py::test_urls[<p style="background: url( 'topbanner.png' ) #00D;">foo</p>-<p style="background: #00D;">foo</p>] PASSED [ 58%] >tests/test_css.py::test_urls[<p style="background: url ( 'topbanner.png' ) #00D;">foo</p>-<p style="background: #00D;">foo</p>] PASSED [ 58%] >tests/test_css.py::test_urls[<p style="background: url	('topbanner.png') #00D;">foo</p>-<p style="background: #00D;">foo</p>] PASSED [ 58%] >tests/test_css.py::test_style_hang PASSED [ 59%] >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>] PASSED [ 59%] >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>] PASSED [ 59%] >tests/test_css.py::test_css_parsing_gauntlet_regex_backtracking["] PASSED [ 60%] >tests/test_css.py::test_css_parsing_gauntlet_regex_backtracking['] FAILED [ 60%] >tests/test_css.py::test_css_parsing_gauntlet_regex_backtracking[-] PASSED [ 60%] >tests/test_html5lib_shim.py::test_convert_entities[-] PASSED [ 60%] >tests/test_html5lib_shim.py::test_convert_entities[abc-abc] PASSED [ 61%] >tests/test_html5lib_shim.py::test_convert_entities[ -\xa0] PASSED [ 61%] >tests/test_html5lib_shim.py::test_convert_entities[ - ] PASSED [ 61%] >tests/test_html5lib_shim.py::test_convert_entities[ - ] PASSED [ 62%] >tests/test_html5lib_shim.py::test_convert_entities[&xx;-&xx;] PASSED [ 62%] >tests/test_html5lib_shim.py::test_convert_entities[this & that & that-this & that & that] PASSED [ 62%] >tests/test_html5lib_shim.py::test_serializer[-] PASSED [ 62%] >tests/test_html5lib_shim.py::test_serializer[text-text] PASSED [ 63%] >tests/test_html5lib_shim.py::test_serializer[&-&] PASSED [ 63%] >tests/test_html5lib_shim.py::test_serializer[a & b-a &amp; b] PASSED [ 63%] >tests/test_html5lib_shim.py::test_serializer[<a href="http://example.com?key=value&key2=value">tag</a>-<a href="http://example.com?key=value&key2=value">tag</a>] PASSED [ 64%] >tests/test_html5lib_shim.py::test_serializer[<a href="http://example.com?key=value&key2=value">tag</a>-<a href="http://example.com?key=value&key2=value">tag</a>] PASSED [ 64%] >tests/test_html5lib_shim.py::test_serializer[<a href="http://example.com?key=value¤t=value">tag</a>-<a href="http://example.com?key=value&current=value">tag</a>] PASSED [ 64%] >tests/test_html5lib_shim.py::test_bleach_html_parser[parser_args0-<meta charset="utf-8">-<meta charset="utf-8">] PASSED [ 65%] >tests/test_html5lib_shim.py::test_bleach_html_parser[parser_args1-text &>"-text &amp;&gt;&quot;] PASSED [ 65%] >tests/test_html5lib_shim.py::test_bleach_html_parser[parser_args2-text &>"-text &>"] PASSED [ 65%] >tests/test_html5lib_shim.py::test_bleach_html_parser[parser_args3-<a href="http://example.com"">-<a href="http://example.com"></a>] FAILED [ 65%] >tests/test_html5lib_shim.py::test_bleach_html_parser[parser_args4-<a href='http://example.com''>-<a href="http://example.com"></a>] FAILED [ 66%] >tests/test_html5lib_shim.py::test_bleach_html_parser[parser_args5-</ chars-<!-- chars-->] PASSED [ 66%] >tests/test_linkify.py::test_empty PASSED [ 66%] >tests/test_linkify.py::test_simple_link PASSED [ 67%] >tests/test_linkify.py::test_trailing_slash PASSED [ 67%] >tests/test_linkify.py::test_mangle_link PASSED [ 67%] >tests/test_linkify.py::test_mangle_text PASSED [ 68%] >tests/test_linkify.py::test_email_link[a james@example.com mailto-False-a james@example.com mailto] PASSED [ 68%] >tests/test_linkify.py::test_email_link[a james@example.com.au mailto-False-a james@example.com.au mailto] PASSED [ 68%] >tests/test_linkify.py::test_email_link[a james@example.com mailto-True-a <a href="mailto:james@example.com">james@example.com</a> mailto] PASSED [ 68%] >tests/test_linkify.py::test_email_link[aussie james@example.com.au mailto-True-aussie <a href="mailto:james@example.com.au">james@example.com.au</a> mailto] PASSED [ 69%] >tests/test_linkify.py::test_email_link[email to <a href="james@example.com">james@example.com</a>-True-email to <a href="james@example.com" rel="nofollow">james@example.com</a>] PASSED [ 69%] >tests/test_linkify.py::test_email_link[<br>jinkyun@example.com-True-<br><a href="mailto:jinkyun@example.com">jinkyun@example.com</a>] PASSED [ 69%] >tests/test_linkify.py::test_email_link[mailto james@example.com.au.-True-mailto <a href="mailto:james@example.com.au">james@example.com.au</a>.] PASSED [ 70%] >tests/test_linkify.py::test_email_link["\\\n"@opa.ru-True-"\\\n"@opa.ru] PASSED [ 70%] >tests/test_linkify.py::test_email_link_escaping["james"@example.com-<a href='mailto:"james"@example.com'>"james"@example.com</a>] PASSED [ 70%] >tests/test_linkify.py::test_email_link_escaping["j'ames"@example.com-<a href="mailto:"j'ames"@example.com">"j'ames"@example.com</a>] PASSED [ 71%] >tests/test_linkify.py::test_email_link_escaping["ja>mes"@example.com-<a href='mailto:"ja>mes"@example.com'>"ja>mes"@example.com</a>] PASSED [ 71%] >tests/test_linkify.py::test_prevent_links[callback0-a <a href="http://ex.mp">ex.mp</a> <a href="http://example.com">example</a>] PASSED [ 71%] >tests/test_linkify.py::test_prevent_links[callback1-a ex.mp <a href="http://example.com">example</a>] PASSED [ 71%] >tests/test_linkify.py::test_prevent_links[callback2-a ex.mp <a href="http://example.com">example</a>] PASSED [ 72%] >tests/test_linkify.py::test_prevent_links[callback3-a <a href="http://ex.mp">ex.mp</a> example] PASSED [ 72%] >tests/test_linkify.py::test_prevent_links[callback4-a <a href="http://ex.mp">ex.mp</a> example] PASSED [ 72%] >tests/test_linkify.py::test_prevent_links[callback5-a ex.mp example] PASSED [ 73%] >tests/test_linkify.py::test_set_attrs PASSED [ 73%] >tests/test_linkify.py::test_only_proto_links PASSED [ 73%] >tests/test_linkify.py::test_stop_email PASSED [ 74%] >tests/test_linkify.py::test_tlds[example.com-<a href="http://example.com" rel="nofollow">example.com</a>] PASSED [ 74%] >tests/test_linkify.py::test_tlds[example.co-<a href="http://example.co" rel="nofollow">example.co</a>] PASSED [ 74%] >tests/test_linkify.py::test_tlds[example.co.uk-<a href="http://example.co.uk" rel="nofollow">example.co.uk</a>] PASSED [ 74%] >tests/test_linkify.py::test_tlds[example.edu-<a href="http://example.edu" rel="nofollow">example.edu</a>] PASSED [ 75%] >tests/test_linkify.py::test_tlds[example.xxx-<a href="http://example.xxx" rel="nofollow">example.xxx</a>] PASSED [ 75%] >tests/test_linkify.py::test_tlds[bit.ly/fun-<a href="http://bit.ly/fun" rel="nofollow">bit.ly/fun</a>] PASSED [ 75%] >tests/test_linkify.py::test_tlds[example.yyy-example.yyy] PASSED [ 76%] >tests/test_linkify.py::test_tlds[brie-brie] PASSED [ 76%] >tests/test_linkify.py::test_escaping PASSED [ 76%] >tests/test_linkify.py::test_nofollow_off PASSED [ 77%] >tests/test_linkify.py::test_link_in_html PASSED [ 77%] >tests/test_linkify.py::test_links_https PASSED [ 77%] >tests/test_linkify.py::test_add_rel_nofollow PASSED [ 77%] >tests/test_linkify.py::test_url_with_path PASSED [ 78%] >tests/test_linkify.py::test_link_ftp PASSED [ 78%] >tests/test_linkify.py::test_link_query PASSED [ 78%] >tests/test_linkify.py::test_link_fragment PASSED [ 79%] >tests/test_linkify.py::test_link_entities PASSED [ 79%] >tests/test_linkify.py::test_escaped_html PASSED [ 79%] >tests/test_linkify.py::test_link_http_complete PASSED [ 80%] >tests/test_linkify.py::test_non_url PASSED [ 80%] >tests/test_linkify.py::test_javascript_url PASSED [ 80%] >tests/test_linkify.py::test_unsafe_url PASSED [ 80%] >tests/test_linkify.py::test_skip_tags PASSED [ 81%] >tests/test_linkify.py::test_libgl PASSED [ 81%] >tests/test_linkify.py::test_end_of_sentence[example.com-.] PASSED [ 81%] >tests/test_linkify.py::test_end_of_sentence[example.com-...] PASSED [ 82%] >tests/test_linkify.py::test_end_of_sentence[ex.com/foo-.] PASSED [ 82%] >tests/test_linkify.py::test_end_of_sentence[ex.com/foo-....] PASSED [ 82%] >tests/test_linkify.py::test_end_of_clause PASSED [ 82%] >tests/test_linkify.py::test_sarcasm PASSED [ 83%] >tests/test_linkify.py::test_wrapping_parentheses[(example.com)-expected_data0] PASSED [ 83%] >tests/test_linkify.py::test_wrapping_parentheses[(example.com/)-expected_data1] PASSED [ 83%] >tests/test_linkify.py::test_wrapping_parentheses[(example.com/foo)-expected_data2] PASSED [ 84%] >tests/test_linkify.py::test_wrapping_parentheses[(((example.com/))))-expected_data3] PASSED [ 84%] >tests/test_linkify.py::test_wrapping_parentheses[example.com/))-expected_data4] PASSED [ 84%] >tests/test_linkify.py::test_wrapping_parentheses[(foo http://example.com/)-expected_data5] PASSED [ 85%] >tests/test_linkify.py::test_wrapping_parentheses[(foo http://example.com)-expected_data6] PASSED [ 85%] >tests/test_linkify.py::test_wrapping_parentheses[http://en.wikipedia.org/wiki/Test_(assessment)-expected_data7] PASSED [ 85%] >tests/test_linkify.py::test_wrapping_parentheses[(http://en.wikipedia.org/wiki/Test_(assessment))-expected_data8] PASSED [ 85%] >tests/test_linkify.py::test_wrapping_parentheses[((http://en.wikipedia.org/wiki/Test_(assessment))-expected_data9] PASSED [ 86%] >tests/test_linkify.py::test_wrapping_parentheses[(http://en.wikipedia.org/wiki/Test_(assessment)))-expected_data10] PASSED [ 86%] >tests/test_linkify.py::test_wrapping_parentheses[(http://en.wikipedia.org/wiki/)Test_(assessment-expected_data11] PASSED [ 86%] >tests/test_linkify.py::test_wrapping_parentheses[hello (http://www.mu.de/blah.html) world-expected_data12] PASSED [ 87%] >tests/test_linkify.py::test_wrapping_parentheses[hello (http://www.mu.de/blah.html). world-expected_data13] PASSED [ 87%] >tests/test_linkify.py::test_parentheses_with_removing PASSED [ 87%] >tests/test_linkify.py::test_ports[http://foo.com:8000-expected_data0] PASSED [ 88%] >tests/test_linkify.py::test_ports[http://foo.com:8000/-expected_data1] PASSED [ 88%] >tests/test_linkify.py::test_ports[http://bar.com:xkcd-expected_data2] PASSED [ 88%] >tests/test_linkify.py::test_ports[http://foo.com:81/bar-expected_data3] PASSED [ 88%] >tests/test_linkify.py::test_ports[http://foo.com:-expected_data4] PASSED [ 89%] >tests/test_linkify.py::test_ports[http://foo.com:\u0663\u0669/-expected_data5] PASSED [ 89%] >tests/test_linkify.py::test_ports[http://foo.com:\U0001d7e0\U0001d7d8/-expected_data6] PASSED [ 89%] >tests/test_linkify.py::test_ignore_bad_protocols PASSED [ 90%] >tests/test_linkify.py::test_link_emails_and_urls PASSED [ 90%] >tests/test_linkify.py::test_links_case_insensitive PASSED [ 90%] >tests/test_linkify.py::test_elements_inside_links PASSED [ 91%] >tests/test_linkify.py::test_drop_link_tags PASSED [ 91%] >tests/test_linkify.py::test_naughty_unescaping[<br>-<br>] PASSED [ 91%] >tests/test_linkify.py::test_naughty_unescaping[<br> http://example.com-<br> <a href="http://example.com" rel="nofollow">http://example.com</a>] PASSED [ 91%] >tests/test_linkify.py::test_naughty_unescaping[<br> <br> http://example.com-<br> <br> <a href="http://example.com" rel="nofollow">http://example.com</a>] PASSED [ 92%] >tests/test_linkify.py::test_hang PASSED [ 92%] >tests/test_linkify.py::test_hyphen_in_mail PASSED [ 92%] >tests/test_linkify.py::test_url_re_arg PASSED [ 93%] >tests/test_linkify.py::test_email_re_arg PASSED [ 93%] >tests/test_linkify.py::test_recognized_tags_arg PASSED [ 93%] >tests/test_linkify.py::test_linkify_idempotent PASSED [ 94%] >tests/test_linkify.py::TestLinkify::test_no_href_links PASSED [ 94%] >tests/test_linkify.py::TestLinkify::test_rel_already_there PASSED [ 94%] >tests/test_linkify.py::TestLinkify::test_only_text_is_linkified PASSED [ 94%] >tests/test_linkify.py::test_linkify_filter[abc-abc] PASSED [ 95%] >tests/test_linkify.py::test_linkify_filter[example.com-<a href="http://example.com">example.com</a>] PASSED [ 95%] >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>] PASSED [ 95%] >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>] PASSED [ 96%] >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>] PASSED [ 96%] >tests/test_unicode.py::test_japanese_safe_simple PASSED [ 96%] >tests/test_unicode.py::test_japanese_strip PASSED [ 97%] >tests/test_unicode.py::test_russian_simple PASSED [ 97%] >tests/test_unicode.py::test_mixed PASSED [ 97%] >tests/test_unicode.py::test_mixed_linkify PASSED [ 97%] >tests/test_unicode.py::test_url_utf8[http://\xe9x\xe1mpl\xe9.com/-http://\xe9x\xe1mpl\xe9.com/] PASSED [ 98%] >tests/test_unicode.py::test_url_utf8[http://\xe9x\xe1mpl\xe9.com/\xed\xe0\xf1\xe1/-http://\xe9x\xe1mpl\xe9.com/\xed\xe0\xf1\xe1/] PASSED [ 98%] >tests/test_unicode.py::test_url_utf8[http://\xe9x\xe1mpl\xe9.com/\xed\xe0\xf1\xe1/?foo=bar-http://\xe9x\xe1mpl\xe9.com/\xed\xe0\xf1\xe1/?foo=bar] PASSED [ 98%] >tests/test_unicode.py::test_url_utf8[http://\xe9x\xe1mpl\xe9.com/\xed\xe0\xf1\xe1/?f\xf3o=b\xe1r-http://\xe9x\xe1mpl\xe9.com/\xed\xe0\xf1\xe1/?f\xf3o=b\xe1r] PASSED [ 99%] >tests/test_utils.py::TestAlphabeticalAttributes::test_empty_cases PASSED [ 99%] >tests/test_utils.py::TestAlphabeticalAttributes::test_ordering PASSED [ 99%] >tests/test_utils.py::TestAlphabeticalAttributes::test_different_namespaces PASSED [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/lib64/python2.7/timeit.py:237: in timeit > return Timer(stmt, setup, timer).timeit(number) >/usr/lib64/python2.7/timeit.py:202: in timeit > timing = self.inner(it, self.timer) ><timeit-src>:6: in inner > ??? >../bleach-3.1.5-python2_7/lib/bleach/__init__.py:84: in clean > return cleaner.clean(text) >../bleach-3.1.5-python2_7/lib/bleach/sanitizer.py:169: in clean > dom = self.parser.parseFragment(text) >/usr/lib64/python2.7/site-packages/html5lib/html5parser.py:312: in parseFragment > self._parse(stream, True, *args, **kwargs) >../bleach-3.1.5-python2_7/lib/bleach/html5lib_shim.py:399: in _parse > self.mainLoop() >/usr/lib64/python2.7/site-packages/html5lib/html5parser.py:240: in mainLoop > new_token = phase.processStartTag(new_token) >/usr/lib64/python2.7/site-packages/html5lib/html5parser.py:469: in processStartTag > return func(token) >/usr/lib64/python2.7/site-packages/html5lib/html5parser.py:1109: in startTagA > self.addFormattingElement(token) >/usr/lib64/python2.7/site-packages/html5lib/html5parser.py:958: in addFormattingElement > self.tree.insertElement(token) >/usr/lib64/python2.7/site-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/lib64/python2.7/site-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 &amp;&gt;&quot;' > ), > # 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/lib64/python2.7/site-packages/html5lib/html5parser.py:312: in parseFragment > self._parse(stream, True, *args, **kwargs) >../bleach-3.1.5-python2_7/lib/bleach/html5lib_shim.py:399: in _parse > self.mainLoop() >/usr/lib64/python2.7/site-packages/html5lib/html5parser.py:240: in mainLoop > new_token = phase.processStartTag(new_token) >/usr/lib64/python2.7/site-packages/html5lib/html5parser.py:469: in processStartTag > return func(token) >/usr/lib64/python2.7/site-packages/html5lib/html5parser.py:1109: in startTagA > self.addFormattingElement(token) >/usr/lib64/python2.7/site-packages/html5lib/html5parser.py:958: in addFormattingElement > self.tree.insertElement(token) >/usr/lib64/python2.7/site-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/lib64/python2.7/site-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 &amp;&gt;&quot;' > ), > # 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/lib64/python2.7/site-packages/html5lib/html5parser.py:312: in parseFragment > self._parse(stream, True, *args, **kwargs) >../bleach-3.1.5-python2_7/lib/bleach/html5lib_shim.py:399: in _parse > self.mainLoop() >/usr/lib64/python2.7/site-packages/html5lib/html5parser.py:240: in mainLoop > new_token = phase.processStartTag(new_token) >/usr/lib64/python2.7/site-packages/html5lib/html5parser.py:469: in processStartTag > return func(token) >/usr/lib64/python2.7/site-packages/html5lib/html5parser.py:1109: in startTagA > self.addFormattingElement(token) >/usr/lib64/python2.7/site-packages/html5lib/html5parser.py:958: in addFormattingElement > self.tree.insertElement(token) >/usr/lib64/python2.7/site-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/lib64/python2.7/site-packages/html5lib/treebuilders/etree.py:71: AttributeError >=============================== warnings summary =============================== >/usr/lib64/python2.7/site-packages/html5lib/filters/sanitizer.py:29 > /usr/lib64/python2.7/site-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) > >tests/test_clean.py::test_clean_idempotent >tests/test_clean.py::test_clean_idempotent >tests/test_clean.py::test_clean_idempotent >tests/test_clean.py::test_only_text_is_cleaned >tests/test_clean.py::test_content_has_no_html >tests/test_clean.py::test_content_has_allowed_html[an <strong>allowed</strong> tag-an <strong>allowed</strong> tag] >tests/test_clean.py::test_content_has_allowed_html[another <em>good</em> tag-another <em>good</em> tag] >tests/test_clean.py::test_html_is_lowercased >tests/test_clean.py::test_invalid_uri_does_not_raise_error >tests/test_clean.py::test_comments[<!-- this is a comment -->-True-] >tests/test_clean.py::test_comments[<!-- open comment-True-] >tests/test_clean.py::test_comments[<!--open comment-True-] >tests/test_clean.py::test_comments[<!-- open comment-False-<!-- open comment-->] >tests/test_clean.py::test_comments[<!--open comment-False-<!--open comment-->] >tests/test_clean.py::test_comments[<!-- comment -->text-True-text] >tests/test_clean.py::test_comments[<!--comment-->text-True-text] >tests/test_clean.py::test_comments[<!-- comment -->text-False-<!-- comment -->text] >tests/test_clean.py::test_comments[<!--comment-->text-False-<!--comment-->text] >tests/test_clean.py::test_comments[text<!-- comment -->-True-text] >tests/test_clean.py::test_comments[text<!--comment-->-True-text] >tests/test_clean.py::test_comments[text<!-- comment -->-False-text<!-- comment -->] >tests/test_clean.py::test_comments[text<!--comment-->-False-text<!--comment-->] >tests/test_clean.py::test_invalid_char_in_tag >tests/test_clean.py::test_invalid_char_in_tag >tests/test_clean.py::test_unclosed_tag >tests/test_clean.py::test_unclosed_tag >tests/test_clean.py::test_unclosed_tag >tests/test_clean.py::test_unclosed_tag >tests/test_clean.py::test_nested_script_tag >tests/test_clean.py::test_nested_script_tag >tests/test_clean.py::test_nested_script_tag >tests/test_clean.py::test_bare_entities_get_escaped_correctly[an & entity-an & entity] >tests/test_clean.py::test_bare_entities_get_escaped_correctly[an < entity-an < entity] >tests/test_clean.py::test_bare_entities_get_escaped_correctly[tag < <em>and</em> entity-tag < <em>and</em> entity] >tests/test_clean.py::test_character_entities_handling[&-&] >tests/test_clean.py::test_character_entities_handling[ - ] >tests/test_clean.py::test_character_entities_handling[ test string - test string ] >tests/test_clean.py::test_character_entities_handling[<em>strong</em>-<em>strong</em>] >tests/test_clean.py::test_character_entities_handling[&is cool-&is cool] >tests/test_clean.py::test_character_entities_handling[cool &-cool &] >tests/test_clean.py::test_character_entities_handling[&& is cool-&& is cool] >tests/test_clean.py::test_character_entities_handling[& is cool &&-& is cool &&] >tests/test_clean.py::test_character_entities_handling[this & that-this &amp that] >tests/test_clean.py::test_character_entities_handling[http://example.com?active=true¤t=true-http://example.com?active=true&current=true] >tests/test_clean.py::test_character_entities_handling[<a href="?art&copy">foo</a>-<a href="?art&copy">foo</a>] >tests/test_clean.py::test_character_entities_handling[<a href="?this=>that">foo</a>-<a href="?this=>that">foo</a>] >tests/test_clean.py::test_character_entities_handling[<a href="http://example.com/&xx;">foo</a>-<a href="http://example.com/&xx;">foo</a>] >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&current=true">foo</a>] >tests/test_clean.py::test_character_entities_handling[&xx;-&xx;] >tests/test_clean.py::test_character_entities_handling['-'] >tests/test_clean.py::test_character_entities_handling["-"] >tests/test_clean.py::test_character_entities_handling[{-{] >tests/test_clean.py::test_character_entities_handling[{-{] >tests/test_clean.py::test_character_entities_handling[{-{] >tests/test_clean.py::test_character_entities_handling[&#-&#] >tests/test_clean.py::test_character_entities_handling[&#<-&#<] >tests/test_clean.py::test_character_entities_handling['"-'"] >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] >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] >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] >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] >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] >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] >tests/test_clean.py::test_stripping_tags[<p><a href="http://example.com/">link text</a></p>-kwargs2-<p>link text</p>] >tests/test_clean.py::test_stripping_tags[<p><a href="http://example.com/">link text</a></p>-kwargs2-<p>link text</p>] >tests/test_clean.py::test_stripping_tags[<p><a href="http://example.com/">link text</a></p>-kwargs2-<p>link text</p>] >tests/test_clean.py::test_stripping_tags[<p><span>multiply <span>nested <span>text</span></span></span></p>-kwargs3-<p>multiply nested text</p>] >tests/test_clean.py::test_stripping_tags[<p><span>multiply <span>nested <span>text</span></span></span></p>-kwargs3-<p>multiply nested text</p>] >tests/test_clean.py::test_stripping_tags[<p><span>multiply <span>nested <span>text</span></span></span></p>-kwargs3-<p>multiply nested text</p>] >tests/test_clean.py::test_stripping_tags[<ul><li><script></li></ul>-kwargs4-<ul><li></li></ul>] >tests/test_clean.py::test_stripping_tags[<ul><li><script></li></ul>-kwargs4-<ul><li></li></ul>] >tests/test_clean.py::test_stripping_tags[<ul><li><script></li></ul>-kwargs4-<ul><li></li></ul>] >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>] >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>] >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>] >tests/test_clean.py::test_stripping_tags[<isindex>-kwargs6-] >tests/test_clean.py::test_stripping_tags[<isindex>-kwargs6-] >tests/test_clean.py::test_stripping_tags[<isindex>-kwargs6-] >tests/test_clean.py::test_stripping_tags[Yeah right <sarcasm/>-kwargs7-Yeah right ] >tests/test_clean.py::test_stripping_tags[Yeah right <sarcasm/>-kwargs7-Yeah right ] >tests/test_clean.py::test_stripping_tags[Yeah right <sarcasm/>-kwargs7-Yeah right ] >tests/test_clean.py::test_stripping_tags[<sarcasm>-kwargs8-] >tests/test_clean.py::test_stripping_tags[<sarcasm>-kwargs8-] >tests/test_clean.py::test_stripping_tags[<sarcasm>-kwargs8-] >tests/test_clean.py::test_stripping_tags[</sarcasm>-kwargs9-] >tests/test_clean.py::test_stripping_tags[</sarcasm>-kwargs9-] >tests/test_clean.py::test_stripping_tags[</sarcasm>-kwargs9-] >tests/test_clean.py::test_stripping_tags[</ sarcasm>-kwargs10-</ sarcasm>] >tests/test_clean.py::test_stripping_tags[</ sarcasm>-kwargs10-</ sarcasm>] >tests/test_clean.py::test_stripping_tags[</ sarcasm>-kwargs10-</ sarcasm>] >tests/test_clean.py::test_stripping_tags[</ sarcasm >-kwargs11-</ sarcasm >] >tests/test_clean.py::test_stripping_tags[</ sarcasm >-kwargs11-</ sarcasm >] >tests/test_clean.py::test_stripping_tags[</ sarcasm >-kwargs11-</ sarcasm >] >tests/test_clean.py::test_stripping_tags[Foo <bar@example.com>-kwargs12-Foo ] >tests/test_clean.py::test_stripping_tags[Foo <bar@example.com>-kwargs12-Foo ] >tests/test_clean.py::test_stripping_tags[Foo <bar@example.com>-kwargs12-Foo ] >tests/test_clean.py::test_stripping_tags[Favorite movie: <name of movie>-kwargs13-Favorite movie: ] >tests/test_clean.py::test_stripping_tags[Favorite movie: <name of movie>-kwargs13-Favorite movie: ] >tests/test_clean.py::test_stripping_tags[Favorite movie: <name of movie>-kwargs13-Favorite movie: ] >tests/test_clean.py::test_stripping_tags[</3-kwargs14-</3] >tests/test_clean.py::test_stripping_tags[</3-kwargs14-</3] >tests/test_clean.py::test_stripping_tags[</3-kwargs14-</3] >tests/test_clean.py::test_escaping_tags[<img src="javascript:alert('XSS');">-<img src="javascript:alert('XSS');">] >tests/test_clean.py::test_escaping_tags[<img src="javascript:alert('XSS');">-<img src="javascript:alert('XSS');">] >tests/test_clean.py::test_escaping_tags[<img src="javascript:alert('XSS');">-<img src="javascript:alert('XSS');">] >tests/test_clean.py::test_escaping_tags[<script>safe()</script>-<script>safe()</script>] >tests/test_clean.py::test_escaping_tags[<script>safe()</script>-<script>safe()</script>] >tests/test_clean.py::test_escaping_tags[<script>safe()</script>-<script>safe()</script>] >tests/test_clean.py::test_escaping_tags[<style>body{}</style>-<style>body{}</style>] >tests/test_clean.py::test_escaping_tags[<style>body{}</style>-<style>body{}</style>] >tests/test_clean.py::test_escaping_tags[<style>body{}</style>-<style>body{}</style>] >tests/test_clean.py::test_escaping_tags[<ul><li><script></li></ul>-<ul><li><script></li></ul>] >tests/test_clean.py::test_escaping_tags[<ul><li><script></li></ul>-<ul><li><script></li></ul>] >tests/test_clean.py::test_escaping_tags[<ul><li><script></li></ul>-<ul><li><script></li></ul>] >tests/test_clean.py::test_escaping_tags[<isindex>-<isindex>] >tests/test_clean.py::test_escaping_tags[<isindex>-<isindex>] >tests/test_clean.py::test_escaping_tags[<isindex>-<isindex>] >tests/test_clean.py::test_escaping_tags[<sarcasm/>-<sarcasm/>] >tests/test_clean.py::test_escaping_tags[<sarcasm/>-<sarcasm/>] >tests/test_clean.py::test_escaping_tags[<sarcasm/>-<sarcasm/>] >tests/test_clean.py::test_escaping_tags[<sarcasm>-<sarcasm>] >tests/test_clean.py::test_escaping_tags[<sarcasm>-<sarcasm>] >tests/test_clean.py::test_escaping_tags[<sarcasm>-<sarcasm>] >tests/test_clean.py::test_escaping_tags[</sarcasm>-</sarcasm>] >tests/test_clean.py::test_escaping_tags[</sarcasm>-</sarcasm>] >tests/test_clean.py::test_escaping_tags[</sarcasm>-</sarcasm>] >tests/test_clean.py::test_escaping_tags[</ sarcasm>-</ sarcasm>] >tests/test_clean.py::test_escaping_tags[</ sarcasm>-</ sarcasm>] >tests/test_clean.py::test_escaping_tags[</ sarcasm>-</ sarcasm>] >tests/test_clean.py::test_escaping_tags[</ sarcasm >-</ sarcasm >] >tests/test_clean.py::test_escaping_tags[</ sarcasm >-</ sarcasm >] >tests/test_clean.py::test_escaping_tags[</ sarcasm >-</ sarcasm >] >tests/test_clean.py::test_escaping_tags[</3-</3] >tests/test_clean.py::test_escaping_tags[</3-</3] >tests/test_clean.py::test_escaping_tags[</3-</3] >tests/test_clean.py::test_escaping_tags[<bar@example.com>-<bar@example.com>] >tests/test_clean.py::test_escaping_tags[<bar@example.com>-<bar@example.com>] >tests/test_clean.py::test_escaping_tags[<bar@example.com>-<bar@example.com>] >tests/test_clean.py::test_escaping_tags[Favorite movie: <name of movie>-Favorite movie: <name of movie>] >tests/test_clean.py::test_escaping_tags[Favorite movie: <name of movie>-Favorite movie: <name of movie>] >tests/test_clean.py::test_escaping_tags[Favorite movie: <name of movie>-Favorite movie: <name of movie>] >tests/test_clean.py::test_stripping_tags_is_safe[<scri<script>pt>alert(1)</scr</script>ipt>-pt>alert(1)ipt>] >tests/test_clean.py::test_stripping_tags_is_safe[<scri<scri<script>pt>pt>alert(1)</script>-pt>pt>alert(1)] >tests/test_clean.py::test_allowed_styles >tests/test_clean.py::test_allowed_styles >tests/test_clean.py::test_allowed_styles >tests/test_clean.py::test_href_with_wrong_tag >tests/test_clean.py::test_disallowed_attr >tests/test_clean.py::test_disallowed_attr >tests/test_clean.py::test_disallowed_attr >tests/test_clean.py::test_unquoted_attr_values_are_quoted >tests/test_clean.py::test_unquoted_event_handler_attr_value >tests/test_clean.py::test_invalid_filter_attr >tests/test_clean.py::test_invalid_filter_attr >tests/test_clean.py::test_poster_attribute >tests/test_clean.py::test_poster_attribute >tests/test_clean.py::test_attributes_callable >tests/test_clean.py::test_attributes_wildcard >tests/test_clean.py::test_attributes_wildcard_callable >tests/test_clean.py::test_attributes_tag_callable >tests/test_clean.py::test_attributes_tag_callable >tests/test_clean.py::test_attributes_tag_list >tests/test_clean.py::test_attributes_list >tests/test_clean.py::test_uri_value_allowed_protocols[<a href="javascript:alert('XSS')">xss</a>-kwargs0-<a>xss</a>] >tests/test_clean.py::test_uri_value_allowed_protocols[<a href="file:///tmp/foo">foo</a>-kwargs1-<a>foo</a>] >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>] >tests/test_clean.py::test_uri_value_allowed_protocols[<a href="http://example.com">invalid href</a>-kwargs3-<a>invalid href</a>] >tests/test_clean.py::test_uri_value_allowed_protocols[<a href="#example.com">foo</a>-kwargs4-<a href="#example.com">foo</a>] >tests/test_clean.py::test_uri_value_allowed_protocols[<a href="example.com">valid</a>-kwargs5-<a href="example.com">valid</a>] >tests/test_clean.py::test_uri_value_allowed_protocols[<a href="localhost">valid</a>-kwargs6-<a href="localhost">valid</a>] >tests/test_clean.py::test_uri_value_allowed_protocols[<a href="192.168.100.100">valid</a>-kwargs7-<a href="192.168.100.100">valid</a>] >tests/test_clean.py::test_uri_value_allowed_protocols[<a href="example.com">foo</a>-kwargs8-<a>foo</a>] >tests/test_clean.py::test_uri_value_allowed_protocols[<a href="example.com:8000">foo</a>-kwargs9-<a>foo</a>] >tests/test_clean.py::test_uri_value_allowed_protocols[<a href="localhost">foo</a>-kwargs10-<a>foo</a>] >tests/test_clean.py::test_uri_value_allowed_protocols[<a href="localhost:8000">foo</a>-kwargs11-<a>foo</a>] >tests/test_clean.py::test_uri_value_allowed_protocols[<a href="192.168.100.100">foo</a>-kwargs12-<a>foo</a>] >tests/test_clean.py::test_uri_value_allowed_protocols[<a href="192.168.100.100:8000">foo</a>-kwargs13-<a>foo</a>] >tests/test_clean.py::test_uri_value_allowed_protocols[<a href="javas	cript:alert(1)">alert</a>-kwargs14-<a>alert</a>] >tests/test_clean.py::test_uri_value_allowed_protocols[<a href="javascript:alert(1)">alert</a>-kwargs15-<a>alert</a>] >tests/test_clean.py::test_uri_value_allowed_protocols[<a href="http://example.com/?foo bar">foo</a>-kwargs16-<a href="http://example.com/?foo bar">foo</a>] >tests/test_clean.py::test_svg_attr_val_allows_ref >tests/test_clean.py::test_svg_attr_val_allows_ref >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>] >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>] >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>] >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>] >tests/test_clean.py::test_invisible_characters[1\x0723-1?23] >tests/test_clean.py::test_invisible_characters[1\x0823-1?23] >tests/test_clean.py::test_invisible_characters[1\x0b23-1?23] >tests/test_clean.py::test_invisible_characters[1\x0c23-1?23] >tests/test_clean.py::test_invisible_characters[import y\x08ose\x08m\x08i\x08t\x08e\x08-import y?ose?m?i?t?e?] >tests/test_clean.py::test_nonexistent_namespace >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) />] >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) />] >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) />] >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) />] >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) />] >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) />] >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) />] >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) />] >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>] >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>] >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>] >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>] >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>] >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>] >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>] >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>] >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>] >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>] >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>] >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>] >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>] >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>] >tests/test_clean.py::test_regressions[1.test] >tests/test_clean.py::test_regressions[2.test] >tests/test_clean.py::test_regressions[3.test] >tests/test_clean.py::test_regressions[4.test] >tests/test_clean.py::test_regressions[5.test] >tests/test_clean.py::test_regressions[6.test] >tests/test_clean.py::test_regressions[7.test] >tests/test_clean.py::test_regressions[8.test] >tests/test_clean.py::test_regressions[9.test] >tests/test_clean.py::test_regressions[10.test] >tests/test_clean.py::test_regressions[11.test] >tests/test_clean.py::test_regressions[12.test] >tests/test_clean.py::test_regressions[13.test] >tests/test_clean.py::test_regressions[14.test] >tests/test_clean.py::test_regressions[15.test] >tests/test_clean.py::test_regressions[16.test] >tests/test_clean.py::test_regressions[17.test] >tests/test_clean.py::test_regressions[18.test] >tests/test_clean.py::test_regressions[19.test] >tests/test_clean.py::test_regressions[20.test] >tests/test_clean.py::TestCleaner::test_basics >tests/test_clean.py::TestCleaner::test_filters >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>] >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>] >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>] >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>] >tests/test_css.py::test_allowed_css[<p style="color: red; float: left; padding: 1em;">bar</p>-styles4-<p style="color: red;">bar</p>] >tests/test_css.py::test_allowed_css[<p style="cursor: -moz-grab;">bar</p>-styles5-<p style="cursor: -moz-grab;">bar</p>] >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>] >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>] >tests/test_css.py::test_allowed_css[<p style="text-overflow: ',' ellipsis;">bar</p>-styles8-<p style="text-overflow: ',' ellipsis;">bar</p>] >tests/test_css.py::test_allowed_css[<p style='text-overflow: "," ellipsis;'>bar</p>-styles9-<p style='text-overflow: "," ellipsis;'>bar</p>] >tests/test_css.py::test_allowed_css[<p style='font-family: "Arial";'>bar</p>-styles10-<p style='font-family: "Arial";'>bar</p>] >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>] >tests/test_css.py::test_valid_css >tests/test_css.py::test_valid_css >tests/test_css.py::test_urls[<p style="background: #00D;">foo</p>-<p style="background: #00D;">foo</p>] >tests/test_css.py::test_urls[<p style="background: url(topbanner.png) #00D;">foo</p>-<p style="background: #00D;">foo</p>] >tests/test_css.py::test_urls[<p style="background: url('topbanner.png') #00D;">foo</p>-<p style="background: #00D;">foo</p>] >tests/test_css.py::test_urls[<p style='background: url("topbanner.png") #00D;'>foo</p>-<p style="background: #00D;">foo</p>] >tests/test_css.py::test_urls[<p style="background: url( 'topbanner.png') #00D;">foo</p>-<p style="background: #00D;">foo</p>] >tests/test_css.py::test_urls[<p style="background: url('topbanner.png' ) #00D;">foo</p>-<p style="background: #00D;">foo</p>] >tests/test_css.py::test_urls[<p style="background: url( 'topbanner.png' ) #00D;">foo</p>-<p style="background: #00D;">foo</p>] >tests/test_css.py::test_urls[<p style="background: url ( 'topbanner.png' ) #00D;">foo</p>-<p style="background: #00D;">foo</p>] >tests/test_css.py::test_urls[<p style="background: url	('topbanner.png') #00D;">foo</p>-<p style="background: #00D;">foo</p>] >tests/test_css.py::test_style_hang >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>] >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>] >tests/test_css.py::test_css_parsing_gauntlet_regex_backtracking["] >tests/test_css.py::test_css_parsing_gauntlet_regex_backtracking[-] >tests/test_linkify.py::test_linkify_filter[abc-abc] >tests/test_linkify.py::test_linkify_filter[example.com-<a href="http://example.com">example.com</a>] >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>] >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>] >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>] >tests/test_unicode.py::test_japanese_safe_simple >tests/test_unicode.py::test_japanese_strip >tests/test_unicode.py::test_japanese_strip >tests/test_unicode.py::test_russian_simple >tests/test_unicode.py::test_mixed > /usr/lib64/python2.7/site-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, 329 passed, 3 xfailed, 275 warnings in 2.93 seconds ========= > * ERROR: dev-python/bleach-3.1.5::gentoo failed (test phase): > * Tests fail with python2.7 > * > * Call stack: > * ebuild.sh, line 125: Called src_test > * environment, line 2956: Called distutils-r1_src_test > * environment, line 1262: Called _distutils-r1_run_foreach_impl 'python_test' > * environment, line 443: Called python_foreach_impl 'distutils-r1_run_phase' 'python_test' > * environment, line 2569: Called multibuild_foreach_variant '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'python_test' > * environment, line 2044: Called _multibuild_run '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'python_test' > * environment, line 2042: Called _python_multibuild_wrapper 'distutils-r1_run_phase' 'python_test' > * environment, line 850: Called distutils-r1_run_phase 'python_test' > * environment, line 1199: Called python_test > * environment, line 2914: Called die > * The specific snippet of code: > * pytest -vv || die "Tests fail with ${EPYTHON}" > * > * If you need support, post the output of `emerge --info '=dev-python/bleach-3.1.5::gentoo'`, > * the complete build log and the output of `emerge -pqv '=dev-python/bleach-3.1.5::gentoo'`. > * The complete build log is located at '/var/log/emerge-log/build/dev-python/bleach-3.1.5:20200708-211436.log'. > * For convenience, a symlink to the build log is located at '/var/tmp/portage/dev-python/bleach-3.1.5/temp/build.log'. > * The ebuild environment file is located at '/var/tmp/portage/dev-python/bleach-3.1.5/temp/environment'. > * Working directory: '/var/tmp/portage/dev-python/bleach-3.1.5/work/bleach-3.1.5' > * S: '/var/tmp/portage/dev-python/bleach-3.1.5/work/bleach-3.1.5' > > > >emerge --info: >Portage 2.3.103 (python 3.7.8-final-0, default/linux/amd64/17.1, gcc-10.1.0, glibc-2.31-r5, 5.4.0-1018-aws x86_64) >================================================================= >System uname: Linux-5.4.0-1018-aws-x86_64-AMD_EPYC_7571-with-gentoo-2.7 >KiB Mem: 16011352 total, 9654784 free >KiB Swap: 0 total, 0 free >sh bash 5.0_p17 >ld GNU ld (Gentoo 2.34 p4) 2.34.0 >app-shells/bash: 5.0_p17::gentoo >dev-lang/perl: 5.30.3-r1::gentoo >dev-lang/python: 2.7.18::gentoo, 3.7.8-r1::gentoo, 3.8.3-r1::gentoo >dev-util/cmake: 3.17.3::gentoo >sys-apps/baselayout: 2.7::gentoo >sys-apps/openrc: 0.42.1::gentoo >sys-apps/sandbox: 2.20::gentoo >sys-devel/autoconf: 2.69-r5::gentoo >sys-devel/automake: 1.16.2::gentoo >sys-devel/binutils: 2.34-r1::gentoo >sys-devel/gcc: 10.1.0-r2::gentoo >sys-devel/gcc-config: 2.3.1::gentoo >sys-devel/libtool: 2.4.6-r6::gentoo >sys-devel/make: 4.3::gentoo >sys-kernel/linux-headers: 5.7::gentoo (virtual/os-headers) >sys-libs/glibc: 2.31-r5::gentoo >Repositories: > >gentoo > location: /usr/portage > sync-type: rsync > sync-uri: rsync://rsync.gentoo.org/gentoo-portage > priority: -1000 > sync-rsync-verify-jobs: 1 > sync-rsync-extra-opts: > sync-rsync-verify-metamanifest: yes > sync-rsync-verify-max-age: 24 > >ACCEPT_KEYWORDS="amd64 ~amd64" >ACCEPT_LICENSE="*" >CBUILD="x86_64-pc-linux-gnu" >CFLAGS="-O2 -pipe -march=native -frecord-gcc-switches" >CHOST="x86_64-pc-linux-gnu" >CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt" >CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" >CXXFLAGS="-O2 -pipe -march=native -frecord-gcc-switches" >DISTDIR="/usr/portage/distfiles" >EMERGE_DEFAULT_OPTS="--with-bdeps=y -1 -k -b" >ENV_UNSET="DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR" >FCFLAGS="-O2 -pipe -march=native -frecord-gcc-switches" >FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs buildpkg collision-protect config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms sign split-log strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" >FFLAGS="-O2 -pipe -march=native -frecord-gcc-switches" >GENTOO_MIRRORS="http://distfiles.gentoo.org" >LANG="C.UTF8" >LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--defsym=__gentoo_check_ldflags__=0" >MAKEOPTS="-j4 V=1" >PKGDIR="/root/.packages" >PORTAGE_CONFIGROOT="/" >PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git" >PORTAGE_TMPDIR="/var/tmp" >USE="acl amd64 berkdb bzip2 cli crypt dri fortran gdbm iconv ipv6 libtirpc multilib native-symlinks ncurses nls nptl openmp pam pcre readline seccomp split-usr ssl tcpd unicode xattr zlib" ABI_X86="64" ADA_TARGET="gnat_2018" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext sse sse2" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="libinput" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-2" POSTGRES_TARGETS="postgres10 postgres11" PYTHON_SINGLE_TARGET="python3_7" PYTHON_TARGETS="python2_7 python3_7" RUBY_TARGETS="ruby25" USERLAND="GNU" VIDEO_CARDS="amdgpu fbdev intel nouveau radeon radeonsi vesa dummy v4l" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" >Unset: CC, CPPFLAGS, CTARGET, CXX, INSTALL_MASK, LC_ALL, LINGUAS, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 731828
: 648466