diff options
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/plistlib.py | 4 | ||||
-rw-r--r-- | Lib/test/test_plistlib.py | 12 |
2 files changed, 14 insertions, 2 deletions
diff --git a/Lib/plistlib.py b/Lib/plistlib.py index 41fd8f2..2b0b634 100644 --- a/Lib/plistlib.py +++ b/Lib/plistlib.py @@ -228,8 +228,8 @@ class PlistWriter(DumbXMLWriter): def writeData(self, data): self.beginElement("data") self.indentLevel -= 1 - maxlinelength = 76 - len(self.indent.replace(b"\t", b" " * 8) * - self.indentLevel) + maxlinelength = max(16, 76 - len(self.indent.replace(b"\t", b" " * 8) * + self.indentLevel)) for line in data.asBase64(maxlinelength).split(b"\n"): if line: self.writeln(line) diff --git a/Lib/test/test_plistlib.py b/Lib/test/test_plistlib.py index a9e343e..9e86b3d 100644 --- a/Lib/test/test_plistlib.py +++ b/Lib/test/test_plistlib.py @@ -141,6 +141,18 @@ class TestPlistlib(unittest.TestCase): data2 = plistlib.writePlistToBytes(pl2) self.assertEqual(data, data2) + def test_indentation_array(self): + data = [[[[[[[[{'test': plistlib.Data(b'aaaaaa')}]]]]]]]] + self.assertEqual(plistlib.readPlistFromBytes(plistlib.writePlistToBytes(data)), data) + + def test_indentation_dict(self): + data = {'1': {'2': {'3': {'4': {'5': {'6': {'7': {'8': {'9': plistlib.Data(b'aaaaaa')}}}}}}}}} + self.assertEqual(plistlib.readPlistFromBytes(plistlib.writePlistToBytes(data)), data) + + def test_indentation_dict_mix(self): + data = {'1': {'2': [{'3': [[[[[{'test': plistlib.Data(b'aaaaaa')}]]]]]}]}} + self.assertEqual(plistlib.readPlistFromBytes(plistlib.writePlistToBytes(data)), data) + def test_appleformatting(self): pl = plistlib.readPlistFromBytes(TESTDATA) data = plistlib.writePlistToBytes(pl) |