[Python-checkins] r88548 - in python/branches/release32-maint: Lib/test/pickletester.py Lib/test/test_pickle.py Lib/test/test_pickletools.py Modules/_pickle.c
alexander.belopolsky
python-checkins at python.org
Thu Feb 24 21:34:39 CET 2011
Author: alexander.belopolsky
Date: Thu Feb 24 21:34:38 2011
New Revision: 88548
Log:
Merged revisions 88546 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r88546 | alexander.belopolsky | 2011-02-24 14:40:09 -0500 (Thu, 24 Feb 2011) | 3 lines
Issue #11286: Fixed unpickling of empty 2.x strings.
........
Modified:
python/branches/release32-maint/ (props changed)
python/branches/release32-maint/Lib/test/pickletester.py
python/branches/release32-maint/Lib/test/test_pickle.py
python/branches/release32-maint/Lib/test/test_pickletools.py
python/branches/release32-maint/Modules/_pickle.c
Modified: python/branches/release32-maint/Lib/test/pickletester.py
==============================================================================
--- python/branches/release32-maint/Lib/test/pickletester.py (original)
+++ python/branches/release32-maint/Lib/test/pickletester.py Thu Feb 24 21:34:38 2011
@@ -1093,6 +1093,10 @@
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
Modified: python/branches/release32-maint/Lib/test/test_pickle.py
==============================================================================
--- python/branches/release32-maint/Lib/test/test_pickle.py (original)
+++ python/branches/release32-maint/Lib/test/test_pickle.py Thu Feb 24 21:34:38 2011
@@ -31,9 +31,9 @@
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 @@
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 @@
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()
Modified: python/branches/release32-maint/Lib/test/test_pickletools.py
==============================================================================
--- python/branches/release32-maint/Lib/test/test_pickletools.py (original)
+++ python/branches/release32-maint/Lib/test/test_pickletools.py Thu Feb 24 21:34:38 2011
@@ -9,8 +9,8 @@
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
Modified: python/branches/release32-maint/Modules/_pickle.c
==============================================================================
--- python/branches/release32-maint/Modules/_pickle.c (original)
+++ python/branches/release32-maint/Modules/_pickle.c Thu Feb 24 21:34:38 2011
@@ -977,11 +977,6 @@
{
Py_ssize_t num_read;
- if (n == 0) {
- *s = NULL;
- return 0;
- }
-
if (self->next_read_idx + n <= self->input_len) {
*s = self->input_buffer + self->next_read_idx;
self->next_read_idx += n;
More information about the Python-checkins
mailing list