diff --git a/src/calibre/db/tests/base.py b/src/calibre/db/tests/base.py index b626551576..997745f97d 100644 --- a/src/calibre/db/tests/base.py +++ b/src/calibre/db/tests/base.py @@ -17,9 +17,12 @@ class BaseTest(unittest.TestCase): if LibraryDatabase2.exists_at(library_path): raise ValueError('A library already exists at %r'%library_path) src = os.path.join(os.path.dirname(__file__), 'metadata.db') - db = os.path.join(library_path, 'metadata.db') - shutil.copyfile(src, db) - return db + dest = os.path.join(library_path, 'metadata.db') + shutil.copyfile(src, dest) + db = LibraryDatabase2(library_path) + db.set_cover(1, I('lt.png', data=True)) + db.set_cover(2, I('polish.png', data=True)) + return dest def init_cache(self, library_path): from calibre.db.backend import DB @@ -35,8 +38,9 @@ class BaseTest(unittest.TestCase): self.assertEqual(allfk1, allfk2) all_keys = {'format_metadata', 'id', 'application_id', - 'author_sort_map', 'author_link_map', 'book_size', - 'ondevice_col', 'last_modified'}.union(allfk1) + 'author_sort_map', 'author_link_map', 'book_size', + 'ondevice_col', 'last_modified', 'has_cover', + 'cover_data'}.union(allfk1) for attr in all_keys: if attr == 'user_metadata': continue if attr == 'format_metadata': continue # TODO: Not implemented yet diff --git a/src/calibre/db/tests/reading.py b/src/calibre/db/tests/reading.py index 8c22f6f50e..d9cca41dba 100644 --- a/src/calibre/db/tests/reading.py +++ b/src/calibre/db/tests/reading.py @@ -178,13 +178,15 @@ class ReadingTest(BaseTest): old.add_format(i, 'text%d'%i, StringIO(b'random%d'%i), index_is_id=True) - old_metadata = {i:old.get_metadata(i, index_is_id=True) for i in + old_metadata = {i:old.get_metadata( + i, index_is_id=True, get_cover=True, cover_as_data=True) for i in xrange(1, 4)} old = None cache = self.init_cache(self.library_path) - new_metadata = {i:cache.get_metadata(i) for i in xrange(1, 4)} + new_metadata = {i:cache.get_metadata( + i, get_cover=True, cover_as_data=True) for i in xrange(1, 4)} cache = None for mi2, mi1 in zip(new_metadata.values(), old_metadata.values()): self.compare_metadata(mi1, mi2) diff --git a/src/calibre/library/database2.py b/src/calibre/library/database2.py index d01c943fce..892d5dfbde 100644 --- a/src/calibre/library/database2.py +++ b/src/calibre/library/database2.py @@ -1134,6 +1134,8 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): base_path = os.path.join(self.library_path, self.path(id, index_is_id=True)) self.dirtied([id]) + if not os.path.exists(base_path): + os.makedirs(base_path) path = os.path.join(base_path, 'cover.jpg')