diff options
author | Alexander Belopolsky <alexander.belopolsky@gmail.com> | 2011-02-24 19:40:09 (GMT) |
---|---|---|
committer | Alexander Belopolsky <alexander.belopolsky@gmail.com> | 2011-02-24 19:40:09 (GMT) |
commit | 1ce92dc20d698ce46c3459da7801c76bb8518550 (patch) | |
tree | 26455f0ab85013e2095744fa179ae197500bd1aa /Lib | |
parent | 6c3787cb70d8efa5f70939a5db300f56a724d698 (diff) | |
download | cpython-1ce92dc20d698ce46c3459da7801c76bb8518550.zip cpython-1ce92dc20d698ce46c3459da7801c76bb8518550.tar.gz cpython-1ce92dc20d698ce46c3459da7801c76bb8518550.tar.bz2 |
Issue #11286: Fixed unpickling of empty 2.x strings.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/pickletester.py | 4 | ||||
-rw-r--r-- | Lib/test/test_pickle.py | 12 | ||||
-rw-r--r-- | Lib/test/test_pickletools.py | 4 |
3 files changed, 12 insertions, 8 deletions
diff --git a/Lib/test/pickletester.py b/Lib/test/pickletester.py index 3534489..c2fe633 100644 --- a/Lib/test/pickletester.py +++ b/Lib/test/pickletester.py @@ -1094,6 +1094,10 @@ class AbstractPickleTests(unittest.TestCase): self.assertEqual(len(loaded), len(data)) self.assertEqual(loaded, data) + def test_empty_bytestring(self): + # issue 11286 + empty = self.loads(b'\x80\x03U\x00q\x00.', encoding='koi8-r') + self.assertEqual(empty, '') # Test classes for reduce_ex diff --git a/Lib/test/test_pickle.py b/Lib/test/test_pickle.py index 7f642c8..a3878fd 100644 --- a/Lib/test/test_pickle.py +++ b/Lib/test/test_pickle.py @@ -31,9 +31,9 @@ class PyPicklerTests(AbstractPickleTests): f.seek(0) return bytes(f.read()) - def loads(self, buf): + def loads(self, buf, **kwds): f = io.BytesIO(buf) - u = self.unpickler(f) + u = self.unpickler(f, **kwds) return u.load() @@ -45,8 +45,8 @@ class InMemoryPickleTests(AbstractPickleTests): def dumps(self, arg, proto=None): return pickle.dumps(arg, proto) - def loads(self, buf): - return pickle.loads(buf) + def loads(self, buf, **kwds): + return pickle.loads(buf, **kwds) class PyPersPicklerTests(AbstractPersistentPicklerTests): @@ -64,12 +64,12 @@ class PyPersPicklerTests(AbstractPersistentPicklerTests): f.seek(0) return f.read() - def loads(self, buf): + def loads(self, buf, **kwds): class PersUnpickler(self.unpickler): def persistent_load(subself, obj): return self.persistent_load(obj) f = io.BytesIO(buf) - u = PersUnpickler(f) + u = PersUnpickler(f, **kwds) return u.load() diff --git a/Lib/test/test_pickletools.py b/Lib/test/test_pickletools.py index 823b0c2..d37ac26 100644 --- a/Lib/test/test_pickletools.py +++ b/Lib/test/test_pickletools.py @@ -9,8 +9,8 @@ class OptimizedPickleTests(AbstractPickleTests, AbstractPickleModuleTests): def dumps(self, arg, proto=None): return pickletools.optimize(pickle.dumps(arg, proto)) - def loads(self, buf): - return pickle.loads(buf) + def loads(self, buf, **kwds): + return pickle.loads(buf, **kwds) # Test relies on precise output of dumps() test_pickle_to_2x = None |