Commit 1e0611b2 authored by Fred Drake's avatar Fred Drake

The "context" parameter to the ExternalEntityRefParameter exposes internal

information from the Expat library that is not part of its public API.
Do not print this information as the format of the string may (and will)
change as Expat evolves.

Add additional tests to make sure the ParserCreate() function raises the
right exceptions on illegal parameters.
parent 9a1a7dda
...@@ -30,7 +30,7 @@ Character data: ...@@ -30,7 +30,7 @@ Character data:
End of CDATA section End of CDATA section
End element: End element:
'sub2' 'sub2'
External entity ref: ('http://www.python.org/namespace=http://www.w3.org/XML/1998/namespace\014external_entity', None, 'entity.file', None) External entity ref: (None, 'entity.file', None)
End element: End element:
'root' 'root'
PI: PI:
...@@ -60,7 +60,7 @@ Character data: ...@@ -60,7 +60,7 @@ Character data:
End of CDATA section End of CDATA section
End element: End element:
u'sub2' u'sub2'
External entity ref: (u'http://www.python.org/namespace=http://www.w3.org/XML/1998/namespace\014external_entity', None, u'entity.file', None) External entity ref: (None, u'entity.file', None)
End element: End element:
u'root' u'root'
PI: PI:
...@@ -90,6 +90,15 @@ Character data: ...@@ -90,6 +90,15 @@ Character data:
End of CDATA section End of CDATA section
End element: End element:
u'sub2' u'sub2'
External entity ref: (u'http://www.python.org/namespace=http://www.w3.org/XML/1998/namespace\014external_entity', None, u'entity.file', None) External entity ref: (None, u'entity.file', None)
End element: End element:
u'root' u'root'
Testing constructor for proper handling of namespace_separator values:
Legal values tested o.k.
Caught expected TypeError:
ParserCreate, argument 2: expected string or None, int found
Caught expected ValueError:
namespace_separator must be one character, omitted, or None
Caught expected ValueError:
namespace_separator must be one character, omitted, or None
...@@ -50,7 +50,7 @@ class Outputter: ...@@ -50,7 +50,7 @@ class Outputter:
def ExternalEntityRefHandler(self, *args): def ExternalEntityRefHandler(self, *args):
context, base, sysId, pubId = args context, base, sysId, pubId = args
print 'External entity ref:', args print 'External entity ref:', args[1:]
return 1 return 1
def DefaultHandler(self, userData): def DefaultHandler(self, userData):
...@@ -150,3 +150,34 @@ except expat.error: ...@@ -150,3 +150,34 @@ except expat.error:
print '** Line', parser.ErrorLineNumber print '** Line', parser.ErrorLineNumber
print '** Column', parser.ErrorColumnNumber print '** Column', parser.ErrorColumnNumber
print '** Byte', parser.ErrorByteIndex print '** Byte', parser.ErrorByteIndex
# Tests that make sure we get errors when the namespace_separator value
# is illegal, and that we don't for good values:
print
print "Testing constructor for proper handling of namespace_separator values:"
expat.ParserCreate()
expat.ParserCreate(namespace_separator=None)
expat.ParserCreate(namespace_separator=' ')
print "Legal values tested o.k."
try:
expat.ParserCreate(namespace_separator=42)
except TypeError, e:
print "Caught expected TypeError:"
print e
else:
print "Failed to catch expected TypeError."
try:
expat.ParserCreate(namespace_separator='too long')
except ValueError, e:
print "Caught expected ValueError:"
print e
else:
print "Failed to catch expected ValueError."
try:
expat.ParserCreate(namespace_separator='') # too short
except ValueError, e:
print "Caught expected ValueError:"
print e
else:
print "Failed to catch expected ValueError."
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment