Mercurial > cpython-lru_cache-weakref
diff Lib/test/test_bytes.py @ 41425:0486deaaade3
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__.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Wed, 11 Apr 2007 04:37:43 +0000 |
| parents | 522b3f35d0eb |
| children | d1c3dd184e38 |
line wrap: on
line diff
--- a/Lib/test/test_bytes.py Wed Apr 11 01:09:03 2007 +0000 +++ b/Lib/test/test_bytes.py Wed Apr 11 04:37:43 2007 +0000 @@ -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 @@ 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 @@ # 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.
