diff options
author | Guido van Rossum <guido@python.org> | 2007-04-11 04:37:43 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 2007-04-11 04:37:43 (GMT) |
commit | 0ad0812edb3b4023f3e410243c007fba3f84a9ff (patch) | |
tree | 23d6a6d06f6cbebbf8cf0f54508b68dc826ff791 /Lib/test/test_bytes.py | |
parent | 9b76da6a8f93c0211a97187f000b693d0cdc6638 (diff) | |
download | cpython-0ad0812edb3b4023f3e410243c007fba3f84a9ff.zip cpython-0ad0812edb3b4023f3e410243c007fba3f84a9ff.tar.gz cpython-0ad0812edb3b4023f3e410243c007fba3f84a9ff.tar.bz2 |
An example of action-at-a-distance: fix the problems I had in test_io.py
without touching io.py or test_io.py. The cause of the failure was that
bytes objects didn't pickle right. As a stop-gap measure, I'm providing
bytes pickling via copy_reg. Eventually, we should use a more efficient
protocol, e.g. __reduce_ex__ or __getstate__/__setstate__.
Diffstat (limited to 'Lib/test/test_bytes.py')
-rw-r--r-- | Lib/test/test_bytes.py | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/Lib/test/test_bytes.py b/Lib/test/test_bytes.py index e90bcee..682f5d7 100644 --- a/Lib/test/test_bytes.py +++ b/Lib/test/test_bytes.py @@ -3,6 +3,8 @@ import os import re import sys +import pickle +import cPickle import tempfile import unittest import test.test_support @@ -633,6 +635,14 @@ class BytesTest(unittest.TestCase): self.assertEqual(b.rpartition(b'ss'), (b'missi', b'ss', b'ippi')) self.assertEqual(b.rpartition(b'i'), (b'mississipp', b'i', b'')) + def test_pickling(self): + for pm in pickle, cPickle: + for proto in range(pm.HIGHEST_PROTOCOL): + for b in b"", b"a", b"abc", b"\xffab\x80", b"\0\0\377\0\0": + ps = pm.dumps(b, proto) + q = pm.loads(ps) + self.assertEqual(b, q) + # Optimizations: # __iter__? (optimization) # __reversed__? (optimization) @@ -640,8 +650,6 @@ class BytesTest(unittest.TestCase): # XXX Some string methods? (Those that don't use character properties) # lstrip, rstrip, strip?? (currently un-pepped) # join - - # XXX pickle and marshal support? # There are tests in string_tests.py that are more # comprehensive for things like split, partition, etc. |