[Python-checkins] cpython (2.7): Group tests about attributes in a separate class.

ezio.melotti python-checkins at python.org
Mon Nov 14 17:57:02 CET 2011


http://hg.python.org/cpython/rev/da8212a27e3c
changeset:   73544:da8212a27e3c
branch:      2.7
parent:      73541:87ecfd5cd5d1
user:        Ezio Melotti <ezio.melotti at gmail.com>
date:        Tue Nov 08 02:07:18 2011 +0200
summary:
  Group tests about attributes in a separate class.

files:
  Lib/test/test_htmlparser.py |  120 +++++++++++------------
  1 files changed, 59 insertions(+), 61 deletions(-)


diff --git a/Lib/test/test_htmlparser.py b/Lib/test/test_htmlparser.py
--- a/Lib/test/test_htmlparser.py
+++ b/Lib/test/test_htmlparser.py
@@ -181,60 +181,6 @@
             ("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("""<a b='v' c="v" d=v e>""", output)
-        self._run_check("""<a  b = 'v' c = "v" d = v e>""", output)
-        self._run_check("""<a\nb\n=\n'v'\nc\n=\n"v"\nd\n=\nv\ne>""", output)
-        self._run_check("""<a\tb\t=\t'v'\tc\t=\t"v"\td\t=\tv\te>""", output)
-
-    def test_attr_values(self):
-        self._run_check("""<a b='xxx\n\txxx' c="yyy\t\nyyy" d='\txyz\n'>""",
-                        [("starttag", "a", [("b", "xxx\n\txxx"),
-                                            ("c", "yyy\t\nyyy"),
-                                            ("d", "\txyz\n")])
-                         ])
-        self._run_check("""<a b='' c="">""", [
-            ("starttag", "a", [("b", ""), ("c", "")]),
-            ])
-        # Regression test for SF patch #669683.
-        self._run_check("<e a=rgb(1,2,3)>", [
-            ("starttag", "e", [("a", "rgb(1,2,3)")]),
-            ])
-        # Regression test for SF bug #921657.
-        self._run_check("<a href=mailto:xyz at example.com>", [
-            ("starttag", "a", [("href", "mailto:xyz at example.com")]),
-            ])
-
-    def test_attr_nonascii(self):
-        # see issue 7311
-        self._run_check(u"<img src=/foo/bar.png alt=\u4e2d\u6587>", [
-            ("starttag", "img", [("src", "/foo/bar.png"),
-                                 ("alt", u"\u4e2d\u6587")]),
-            ])
-        self._run_check(u"<a title='\u30c6\u30b9\u30c8' "
-                        u"href='\u30c6\u30b9\u30c8.html'>", [
-            ("starttag", "a", [("title", u"\u30c6\u30b9\u30c8"),
-                               ("href", u"\u30c6\u30b9\u30c8.html")]),
-            ])
-        self._run_check(u'<a title="\u30c6\u30b9\u30c8" '
-                        u'href="\u30c6\u30b9\u30c8.html">', [
-            ("starttag", "a", [("title", u"\u30c6\u30b9\u30c8"),
-                               ("href", u"\u30c6\u30b9\u30c8.html")]),
-            ])
-
-    def test_attr_entity_replacement(self):
-        self._run_check("""<a b='&amp;&gt;&lt;&quot;&apos;'>""", [
-            ("starttag", "a", [("b", "&><\"'")]),
-            ])
-
-    def test_attr_funky_names(self):
-        self._run_check("""<a a.b='v' c:d=v e-f=v>""", [
-            ("starttag", "a", [("a.b", "v"), ("c:d", "v"), ("e-f", "v")]),
-            ])
-
     def test_illegal_declarations(self):
         self._parse_error('<!spacer type="block" height="25">')
 
@@ -342,12 +288,6 @@
                                     ("data", content),
                                     ("endtag", element_lower)])
 
-
-    def test_entityrefs_in_attributes(self):
-        self._run_check("<html foo='&euro;&amp;&#97;&#x61;&unsupported;'>", [
-                ("starttag", "html", [("foo", u"\u20AC&aa&unsupported;")])
-                ])
-
     def test_malformatted_charref(self):
         self._run_check("<p>&#bad;</p>", [
             ("starttag", "p", []),
@@ -361,8 +301,66 @@
         self.assertEqual(parser.unescape('&#0038;'),'&')
 
 
+
+class AttributesTestCase(TestCaseBase):
+
+    def test_attr_syntax(self):
+        output = [
+          ("starttag", "a", [("b", "v"), ("c", "v"), ("d", "v"), ("e", None)])
+        ]
+        self._run_check("""<a b='v' c="v" d=v e>""", output)
+        self._run_check("""<a  b = 'v' c = "v" d = v e>""", output)
+        self._run_check("""<a\nb\n=\n'v'\nc\n=\n"v"\nd\n=\nv\ne>""", output)
+        self._run_check("""<a\tb\t=\t'v'\tc\t=\t"v"\td\t=\tv\te>""", output)
+
+    def test_attr_values(self):
+        self._run_check("""<a b='xxx\n\txxx' c="yyy\t\nyyy" d='\txyz\n'>""",
+                        [("starttag", "a", [("b", "xxx\n\txxx"),
+                                            ("c", "yyy\t\nyyy"),
+                                            ("d", "\txyz\n")])])
+        self._run_check("""<a b='' c="">""",
+                        [("starttag", "a", [("b", ""), ("c", "")])])
+        # Regression test for SF patch #669683.
+        self._run_check("<e a=rgb(1,2,3)>",
+                        [("starttag", "e", [("a", "rgb(1,2,3)")])])
+        # Regression test for SF bug #921657.
+        self._run_check(
+            "<a href=mailto:xyz at example.com>",
+            [("starttag", "a", [("href", "mailto:xyz at example.com")])])
+
+    def test_attr_nonascii(self):
+        # see issue 7311
+        self._run_check(
+            u"<img src=/foo/bar.png alt=\u4e2d\u6587>",
+            [("starttag", "img", [("src", "/foo/bar.png"),
+                                  ("alt", u"\u4e2d\u6587")])])
+        self._run_check(
+            u"<a title='\u30c6\u30b9\u30c8' href='\u30c6\u30b9\u30c8.html'>",
+            [("starttag", "a", [("title", u"\u30c6\u30b9\u30c8"),
+                                ("href", u"\u30c6\u30b9\u30c8.html")])])
+        self._run_check(
+            u'<a title="\u30c6\u30b9\u30c8" href="\u30c6\u30b9\u30c8.html">',
+            [("starttag", "a", [("title", u"\u30c6\u30b9\u30c8"),
+                                ("href", u"\u30c6\u30b9\u30c8.html")])])
+
+    def test_attr_entity_replacement(self):
+        self._run_check(
+            "<a b='&amp;&gt;&lt;&quot;&apos;'>",
+            [("starttag", "a", [("b", "&><\"'")])])
+
+    def test_attr_funky_names(self):
+        self._run_check(
+            "<a a.b='v' c:d=v e-f=v>",
+            [("starttag", "a", [("a.b", "v"), ("c:d", "v"), ("e-f", "v")])])
+
+
+    def test_entityrefs_in_attributes(self):
+        self._run_check(
+            "<html foo='&euro;&amp;&#97;&#x61;&unsupported;'>",
+            [("starttag", "html", [("foo", u"\u20AC&aa&unsupported;")])])
+
 def test_main():
-    test_support.run_unittest(HTMLParserTestCase)
+    test_support.run_unittest(HTMLParserTestCase, AttributesTestCase)
 
 
 if __name__ == "__main__":

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list