summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2010-10-15 15:25:23 (GMT)
committerGeorg Brandl <georg@python.org>2010-10-15 15:25:23 (GMT)
commit91d2a3fb0e248872bcb809070257f3036ff0eadb (patch)
tree89c41e0c135cebbd8c0847193adbfe3b4f54cc94
parent279b56d9a7239920dc5f190bc2ebc91b6605c796 (diff)
downloadcpython-91d2a3fb0e248872bcb809070257f3036ff0eadb.zip
cpython-91d2a3fb0e248872bcb809070257f3036ff0eadb.tar.gz
cpython-91d2a3fb0e248872bcb809070257f3036ff0eadb.tar.bz2
#5355 followup: add unit test for new dictionaries, and provide submodules from xml.parsers.expat as advertised.
-rw-r--r--Lib/test/test_pyexpat.py24
-rw-r--r--Lib/xml/parsers/expat.py6
2 files changed, 27 insertions, 3 deletions
diff --git a/Lib/test/test_pyexpat.py b/Lib/test/test_pyexpat.py
index a116544..49ac23d 100644
--- a/Lib/test/test_pyexpat.py
+++ b/Lib/test/test_pyexpat.py
@@ -2,10 +2,10 @@
# handler, are obscure and unhelpful.
from io import BytesIO
-import sys
import unittest
from xml.parsers import expat
+from xml.parsers.expat import errors
from test.support import sortdict, run_unittest
@@ -575,7 +575,7 @@ class ChardataBufferTest(unittest.TestCase):
parser.Parse(xml2, 1)
self.assertEquals(self.n, 4)
-class MalformedInputText(unittest.TestCase):
+class MalformedInputTest(unittest.TestCase):
def test1(self):
xml = "\0\r\n"
parser = expat.ParserCreate()
@@ -594,6 +594,23 @@ class MalformedInputText(unittest.TestCase):
except expat.ExpatError as e:
self.assertEquals(str(e), 'XML declaration not well-formed: line 1, column 14')
+class ErrorMessageTest(unittest.TestCase):
+ def test_codes(self):
+ # verify mapping of errors.codes and errors.messages
+ self.assertEqual(errors.XML_ERROR_SYNTAX,
+ errors.messages[errors.codes[errors.XML_ERROR_SYNTAX]])
+
+ def test_expaterror(self):
+ xml = '<'
+ parser = expat.ParserCreate()
+ try:
+ parser.Parse(xml, True)
+ self.fail()
+ except expat.ExpatError as e:
+ self.assertEquals(e.code,
+ errors.codes[errors.XML_ERROR_UNCLOSED_TOKEN])
+
+
def test_main():
run_unittest(SetAttributeTest,
ParseTest,
@@ -604,7 +621,8 @@ def test_main():
PositionTest,
sf1296433Test,
ChardataBufferTest,
- MalformedInputText)
+ MalformedInputTest,
+ ErrorMessageTest)
if __name__ == "__main__":
test_main()
diff --git a/Lib/xml/parsers/expat.py b/Lib/xml/parsers/expat.py
index 11359a0..a805b82 100644
--- a/Lib/xml/parsers/expat.py
+++ b/Lib/xml/parsers/expat.py
@@ -1,4 +1,10 @@
"""Interface to the Expat non-validating XML parser."""
__version__ = '$Revision$'
+import sys
+
from pyexpat import *
+
+# provide pyexpat submodules as xml.parsers.expat submodules
+sys.modules['xml.parsers.expat.model'] = model
+sys.modules['xml.parsers.expat.errors'] = errors