diff options
Diffstat (limited to 'lib/python2.7/test/test_plistlib.py')
-rw-r--r-- | lib/python2.7/test/test_plistlib.py | 204 |
1 files changed, 0 insertions, 204 deletions
diff --git a/lib/python2.7/test/test_plistlib.py b/lib/python2.7/test/test_plistlib.py deleted file mode 100644 index 7859ad0..0000000 --- a/lib/python2.7/test/test_plistlib.py +++ /dev/null @@ -1,204 +0,0 @@ -# Copyright (C) 2003 Python Software Foundation - -import unittest -import plistlib -import os -import datetime -from test import test_support - - -# This test data was generated through Cocoa's NSDictionary class -TESTDATA = """<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" \ -"http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>aDate</key> - <date>2004-10-26T10:33:33Z</date> - <key>aDict</key> - <dict> - <key>aFalseValue</key> - <false/> - <key>aTrueValue</key> - <true/> - <key>aUnicodeValue</key> - <string>M\xc3\xa4ssig, Ma\xc3\x9f</string> - <key>anotherString</key> - <string><hello & 'hi' there!></string> - <key>deeperDict</key> - <dict> - <key>a</key> - <integer>17</integer> - <key>b</key> - <real>32.5</real> - <key>c</key> - <array> - <integer>1</integer> - <integer>2</integer> - <string>text</string> - </array> - </dict> - </dict> - <key>aFloat</key> - <real>0.5</real> - <key>aList</key> - <array> - <string>A</string> - <string>B</string> - <integer>12</integer> - <real>32.5</real> - <array> - <integer>1</integer> - <integer>2</integer> - <integer>3</integer> - </array> - </array> - <key>aString</key> - <string>Doodah</string> - <key>anInt</key> - <integer>728</integer> - <key>nestedData</key> - <array> - <data> - PGxvdHMgb2YgYmluYXJ5IGd1bms+AAECAzxsb3RzIG9mIGJpbmFyeSBndW5r - PgABAgM8bG90cyBvZiBiaW5hcnkgZ3Vuaz4AAQIDPGxvdHMgb2YgYmluYXJ5 - IGd1bms+AAECAzxsb3RzIG9mIGJpbmFyeSBndW5rPgABAgM8bG90cyBvZiBi - aW5hcnkgZ3Vuaz4AAQIDPGxvdHMgb2YgYmluYXJ5IGd1bms+AAECAzxsb3Rz - IG9mIGJpbmFyeSBndW5rPgABAgM8bG90cyBvZiBiaW5hcnkgZ3Vuaz4AAQID - PGxvdHMgb2YgYmluYXJ5IGd1bms+AAECAw== - </data> - </array> - <key>someData</key> - <data> - PGJpbmFyeSBndW5rPg== - </data> - <key>someMoreData</key> - <data> - PGxvdHMgb2YgYmluYXJ5IGd1bms+AAECAzxsb3RzIG9mIGJpbmFyeSBndW5rPgABAgM8 - bG90cyBvZiBiaW5hcnkgZ3Vuaz4AAQIDPGxvdHMgb2YgYmluYXJ5IGd1bms+AAECAzxs - b3RzIG9mIGJpbmFyeSBndW5rPgABAgM8bG90cyBvZiBiaW5hcnkgZ3Vuaz4AAQIDPGxv - dHMgb2YgYmluYXJ5IGd1bms+AAECAzxsb3RzIG9mIGJpbmFyeSBndW5rPgABAgM8bG90 - cyBvZiBiaW5hcnkgZ3Vuaz4AAQIDPGxvdHMgb2YgYmluYXJ5IGd1bms+AAECAw== - </data> - <key>\xc3\x85benraa</key> - <string>That was a unicode key.</string> -</dict> -</plist> -""".replace(" " * 8, "\t") # Apple as well as plistlib.py output hard tabs - - -class TestPlistlib(unittest.TestCase): - - def tearDown(self): - try: - os.unlink(test_support.TESTFN) - except: - pass - - def _create(self): - pl = dict( - aString="Doodah", - aList=["A", "B", 12, 32.5, [1, 2, 3]], - aFloat = 0.5, - anInt = 728, - aDict=dict( - anotherString="<hello & 'hi' there!>", - aUnicodeValue=u'M\xe4ssig, Ma\xdf', - aTrueValue=True, - aFalseValue=False, - deeperDict=dict(a=17, b=32.5, c=[1, 2, "text"]), - ), - someData = plistlib.Data("<binary gunk>"), - someMoreData = plistlib.Data("<lots of binary gunk>\0\1\2\3" * 10), - nestedData = [plistlib.Data("<lots of binary gunk>\0\1\2\3" * 10)], - aDate = datetime.datetime(2004, 10, 26, 10, 33, 33), - ) - pl[u'\xc5benraa'] = "That was a unicode key." - return pl - - def test_create(self): - pl = self._create() - self.assertEqual(pl["aString"], "Doodah") - self.assertEqual(pl["aDict"]["aFalseValue"], False) - - def test_io(self): - pl = self._create() - plistlib.writePlist(pl, test_support.TESTFN) - pl2 = plistlib.readPlist(test_support.TESTFN) - self.assertEqual(dict(pl), dict(pl2)) - - def test_string(self): - pl = self._create() - data = plistlib.writePlistToString(pl) - pl2 = plistlib.readPlistFromString(data) - self.assertEqual(dict(pl), dict(pl2)) - data2 = plistlib.writePlistToString(pl2) - self.assertEqual(data, data2) - - def test_indentation_array(self): - data = [[[[[[[[{'test': plistlib.Data(b'aaaaaa')}]]]]]]]] - self.assertEqual(plistlib.readPlistFromString(plistlib.writePlistToString(data)), data) - - def test_indentation_dict(self): - data = {'1': {'2': {'3': {'4': {'5': {'6': {'7': {'8': {'9': plistlib.Data(b'aaaaaa')}}}}}}}}} - self.assertEqual(plistlib.readPlistFromString(plistlib.writePlistToString(data)), data) - - def test_indentation_dict_mix(self): - data = {'1': {'2': [{'3': [[[[[{'test': plistlib.Data(b'aaaaaa')}]]]]]}]}} - self.assertEqual(plistlib.readPlistFromString(plistlib.writePlistToString(data)), data) - - def test_appleformatting(self): - pl = plistlib.readPlistFromString(TESTDATA) - data = plistlib.writePlistToString(pl) - self.assertEqual(data, TESTDATA, - "generated data was not identical to Apple's output") - - def test_appleformattingfromliteral(self): - pl = self._create() - pl2 = plistlib.readPlistFromString(TESTDATA) - self.assertEqual(dict(pl), dict(pl2), - "generated data was not identical to Apple's output") - - def test_stringio(self): - from StringIO import StringIO - f = StringIO() - pl = self._create() - plistlib.writePlist(pl, f) - pl2 = plistlib.readPlist(StringIO(f.getvalue())) - self.assertEqual(dict(pl), dict(pl2)) - - def test_cstringio(self): - from cStringIO import StringIO - f = StringIO() - pl = self._create() - plistlib.writePlist(pl, f) - pl2 = plistlib.readPlist(StringIO(f.getvalue())) - self.assertEqual(dict(pl), dict(pl2)) - - def test_controlcharacters(self): - for i in range(128): - c = chr(i) - testString = "string containing %s" % c - if i >= 32 or c in "\r\n\t": - # \r, \n and \t are the only legal control chars in XML - plistlib.writePlistToString(testString) - else: - self.assertRaises(ValueError, - plistlib.writePlistToString, - testString) - - 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(): - test_support.run_unittest(TestPlistlib) - - -if __name__ == '__main__': - test_main() |