[Python-checkins] CVS: python/dist/src/Lib/test test_htmlparser.py,1.3,1.4

Fred L. Drake fdrake@users.sourceforge.net
Mon, 20 Aug 2001 14:24:21 -0700


Update of /cvsroot/python/python/dist/src/Lib/test
In directory usw-pr-cvs1:/tmp/cvs-serv22193/Lib/test

Modified Files:
	test_htmlparser.py 
Log Message:

Deal more appropriately with bare ampersands and pointy brackets; this
module has to deal with "class" HTML-as-deployed as well as XHTML, so we
cannot be as strict as XHTML allows.

This closes SF bug #453059, but uses a different fix than suggested in
the bug comments.


Index: test_htmlparser.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_htmlparser.py,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** test_htmlparser.py	2001/08/03 19:53:01	1.3
--- test_htmlparser.py	2001/08/20 21:24:19	1.4
***************
*** 2,5 ****
--- 2,6 ----
  
  import HTMLParser
+ import pprint
  import sys
  import test_support
***************
*** 84,90 ****
              parser.feed(c)
          parser.close()
!         self.assert_(parser.get_events() ==
!                      self.initial_events + events + self.final_events,
!                      parser.get_events())
  
      def _run_check_extra(self, source, events):
--- 85,92 ----
              parser.feed(c)
          parser.close()
!         events = parser.get_events()
!         self.assertEqual(events,
!                          self.initial_events + events + self.final_events,
!                          "got events:\n" + pprint.pformat(events))
  
      def _run_check_extra(self, source, events):
***************
*** 138,141 ****
--- 140,155 ----
      ])
  
+     def test_doctype_decl(self):
+         inside = """\
+ DOCTYPE html [
+   <!ELEMENT html - O EMPTY>
+   <!ATTLIST html
+       version CDATA #IMPLIED '4.0'>
+   <!-- comment -->
+ ]"""
+         self._run_check("<!%s>" % inside, [
+             ("decl", inside),
+             ])
+ 
      def test_bad_nesting(self):
          # Strangely, this *is* supposed to test that overlapping
***************
*** 149,152 ****
--- 163,176 ----
              ])
  
+     def test_bare_ampersands(self):
+         self._run_check("this text & contains & ampersands &", [
+             ("data", "this text & contains & ampersands &"),
+             ])
+ 
+     def test_bare_pointy_brackets(self):
+         self._run_check("this < text > contains < bare>pointy< brackets", [
+             ("data", "this < text > contains < bare>pointy< brackets"),
+             ])
+ 
      def test_attr_syntax(self):
          output = [
***************
*** 200,205 ****
  
      def test_starttag_junk_chars(self):
-         self._parse_error("<")
-         self._parse_error("<>")
          self._parse_error("</>")
          self._parse_error("</$>")
--- 224,227 ----
***************
*** 208,213 ****
          self._parse_error("<a<a>")
          self._parse_error("</a<a>")
-         self._parse_error("<$")
-         self._parse_error("<$>")
          self._parse_error("<!")
          self._parse_error("<a $>")
--- 230,233 ----