From a8b29afc5097a0226e293e76fe111508b1555f0a Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 1 May 2017 13:45:43 +0530 Subject: [PATCH] Add test for serialization of field metadata --- src/calibre/db/tests/reading.py | 5 +++++ src/calibre/library/field_metadata.py | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/calibre/db/tests/reading.py b/src/calibre/db/tests/reading.py index 5a88f79f46..d89daeaff3 100644 --- a/src/calibre/db/tests/reading.py +++ b/src/calibre/db/tests/reading.py @@ -239,7 +239,12 @@ class ReadingTest(BaseTest): def test_serialize_metadata(self): # {{{ from calibre.utils.serialize import json_dumps, json_loads, msgpack_dumps, msgpack_loads + from calibre.library.field_metadata import fm_as_dict cache = self.init_cache(self.library_path) + fm = cache.field_metadata + for d, l in ((json_dumps, json_loads), (msgpack_dumps, msgpack_loads)): + fm2 = l(d(fm)) + self.assertEqual(fm_as_dict(fm), fm_as_dict(fm2)) for i in xrange(1, 4): mi = cache.get_metadata(i, get_cover=True, cover_as_data=True) rmi = msgpack_loads(msgpack_dumps(mi)) diff --git a/src/calibre/library/field_metadata.py b/src/calibre/library/field_metadata.py index 54b66d76a0..aa98e05f37 100644 --- a/src/calibre/library/field_metadata.py +++ b/src/calibre/library/field_metadata.py @@ -433,10 +433,10 @@ class FieldMetadata(object): def __eq__(self, other): if not isinstance(other, FieldMetadata): return False - for attr in ('_tb_cats', '_tb_custom_fields', '_search_term_map', 'custom_label_to_key_map', 'custom_field_prefix'): + for attr in ('_tb_custom_fields', '_search_term_map', 'custom_label_to_key_map', 'custom_field_prefix'): if getattr(self, attr) != getattr(other, attr): return False - return True + return dict(self._tb_cats) == dict(other._tb_cats) def __ne__(self, other): return not self.__eq__(other)