]> granicus.if.org Git - python/commitdiff
testing control chars and non-dict root objects
authorJust van Rossum <just@letterror.com>
Fri, 12 Nov 2004 08:34:32 +0000 (08:34 +0000)
committerJust van Rossum <just@letterror.com>
Fri, 12 Nov 2004 08:34:32 +0000 (08:34 +0000)
Lib/test/test_plistlib.py

index b2a3b7de3fc2f5da507429a848f60647b1607219..bf745d3c654e149a4f4fdfaa6e954e7a94323393 100644 (file)
@@ -164,6 +164,22 @@ class TestPlistlib(unittest.TestCase):
         pl2 = plistlib.readPlist(StringIO(f.getvalue()))
         self.assertEqual(dict(pl), dict(pl2))
 
+    def test_controlcharacters(self):
+        # chars in the range 0..31 are replaced by '?', except for
+        # \r, \n and \t since they aren't legal XML characters
+        testString = "".join([chr(i) for i in range(32)])
+        expectedResult = '?????????\t\n??\n??????????????????'
+        xml = plistlib.writePlistToString(testString)
+        result = plistlib.readPlistFromString(xml)
+        self.assertEqual(result, expectedResult)
+
+    def test_nondictroot(self):
+        test1 = "abc"
+        test2 = [1, 2, 3, "abc"]
+        result1 = plistlib.readPlistFromString(plistlib.writePlistToString(test1))
+        result2 = plistlib.readPlistFromString(plistlib.writePlistToString(test2))
+        self.assertEqual(test1, result1)
+        self.assertEqual(test2, result2)
 
 
 def test_main():