From 607965eb7e11b9405e23175d1f8aee3647425a80 Mon Sep 17 00:00:00 2001 From: Barry Warsaw Date: Mon, 11 Jan 2016 14:44:59 -0500 Subject: Comment out two tests that won't pass now after reverting the typeobject.c change. Also, as per further discussion, we'll just remove the regressing code in typeobject.c --- Lib/test/test_buffer.py | 11 ++++++----- Lib/test/test_memoryview.py | 11 ++++++----- Misc/NEWS | 2 +- Objects/typeobject.c | 24 ------------------------ 4 files changed, 13 insertions(+), 35 deletions(-) diff --git a/Lib/test/test_buffer.py b/Lib/test/test_buffer.py index ccfd1e9..de80d44 100644 --- a/Lib/test/test_buffer.py +++ b/Lib/test/test_buffer.py @@ -42,11 +42,12 @@ class BufferTests(unittest.TestCase): with self.assertRaises(TypeError): copy.copy(buf) - def test_pickle(self): - buf = buffer(b'abc') - for proto in range(pickle.HIGHEST_PROTOCOL + 1): - with self.assertRaises(TypeError): - pickle.dumps(buf, proto) + # See issue #22995 + ## def test_pickle(self): + ## buf = buffer(b'abc') + ## for proto in range(pickle.HIGHEST_PROTOCOL + 1): + ## with self.assertRaises(TypeError): + ## pickle.dumps(buf, proto) def test_main(): diff --git a/Lib/test/test_memoryview.py b/Lib/test/test_memoryview.py index bc83247..4407af8 100644 --- a/Lib/test/test_memoryview.py +++ b/Lib/test/test_memoryview.py @@ -362,11 +362,12 @@ class OtherTest(unittest.TestCase): with self.assertRaises(TypeError): copy.copy(m) - def test_pickle(self): - m = memoryview(b'abc') - for proto in range(pickle.HIGHEST_PROTOCOL + 1): - with self.assertRaises(TypeError): - pickle.dumps(m, proto) + # See issue #22995 + ## def test_pickle(self): + ## m = memoryview(b'abc') + ## for proto in range(pickle.HIGHEST_PROTOCOL + 1): + ## with self.assertRaises(TypeError): + ## pickle.dumps(m, proto) def test_main(): diff --git a/Misc/NEWS b/Misc/NEWS index bda940f..f74c184 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -10,7 +10,7 @@ What's New in Python 2.7.12? Core and Builtins ----------------- -- Issue #22995: [UPDATE] Comment out the one of the pickleability tests in +- Issue #22995: [UPDATE] Remove the one of the pickleability tests in _PyObject_GetState() due to regressions observed in Cython-based projects. - Issue #25961: Disallowed null characters in the type name. diff --git a/Objects/typeobject.c b/Objects/typeobject.c index 1ddcc59..8a5623f 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -3279,30 +3279,6 @@ reduce_2(PyObject *obj) if (names == NULL) goto end; assert(names == Py_None || PyList_Check(names)); -#if 0 - /* 2016-01-11 barry - This clause breaks at least three packages which - rely on Cython: kivy, pysam, and s3ql. Cython may be doing - something funny under the hood, but as this is clearly a regression - and the rationale for this prohibition is suspect, I am commenting - this out. Perhaps it should just be removed. See issue #22995 for - details. - */ - if (required_state) { - Py_ssize_t basicsize = PyBaseObject_Type.tp_basicsize; - if (obj->ob_type->tp_dictoffset) - basicsize += sizeof(PyObject *); - if (obj->ob_type->tp_weaklistoffset) - basicsize += sizeof(PyObject *); - if (names != Py_None) - basicsize += sizeof(PyObject *) * Py_SIZE(names); - if (obj->ob_type->tp_basicsize > basicsize) { - PyErr_Format(PyExc_TypeError, - "can't pickle %.200s objects", - Py_TYPE(obj)->tp_name); - goto end; - } - } -#endif if (names != Py_None) { slots = PyDict_New(); -- cgit v0.12