mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Fix copy to library not copying extra files
There was a bug in the test as well that allowed this bug through.
This commit is contained in:
parent
0805fa23f2
commit
464030a796
@ -105,7 +105,7 @@ def copy_one_book(
|
||||
bp = db.field_for('path', book_id)
|
||||
if bp:
|
||||
for (relpath, src_path, mtime) in db.backend.iter_extra_files(book_id, bp, db.fields['formats'], yield_paths=True):
|
||||
nbp = newdb.field_for('path', book_id)
|
||||
nbp = newdb.field_for('path', new_book_id)
|
||||
if nbp:
|
||||
newdb.backend.add_extra_file(relpath, src_path, nbp)
|
||||
postprocess_copy(book_id, new_book_id, new_authors, db, newdb, identical_books_data, duplicate_action)
|
||||
|
@ -405,6 +405,7 @@ class AddRemoveTest(BaseTest):
|
||||
compare_field('uuid', self.assertNotEqual)
|
||||
self.assertEqual(src_db.all_annotations_for_book(1), dest_db.all_annotations_for_book(max(dest_db.all_book_ids())))
|
||||
rdata = copy_one_book(1, src_db, dest_db, preserve_date=False, preserve_uuid=True)
|
||||
data_file_new_book_id = rdata['new_book_id']
|
||||
self.assertEqual(rdata, make_rdata(new_book_id=max(dest_db.all_book_ids())))
|
||||
compare_field('timestamp', self.assertNotEqual)
|
||||
compare_field('uuid')
|
||||
@ -426,7 +427,7 @@ class AddRemoveTest(BaseTest):
|
||||
for new_book_id in (1, 4, 5):
|
||||
self.assertEqual(dest_db.format(new_book_id, 'FMT1'), b'replaced')
|
||||
self.assertEqual(dest_db.format(rdata['new_book_id'], 'FMT1'), b'second-round')
|
||||
bookdir = os.path.dirname(dest_db.format_abspath(1, '__COVER_INTERNAL__'))
|
||||
bookdir = os.path.dirname(dest_db.format_abspath(data_file_new_book_id, '__COVER_INTERNAL__'))
|
||||
self.assertEqual('exf', open(os.path.join(bookdir, 'exf')).read())
|
||||
self.assertEqual('recurse', open(os.path.join(bookdir, 'sub', 'recurse')).read())
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user