From e64ff83e070b21461e119f913837c7ea361feeff Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 7 Jul 2013 11:44:30 +0530 Subject: [PATCH] Legacy implementations of a few direct methods --- src/calibre/db/legacy.py | 3 +++ src/calibre/db/tests/legacy.py | 16 ++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/src/calibre/db/legacy.py b/src/calibre/db/legacy.py index 287d2d47db..2ad5da61b8 100644 --- a/src/calibre/db/legacy.py +++ b/src/calibre/db/legacy.py @@ -58,6 +58,9 @@ class LibraryDatabase(object): setattr(self, prop, partial(self.get_property, loc=self.FIELD_MAP[fm])) + for meth in ('get_next_series_num_for', 'has_book', 'author_sort_from_authors'): + setattr(self, meth, getattr(self.new_api, meth)) + self.last_update_check = self.last_modified() def close(self): diff --git a/src/calibre/db/tests/legacy.py b/src/calibre/db/tests/legacy.py index 1fe719e31e..ae99d8190f 100644 --- a/src/calibre/db/tests/legacy.py +++ b/src/calibre/db/tests/legacy.py @@ -103,6 +103,22 @@ class LegacyTest(BaseTest): # }}} + def test_legacy_direct(self): # {{{ + 'Test methods that are directly equivalent in the old and new interface' + from calibre.ebooks.metadata.book.base import Metadata + ndb = self.init_legacy() + db = self.init_old() + for meth, args in { + 'get_next_series_num_for': [('A Series One',)], + 'author_sort_from_authors': [(['Author One', 'Author Two', 'Unknown'],)], + 'has_book':[(Metadata('title one'),), (Metadata('xxxx1111'),)], + }.iteritems(): + for a in args: + self.assertEqual(getattr(db, meth)(*a), getattr(ndb, meth)(*a), + 'The method: %s() returned different results for argument %s' % (meth, a)) + db.close() + # }}} + def test_legacy_coverage(self): # {{{ ' Check that the emulation of the legacy interface is (almost) total ' cl = self.cloned_library