changeset 615:d960021f902f

Added external module for testing `bitten.util.xmlio` - specifically currently parses `UCS-4`-encoding `build` data
author dfraser
date Wed, 05 Aug 2009 09:29:55 +0000
parents 0c96346efa29
children dd64ca07ecae
files bitten/util/tests/__init__.py bitten/util/tests/xmlio.py
diffstat 2 files changed, 45 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/bitten/util/tests/__init__.py
+++ b/bitten/util/tests/__init__.py
@@ -11,11 +11,13 @@
 import doctest
 import unittest
 
-from bitten.util import xmlio
+from bitten.util import xmlio as xmlio_module
+from bitten.util.tests import xmlio as xmlio_tests
 
 def suite():
     suite = unittest.TestSuite()
-    suite.addTest(doctest.DocTestSuite(xmlio))
+    suite.addTest(doctest.DocTestSuite(xmlio_module))
+    suite.addTest(xmlio_tests.suite())
     return suite
 
 if __name__ == '__main__':
new file mode 100644
--- /dev/null
+++ b/bitten/util/tests/xmlio.py
@@ -0,0 +1,41 @@
+# -*- coding: utf-8 -*-
+#
+# Copyright (C) 2005-2007 Christopher Lenz <cmlenz@gmx.de>
+# Copyright (C) 2007 Edgewall Software
+# All rights reserved.
+#
+# This software is licensed as described in the file COPYING, which
+# you should have received as part of this distribution. The terms
+# are also available at http://bitten.edgewall.org/wiki/License.
+
+import os
+import shutil
+import tempfile
+import unittest
+
+from bitten.util import xmlio
+
+class XMLIOTestCase(unittest.TestCase):
+
+    def test_parse_ucs_4(self):
+        """Tests that UCS-4/UTF-38-encoded data is parsed correctly"""
+        s = """<\x00\x00\x00b\x00\x00\x00u\x00\x00\x00i\x00\x00\x00l\x00\x00\x00d\x00\x00\x00 \x00\x00\x00x\x00\x00\x00m\x00\x00\x00l\x00\x00\x00n\x00\x00\x00s\x00\x00\x00:\x00\x00\x00c\x00\x00\x00=\x00\x00\x00"\x00\x00\x00h\x00\x00\x00t\x00\x00\x00t\x00\x00\x00p\x00\x00\x00:\x00\x00\x00/\x00\x00\x00/\x00\x00\x00b\x00\x00\x00i\x00\x00\x00t\x00\x00\x00t\x00\x00\x00e\x00\x00\x00n\x00\x00\x00.\x00\x00\x00c\x00\x00\x00m\x00\x00\x00l\x00\x00\x00e\x00\x00\x00n\x00\x00\x00z\x00\x00\x00.\x00\x00\x00n\x00\x00\x00e\x00\x00\x00t\x00\x00\x00/\x00\x00\x00t\x00\x00\x00o\x00\x00\x00o\x00\x00\x00l\x00\x00\x00s\x00\x00\x00/\x00\x00\x00c\x00\x00\x00"\x00\x00\x00>\x00\x00\x00
+\x00\x00\x00
+\x00\x00\x00 \x00\x00\x00 \x00\x00\x00<\x00\x00\x00s\x00\x00\x00t\x00\x00\x00e\x00\x00\x00p\x00\x00\x00 \x00\x00\x00i\x00\x00\x00d\x00\x00\x00=\x00\x00\x00"\x00\x00\x00b\x00\x00\x00u\x00\x00\x00i\x00\x00\x00l\x00\x00\x00d\x00\x00\x00"\x00\x00\x00 \x00\x00\x00d\x00\x00\x00e\x00\x00\x00s\x00\x00\x00c\x00\x00\x00r\x00\x00\x00i\x00\x00\x00p\x00\x00\x00t\x00\x00\x00i\x00\x00\x00o\x00\x00\x00n\x00\x00\x00=\x00\x00\x00"\x00\x00\x00C\x00\x00\x00o\x00\x00\x00n\x00\x00\x00f\x00\x00\x00i\x00\x00\x00g\x00\x00\x00u\x00\x00\x00r\x00\x00\x00e\x00\x00\x00 \x00\x00\x00a\x00\x00\x00n\x00\x00\x00d\x00\x00\x00 \x00\x00\x00b\x00\x00\x00u\x00\x00\x00i\x00\x00\x00l\x00\x00\x00d\x00\x00\x00"\x00\x00\x00>\x00\x00\x00
+\x00\x00\x00
+\x00\x00\x00 \x00\x00\x00 \x00\x00\x00 \x00\x00\x00 \x00\x00\x00<\x00\x00\x00c\x00\x00\x00:\x00\x00\x00c\x00\x00\x00o\x00\x00\x00n\x00\x00\x00f\x00\x00\x00i\x00\x00\x00g\x00\x00\x00u\x00\x00\x00r\x00\x00\x00e\x00\x00\x00 \x00\x00\x00/\x00\x00\x00>\x00\x00\x00
+\x00\x00\x00
+\x00\x00\x00 \x00\x00\x00 \x00\x00\x00<\x00\x00\x00/\x00\x00\x00s\x00\x00\x00t\x00\x00\x00e\x00\x00\x00p\x00\x00\x00>\x00\x00\x00
+\x00\x00\x00
+\x00\x00\x00<\x00\x00\x00/\x00\x00\x00b\x00\x00\x00u\x00\x00\x00i\x00\x00\x00l\x00\x00\x00d\x00\x00\x00>\x00\x00\x00"""
+        s = s.decode("UTF-32").encode("UTF-8")
+        x = xmlio.parse(s)
+        assert x.name == "build"
+
+def suite():
+    suite = unittest.TestSuite()
+    suite.addTest(unittest.makeSuite(XMLIOTestCase, 'test'))
+    return suite
+
+if __name__ == '__main__':
+    unittest.main(defaultTest='suite')
Copyright (C) 2012-2017 Edgewall Software