diff options
author | Georg Brandl <georg@python.org> | 2010-10-15 15:25:23 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2010-10-15 15:25:23 (GMT) |
commit | 91d2a3fb0e248872bcb809070257f3036ff0eadb (patch) | |
tree | 89c41e0c135cebbd8c0847193adbfe3b4f54cc94 | |
parent | 279b56d9a7239920dc5f190bc2ebc91b6605c796 (diff) | |
download | cpython-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.py | 24 | ||||
-rw-r--r-- | Lib/xml/parsers/expat.py | 6 |
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 |