summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_sax.py
diff options
context:
space:
mode:
authorFred Drake <fdrake@acm.org>2004-03-20 08:15:30 (GMT)
committerFred Drake <fdrake@acm.org>2004-03-20 08:15:30 (GMT)
commit6fd0b0d5bacb38ac88e74a767f11df2bb73ae49b (patch)
treede4d0d2fc4f3ad9e462719cecb61975ba8082e62 /Lib/test/test_sax.py
parent9de0a2ba9dba2794927b895e9a8473c9437bebd1 (diff)
downloadcpython-6fd0b0d5bacb38ac88e74a767f11df2bb73ae49b.zip
cpython-6fd0b0d5bacb38ac88e74a767f11df2bb73ae49b.tar.gz
cpython-6fd0b0d5bacb38ac88e74a767f11df2bb73ae49b.tar.bz2
commit the portion of PyXML patch #919008 that is relevant to the
standard library: str() of xml.sax.SAXParseException should not fail if the line and/or column number returned by the locator are None (tests added)
Diffstat (limited to 'Lib/test/test_sax.py')
-rw-r--r--Lib/test/test_sax.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/Lib/test/test_sax.py b/Lib/test/test_sax.py
index af97888..8e279ce 100644
--- a/Lib/test/test_sax.py
+++ b/Lib/test/test_sax.py
@@ -489,6 +489,41 @@ def test_expat_incomplete():
else:
return 0
+def test_sax_parse_exception_str():
+ # pass various values from a locator to the SAXParseException to
+ # make sure that the __str__() doesn't fall apart when None is
+ # passed instead of an integer line and column number
+ #
+ # use "normal" values for the locator:
+ str(SAXParseException("message", None,
+ DummyLocator(1, 1)))
+ # use None for the line number:
+ str(SAXParseException("message", None,
+ DummyLocator(None, 1)))
+ # use None for the column number:
+ str(SAXParseException("message", None,
+ DummyLocator(1, None)))
+ # use None for both:
+ str(SAXParseException("message", None,
+ DummyLocator(None, None)))
+ return 1
+
+class DummyLocator:
+ def __init__(self, lineno, colno):
+ self._lineno = lineno
+ self._colno = colno
+
+ def getPublicId(self):
+ return "pubid"
+
+ def getSystemId(self):
+ return "sysid"
+
+ def getLineNumber(self):
+ return self._lineno
+
+ def getColumnNumber(self):
+ return self._colno
# ===========================================================================
#