From 79037fcbf14e5a986c54ab8bf2a33336db834a17 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 7 Mar 2018 12:47:36 +0530 Subject: [PATCH] Fix pickle_binary_string Also change the conversion tests to use binary strings --- src/calibre/db/tests/writing.py | 2 +- src/calibre/utils/__init__.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/calibre/db/tests/writing.py b/src/calibre/db/tests/writing.py index 526e541e3c..0dccfc4da6 100644 --- a/src/calibre/db/tests/writing.py +++ b/src/calibre/db/tests/writing.py @@ -444,7 +444,7 @@ class WritingTest(BaseTest): all_ids = cache.all_book_ids() self.assertFalse(cache.has_conversion_options(all_ids)) self.assertIsNone(cache.conversion_options(1)) - op1, op2 = {'xx':'yy'}, {'yy':'zz'} + op1, op2 = b"{'xx':'yy'}", b"{'yy':'zz'}" cache.set_conversion_options({1:op1, 2:op2}) self.assertTrue(cache.has_conversion_options(all_ids)) self.assertEqual(cache.conversion_options(1), op1) diff --git a/src/calibre/utils/__init__.py b/src/calibre/utils/__init__.py index cef9aefa5e..070191dd1d 100644 --- a/src/calibre/utils/__init__.py +++ b/src/calibre/utils/__init__.py @@ -47,6 +47,6 @@ def unpickle_binary_string(data): def pickle_binary_string(data): # Maintains compatibility with python's pickle module protocol version 2 import struct - from pickle import PROTO, BINSTRING + from pickle import PROTO, BINSTRING, STOP data = bytes(data) - return PROTO + b'\x1b' + BINSTRING + struct.pack(b'