From 74592919d67706c3554f42da5226afb8b6feb48e Mon Sep 17 00:00:00 2001 From: Ezio Melotti Date: Tue, 8 Nov 2011 02:07:18 +0200 Subject: [PATCH] Group tests about attributes in a separate class. --- Lib/test/test_htmlparser.py | 120 ++++++++++++++++++------------------ 1 file changed, 59 insertions(+), 61 deletions(-) diff --git a/Lib/test/test_htmlparser.py b/Lib/test/test_htmlparser.py index f557da1021..192a341935 100644 --- a/Lib/test/test_htmlparser.py +++ b/Lib/test/test_htmlparser.py @@ -181,60 +181,6 @@ DOCTYPE html [ ("data", "this < text > contains < bare>pointy< brackets"), ]) - def test_attr_syntax(self): - output = [ - ("starttag", "a", [("b", "v"), ("c", "v"), ("d", "v"), ("e", None)]) - ] - self._run_check("""""", output) - self._run_check("""""", output) - self._run_check("""""", output) - self._run_check("""""", output) - - def test_attr_values(self): - self._run_check("""""", - [("starttag", "a", [("b", "xxx\n\txxx"), - ("c", "yyy\t\nyyy"), - ("d", "\txyz\n")]) - ]) - self._run_check("""""", [ - ("starttag", "a", [("b", ""), ("c", "")]), - ]) - # Regression test for SF patch #669683. - self._run_check("", [ - ("starttag", "e", [("a", "rgb(1,2,3)")]), - ]) - # Regression test for SF bug #921657. - self._run_check("", [ - ("starttag", "a", [("href", "mailto:xyz@example.com")]), - ]) - - def test_attr_nonascii(self): - # see issue 7311 - self._run_check(u"\u4e2d\u6587", [ - ("starttag", "img", [("src", "/foo/bar.png"), - ("alt", u"\u4e2d\u6587")]), - ]) - self._run_check(u"", [ - ("starttag", "a", [("title", u"\u30c6\u30b9\u30c8"), - ("href", u"\u30c6\u30b9\u30c8.html")]), - ]) - self._run_check(u'', [ - ("starttag", "a", [("title", u"\u30c6\u30b9\u30c8"), - ("href", u"\u30c6\u30b9\u30c8.html")]), - ]) - - def test_attr_entity_replacement(self): - self._run_check("""""", [ - ("starttag", "a", [("b", "&><\"'")]), - ]) - - def test_attr_funky_names(self): - self._run_check("""""", [ - ("starttag", "a", [("a.b", "v"), ("c:d", "v"), ("e-f", "v")]), - ]) - def test_illegal_declarations(self): self._parse_error('') @@ -342,12 +288,6 @@ DOCTYPE html [ ("data", content), ("endtag", element_lower)]) - - def test_entityrefs_in_attributes(self): - self._run_check("", [ - ("starttag", "html", [("foo", u"\u20AC&aa&unsupported;")]) - ]) - def test_malformatted_charref(self): self._run_check("

&#bad;

", [ ("starttag", "p", []), @@ -361,8 +301,66 @@ DOCTYPE html [ self.assertEqual(parser.unescape('&'),'&') + +class AttributesTestCase(TestCaseBase): + + def test_attr_syntax(self): + output = [ + ("starttag", "a", [("b", "v"), ("c", "v"), ("d", "v"), ("e", None)]) + ] + self._run_check("""
""", output) + self._run_check("""""", output) + self._run_check("""""", output) + self._run_check("""""", output) + + def test_attr_values(self): + self._run_check("""""", + [("starttag", "a", [("b", "xxx\n\txxx"), + ("c", "yyy\t\nyyy"), + ("d", "\txyz\n")])]) + self._run_check("""""", + [("starttag", "a", [("b", ""), ("c", "")])]) + # Regression test for SF patch #669683. + self._run_check("", + [("starttag", "e", [("a", "rgb(1,2,3)")])]) + # Regression test for SF bug #921657. + self._run_check( + "", + [("starttag", "a", [("href", "mailto:xyz@example.com")])]) + + def test_attr_nonascii(self): + # see issue 7311 + self._run_check( + u"\u4e2d\u6587", + [("starttag", "img", [("src", "/foo/bar.png"), + ("alt", u"\u4e2d\u6587")])]) + self._run_check( + u"", + [("starttag", "a", [("title", u"\u30c6\u30b9\u30c8"), + ("href", u"\u30c6\u30b9\u30c8.html")])]) + self._run_check( + u'', + [("starttag", "a", [("title", u"\u30c6\u30b9\u30c8"), + ("href", u"\u30c6\u30b9\u30c8.html")])]) + + def test_attr_entity_replacement(self): + self._run_check( + "", + [("starttag", "a", [("b", "&><\"'")])]) + + def test_attr_funky_names(self): + self._run_check( + "", + [("starttag", "a", [("a.b", "v"), ("c:d", "v"), ("e-f", "v")])]) + + + def test_entityrefs_in_attributes(self): + self._run_check( + "", + [("starttag", "html", [("foo", u"\u20AC&aa&unsupported;")])]) + def test_main(): - test_support.run_unittest(HTMLParserTestCase) + test_support.run_unittest(HTMLParserTestCase, AttributesTestCase) if __name__ == "__main__": -- 2.40.0