mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Implement add_books()
This commit is contained in:
parent
7c9ae4ebc9
commit
20920b37b2
@ -1117,10 +1117,17 @@ class Cache(object):
|
|||||||
return book_id
|
return book_id
|
||||||
|
|
||||||
@write_api
|
@write_api
|
||||||
def add_books(self, books, add_duplicates=True):
|
def add_books(self, books, add_duplicates=True, apply_import_tags=True, preserve_uuid=False, dbapi=None):
|
||||||
duplicates, ids = [], []
|
duplicates, ids = [], []
|
||||||
for mi, format_map in books:
|
for mi, format_map in books:
|
||||||
pass
|
book_id = self._create_book_entry(mi, add_duplicates=add_duplicates, apply_import_tags=apply_import_tags, preserve_uuid=preserve_uuid)
|
||||||
|
if book_id is None:
|
||||||
|
duplicates.append((mi, format_map))
|
||||||
|
else:
|
||||||
|
ids.append(book_id)
|
||||||
|
for fmt, stream_or_path in format_map.iteritems():
|
||||||
|
self._add_format(book_id, fmt, stream_or_path, dbapi=dbapi)
|
||||||
|
return ids, duplicates
|
||||||
|
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
|
@ -188,3 +188,19 @@ class AddRemoveTest(BaseTest):
|
|||||||
self.assertEqual(mi.uuid, cache.field_for('uuid', book_id))
|
self.assertEqual(mi.uuid, cache.field_for('uuid', book_id))
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
|
def test_add_books(self): # {{{
|
||||||
|
'Test the adding of new books'
|
||||||
|
from calibre.ebooks.metadata.book.base import Metadata
|
||||||
|
cache = self.init_cache()
|
||||||
|
mi = Metadata('Created One', authors=('Creator One', 'Creator Two'))
|
||||||
|
FMT1, FMT2 = b'format1', b'format2'
|
||||||
|
format_map = {'FMT1':BytesIO(FMT1), 'FMT2':BytesIO(FMT2)}
|
||||||
|
ids, duplicates = cache.add_books([(mi, format_map)])
|
||||||
|
self.assertTrue(len(ids) == 1)
|
||||||
|
self.assertFalse(duplicates)
|
||||||
|
book_id = ids[0]
|
||||||
|
self.assertEqual(set(cache.formats(book_id)), {'FMT1', 'FMT2'})
|
||||||
|
self.assertEqual(cache.format(book_id, 'FMT1'), FMT1)
|
||||||
|
self.assertEqual(cache.format(book_id, 'FMT2'), FMT2)
|
||||||
|
# }}}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user