diff options
Diffstat (limited to 'Lib/test/pickletester.py')
-rw-r--r-- | Lib/test/pickletester.py | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/Lib/test/pickletester.py b/Lib/test/pickletester.py index 5d983eb..f4e3f81 100644 --- a/Lib/test/pickletester.py +++ b/Lib/test/pickletester.py @@ -2097,20 +2097,21 @@ class AbstractPickleTests(unittest.TestCase): N = 1024 * 1024 obj = [b'x' * N, b'y' * N, 'z' * N] for proto in range(4, pickle.HIGHEST_PROTOCOL + 1): - for fast in [True, False]: + for fast in [False, True]: with self.subTest(proto=proto, fast=fast): - if hasattr(self, 'pickler'): + if not fast: + # fast=False by default. + # This covers in-memory pickling with pickle.dumps(). + pickled = self.dumps(obj, proto) + else: + # Pickler is required when fast=True. + if not hasattr(self, 'pickler'): + continue buf = io.BytesIO() pickler = self.pickler(buf, protocol=proto) pickler.fast = fast pickler.dump(obj) pickled = buf.getvalue() - elif fast: - continue - else: - # Fallback to self.dumps when fast=False and - # self.pickler is not available. - pickled = self.dumps(obj, proto) unpickled = self.loads(pickled) # More informative error message in case of failure. self.assertEqual([len(x) for x in obj], |