mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
More tests for the insane EPUB cover semantics
This commit is contained in:
parent
2788b5e099
commit
1ff02ee830
@ -6,6 +6,7 @@ from __future__ import (unicode_literals, division, absolute_import,
|
|||||||
print_function)
|
print_function)
|
||||||
from io import BytesIO
|
from io import BytesIO
|
||||||
from itertools import count
|
from itertools import count
|
||||||
|
from functools import partial
|
||||||
from zipfile import ZipFile, ZIP_STORED
|
from zipfile import ZipFile, ZIP_STORED
|
||||||
import os
|
import os
|
||||||
from calibre.ebooks.oeb.polish.tests.base import BaseTest
|
from calibre.ebooks.oeb.polish.tests.base import BaseTest
|
||||||
@ -96,18 +97,19 @@ class Structure(BaseTest):
|
|||||||
|
|
||||||
def test_epub3_covers(self):
|
def test_epub3_covers(self):
|
||||||
# cover image
|
# cover image
|
||||||
c = self.create_epub([cmi('c.jpg')])
|
ce = partial(self.create_epub, ver=3)
|
||||||
|
c = ce([cmi('c.jpg')])
|
||||||
self.assertIsNone(find_cover_image(c))
|
self.assertIsNone(find_cover_image(c))
|
||||||
c = self.create_epub([cmi('c.jpg')], meta_cover='c.jpg')
|
c = ce([cmi('c.jpg')], meta_cover='c.jpg')
|
||||||
self.assertEqual('c.jpg', find_cover_image(c))
|
self.assertEqual('c.jpg', find_cover_image(c))
|
||||||
c = self.create_epub([cmi('c.jpg', b'z', 'cover-image'), cmi('d.jpg')], meta_cover='d.jpg')
|
c = ce([cmi('c.jpg', b'z', 'cover-image'), cmi('d.jpg')], meta_cover='d.jpg')
|
||||||
self.assertEqual('c.jpg', find_cover_image(c))
|
self.assertEqual('c.jpg', find_cover_image(c))
|
||||||
mark_as_cover(c, 'd.jpg')
|
mark_as_cover(c, 'd.jpg')
|
||||||
self.assertEqual('d.jpg', find_cover_image(c))
|
self.assertEqual('d.jpg', find_cover_image(c))
|
||||||
self.assertFalse(c.opf_xpath('//*/@name'))
|
self.assertFalse(c.opf_xpath('//*/@name'))
|
||||||
|
|
||||||
# title page
|
# title page
|
||||||
c = self.create_epub([cmi('c.html'), cmi('a.html')])
|
c = ce([cmi('c.html'), cmi('a.html')])
|
||||||
self.assertIsNone(find_cover_page(c))
|
self.assertIsNone(find_cover_page(c))
|
||||||
mark_as_titlepage(c, 'a.html', move_to_start=False)
|
mark_as_titlepage(c, 'a.html', move_to_start=False)
|
||||||
self.assertEqual('a.html', find_cover_page(c))
|
self.assertEqual('a.html', find_cover_page(c))
|
||||||
@ -117,7 +119,7 @@ class Structure(BaseTest):
|
|||||||
self.assertEqual('a.html', next(c.spine_names)[0])
|
self.assertEqual('a.html', next(c.spine_names)[0])
|
||||||
|
|
||||||
# clean opf of all cover information
|
# clean opf of all cover information
|
||||||
c = self.create_epub([cmi('c.jpg', b'z', 'cover-image'), cmi('c.html', b'', 'calibre:title-page'), cmi('d.html')],
|
c = ce([cmi('c.jpg', b'z', 'cover-image'), cmi('c.html', b'', 'calibre:title-page'), cmi('d.html')],
|
||||||
meta_cover='c.jpg', guide=[('c.jpg', 'cover'), ('d.html', 'cover')])
|
meta_cover='c.jpg', guide=[('c.jpg', 'cover'), ('d.html', 'cover')])
|
||||||
self.assertEqual(set(clean_opf(c)), {'c.jpg', 'c.html', 'd.html'})
|
self.assertEqual(set(clean_opf(c)), {'c.jpg', 'c.html', 'd.html'})
|
||||||
self.assertFalse(c.opf_xpath('//*/@name'))
|
self.assertFalse(c.opf_xpath('//*/@name'))
|
||||||
@ -125,3 +127,25 @@ class Structure(BaseTest):
|
|||||||
for prop in 'cover-image calibre:title-page'.split():
|
for prop in 'cover-image calibre:title-page'.split():
|
||||||
self.assertEqual([], list(c.manifest_items_with_property(prop)))
|
self.assertEqual([], list(c.manifest_items_with_property(prop)))
|
||||||
|
|
||||||
|
def test_epub2_covers(self):
|
||||||
|
# cover image
|
||||||
|
ce = partial(self.create_epub, ver=2)
|
||||||
|
c = ce([cmi('c.jpg')])
|
||||||
|
self.assertIsNone(find_cover_image(c))
|
||||||
|
c = ce([cmi('c.jpg')], meta_cover='c.jpg')
|
||||||
|
self.assertEqual('c.jpg', find_cover_image(c))
|
||||||
|
c = ce([cmi('c.jpg'), cmi('d.jpg')], guide=[('c.jpg', 'cover')])
|
||||||
|
self.assertEqual('c.jpg', find_cover_image(c))
|
||||||
|
mark_as_cover(c, 'd.jpg')
|
||||||
|
self.assertEqual('d.jpg', find_cover_image(c))
|
||||||
|
self.assertEqual({'cover':'d.jpg'}, c.guide_type_map)
|
||||||
|
|
||||||
|
# title page
|
||||||
|
c = ce([cmi('c.html'), cmi('a.html')])
|
||||||
|
self.assertIsNone(find_cover_page(c))
|
||||||
|
mark_as_titlepage(c, 'a.html', move_to_start=False)
|
||||||
|
self.assertEqual('a.html', find_cover_page(c))
|
||||||
|
self.assertEqual('c.html', next(c.spine_names)[0])
|
||||||
|
mark_as_titlepage(c, 'a.html', move_to_start=True)
|
||||||
|
self.assertEqual('a.html', find_cover_page(c))
|
||||||
|
self.assertEqual('a.html', next(c.spine_names)[0])
|
||||||
|
Loading…
x
Reference in New Issue
Block a user