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

Lars Marius Garshol python-dev@python.org
Sun, 24 Sep 2000 13:19:47 -0700


Update of /cvsroot/python/python/dist/src/Lib/test
In directory slayer.i.sourceforge.net:/tmp/cvs-serv6445/test

Modified Files:
	test_sax.py 
Log Message:
Added EntityResolver and DTDHandler (patch 101631) with test cases.


Index: test_sax.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_sax.py,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** test_sax.py	2000/09/24 18:53:56	1.3
--- test_sax.py	2000/09/24 20:19:43	1.4
***************
*** 157,179 ****
          self._entities.append((name, publicId, systemId, ndata))
  
! #  def test_expat_dtdhandler():
! #      parser = create_parser()
! #      handler = TestDTDHandler()
! #      parser.setDTDHandler(handler)
! 
! #      parser.feed('<!DOCTYPE doc [\n')
! #      parser.feed('  <!ENTITY img SYSTEM "expat.gif" NDATA GIF>\n')
! #      parser.feed('  <!NOTATION GIF PUBLIC "-//CompuServe//NOTATION Graphics Interchange Format 89a//EN">\n')
! #      parser.feed(']>\n')
! #      parser.feed('<doc></doc>')
! #      parser.close()
  
! #      return handler._notations == [("GIF", "-//CompuServe//NOTATION Graphics Interchange Format 89a//EN", None)] and \
! #             handler._entities == [("img", None, "expat.gif", "GIF")]
  
  # ===== EntityResolver support
  
! # can't test this until InputSource is in place
  
  # ===== Attributes support
  
--- 157,199 ----
          self._entities.append((name, publicId, systemId, ndata))
  
! def test_expat_dtdhandler():
!     parser = create_parser()
!     handler = TestDTDHandler()
!     parser.setDTDHandler(handler)
! 
!     parser.feed('<!DOCTYPE doc [\n')
!     parser.feed('  <!ENTITY img SYSTEM "expat.gif" NDATA GIF>\n')
!     parser.feed('  <!NOTATION GIF PUBLIC "-//CompuServe//NOTATION Graphics Interchange Format 89a//EN">\n')
!     parser.feed(']>\n')
!     parser.feed('<doc></doc>')
!     parser.close()
  
!     return handler._notations == [("GIF", "-//CompuServe//NOTATION Graphics Interchange Format 89a//EN", None)] and \
!            handler._entities == [("img", None, "expat.gif", "GIF")]
  
  # ===== EntityResolver support
  
! class TestEntityResolver:
  
+     def resolveEntity(self, publicId, systemId):
+         inpsrc = InputSource()
+         inpsrc.setByteStream(StringIO("<entity/>"))
+         return inpsrc
+ 
+ def test_expat_entityresolver():
+     return 1 # disabling this until pyexpat.c has been fixed
+     parser = create_parser()
+     parser.setEntityResolver(TestEntityResolver())
+     result = StringIO()
+     parser.setContentHandler(XMLGenerator(result))
+ 
+     parser.feed('<!DOCTYPE doc [\n')
+     parser.feed('  <!ENTITY test SYSTEM "whatever">\n')
+     parser.feed(']>\n')
+     parser.feed('<doc>&test;</doc>')
+     parser.close()
+ 
+     return result.getvalue() == start + "<doc><entity></entity></doc>"
+     
  # ===== Attributes support
  
***************
*** 441,444 ****
  if fails != 0:
      raise TestFailed, "%d of %d tests failed" % (fails, tests)
- 
- make_test_output()
--- 461,462 ----