def test_upload_epub_cover_formats(self): orig = self.verify_upload(os.path.join(base_path, 'files', 'book.epub')) original = self.check_element_on_page((By.ID, "detailcover")).screenshot_as_png self.delete_book(orig['id']) # check cover-image is detected epub_file = os.path.join(base_path, 'files', 'cover.epub') change_epub_meta(epub_file, meta={'title': "png Cover", 'creator': "Testo"}, item={'change': {"find_id": "cover", 'id':'cover-image', 'href': 'cover.png'}}) with open(os.path.join(base_path, 'files', 'cover.png'), "rb") as f: data = f.read() epub_png = os.path.join(base_path, 'files', 'png.epub') updateZip(epub_png, epub_file, 'cover.png', data) ci = self.verify_upload(epub_png) cover_image = self.check_element_on_page((By.ID, "detailcover")).screenshot_as_png self.delete_book(ci['id']) self.assertAlmostEqual(diff(BytesIO(original), BytesIO(cover_image), delete_diff_file=True), 0.0058, delta=0.0001) os.remove(epub_file) os.remove(epub_png)
def test_upload_epub_duplicate(self): epub_file = os.path.join(base_path, 'files', 'title.epub') change_epub_meta(epub_file, meta={'title': "Der titel", 'creator': "Kurt Hugo"}) self.goto_page('nav_new') upload = self.check_element_on_page((By.ID, 'btn-upload')) upload.send_keys(epub_file) time.sleep(3) self.check_element_on_page((By.ID, 'edit_cancel')).click() time.sleep(2) details = self.get_book_details() self.assertEqual('Der titel', details['title']) self.assertEqual('Kurt Hugo', details['author'][0]) upload = self.check_element_on_page((By.ID, 'btn-upload')) upload.send_keys(epub_file) time.sleep(3) self.assertTrue(self.check_element_on_page((By.ID, "flash_warning"))) self.check_element_on_page((By.ID, 'edit_cancel')).click() time.sleep(2) details2 = self.get_book_details() self.delete_book(details['id']) self.delete_book(details2['id']) os.remove(epub_file)
def test_rename_capital_on_upload(self): self.fill_basic_config({'config_uploading': 1}) time.sleep(3) self.assertTrue(self.check_element_on_page((By.ID, "flash_success"))) # Upload book with one author in database epub_file = os.path.join(base_path, 'files', 'title.epub') change_epub_meta(epub_file, meta={ 'title': "Useless", 'creator': "asterix Lionherd" }) self.goto_page('nav_new') upload = self.check_element_on_page((By.ID, 'btn-upload')) upload.send_keys(epub_file) time.sleep(3) self.check_element_on_page((By.ID, 'edit_cancel')).click() time.sleep(2) self.assertFalse(self.check_element_on_page((By.ID, "flash_danger"))) details = self.get_book_details() self.assertEqual('Useless', details['title']) self.assertEqual(['asterix Lionherd'], details['author']) self.assertTrue( os.path.isfile( os.path.join(TEST_DB, 'asterix Lionherd/comicdemo (3)', 'comicdemo - asterix Lionherd.cbr'))) self.assertTrue( os.path.isfile( os.path.join(TEST_DB, 'asterix Lionherd/comicdemo (3)', 'cover.jpg'))) ret_code, content = self.download_book(3, "admin", "admin123") self.assertEqual(200, ret_code) ret_code, content = self.download_book(details['id'], "admin", "admin123") self.assertEqual(200, ret_code) self.delete_book(details['id']) self.edit_book(3, content={'bookAuthor': "Asterix Lionherd"}) self.assertFalse(self.check_element_on_page((By.ID, "flash_danger"))) details = self.get_book_details(-1) self.assertEqual(['Asterix Lionherd'], details['author']) self.assertTrue( os.path.isfile( os.path.join(TEST_DB, 'Asterix Lionherd/comicdemo (3)', 'comicdemo - Asterix Lionherd.cbr'))) self.assertTrue( os.path.isfile( os.path.join(TEST_DB, 'Asterix Lionherd/comicdemo (3)', 'cover.jpg'))) # Upload book with one co-author in database change_epub_meta(epub_file, meta={ 'title': "Useless", 'creator': 'liu yang' }) self.goto_page('nav_new') upload = self.check_element_on_page((By.ID, 'btn-upload')) upload.send_keys(epub_file) time.sleep(3) self.check_element_on_page((By.ID, 'edit_cancel')).click() time.sleep(2) self.assertFalse(self.check_element_on_page((By.ID, "flash_danger"))) details = self.get_book_details() self.assertEqual('Useless', details['title']) self.assertEqual(['liu yang'], details['author']) ret_code, content = self.download_book(1, "admin", "admin123") self.assertEqual(200, ret_code) ret_code, content = self.download_book(details['id'], "admin", "admin123") self.assertEqual(200, ret_code) self.delete_book(details['id']) details = self.get_book_details(1) self.assertEqual([ 'Frodo Beutlin', 'Norbert Halagal', 'liu yang', 'Hector Gonçalves' ], details['author']) self.assertTrue( os.path.isfile( os.path.join(TEST_DB, 'Frodo Beutlin/Der Buchtitel (1)', 'Der Buchtitel - Frodo Beutlin.txt'))) self.assertFalse( os.path.isfile( os.path.join(TEST_DB, 'Frodo Beutlin/Der Buchtitel (1)', 'cover.jpg'))) self.edit_book( 1, content={ 'bookAuthor': "Frodo Beutlin & Norbert Halagal & Liu Yang & Hector Gonçalves" }) details = self.get_book_details(-1) self.assertEqual([ 'Frodo Beutlin', 'Norbert Halagal', 'Liu Yang', 'Hector Gonçalves' ], details['author']) # ToDo: Upload file with multiple existing authors self.fill_basic_config({'config_uploading': 0}) self.assertTrue(self.check_element_on_page((By.ID, "flash_success")))
def test_upload_epub_lang(self): epub_file = os.path.join(base_path, 'files', 'lang.epub') self.change_visibility_me({'locale': "Italiano"}) change_epub_meta(epub_file, meta={'title': "Langtest", 'creator': "Nobody Perfect", "language": "xx"}) details = self.verify_upload(epub_file, check_warning=True) self.assertEqual('Langtest', details['title']) self.assertEqual('Nobody Perfect', details['author'][0]) self.assertNotIn('languages', details) self.delete_book(details['id']) change_epub_meta(epub_file, meta={'title': "Langtest", 'creator': "Nobody Perfect", "language": "xyz"}) details = self.verify_upload(epub_file, check_warning=True) self.assertNotIn('languages', details) self.delete_book(details['id']) change_epub_meta(epub_file, meta={'title': "Langtest", 'creator': "Nobody Perfect", "language": "deu"}) details = self.verify_upload(epub_file) self.assertEqual('Tedesco', details['languages'][0]) list_element = self.goto_page("nav_lang") self.assertEqual('Tedesco', list_element[3].text) list_element[3].click() self.assertEqual("Lingua: Tedesco", self.driver.find_elements(By.TAG_NAME, "h2")[1].text) self.assertEqual(len(self.adv_search({u'include_language': u'Tedesco'})), 1) self.delete_book(details['id']) change_epub_meta(epub_file, meta={'title': "Langtest", 'creator': "Nobody Perfect", "language": "lat"}) details = self.verify_upload(epub_file) self.assertEqual('Latino', details['languages'][0]) list_element = self.goto_page("nav_lang") self.assertEqual('Latino', list_element[1].text) list_element[1].click() self.assertEqual("Lingua: Latino", self.driver.find_elements(By.TAG_NAME, "h2")[1].text) self.assertEqual(len(self.adv_search({u'include_language': u'Latino'})), 1) self.delete_book(details['id']) change_epub_meta(epub_file, meta={'title': "Langtest", 'creator': "Nobody Perfect", "language": "und"}) details = self.verify_upload(epub_file) self.assertEqual('Non determinato', details['languages'][0]) self.delete_book(details['id']) change_epub_meta(epub_file, meta={'title': "Langtest", 'creator': "Nobody Perfect", "language": "de"}) details = self.verify_upload(epub_file) self.assertEqual('Tedesco', details['languages'][0]) self.delete_book(details['id']) self.change_visibility_me({'locale': "English", "default_language": "Inglese"}) # Check uploaded book with applied visibility restriction is visible -> book language is changed details = self.verify_upload(epub_file) self.assertEqual('English', details['languages'][0]) self.delete_book(details['id']) self.change_visibility_me({'default_language': "Show All"}) os.remove(epub_file)
def test_upload_epub_cover(self): orig = self.verify_upload(os.path.join(base_path, 'files', 'book.epub')) original = self.check_element_on_page((By.ID, "detailcover")).screenshot_as_png self.delete_book(orig['id']) # check cover-image is detected epub_file = os.path.join(base_path, 'files', 'cover.epub') change_epub_meta(epub_file, meta={'title': "Coverimage", 'creator': "Testo"}, item={'change': {"find_id": "cover", 'id':'cover-image'}}) ci = self.verify_upload(epub_file) cover_image = self.check_element_on_page((By.ID, "detailcover")).screenshot_as_png self.delete_book(ci['id']) self.assertAlmostEqual(diff(BytesIO(original), BytesIO(cover_image), delete_diff_file=True), 0.0, delta=0.0001) # check if multiple cover-image ids are detected correct change_epub_meta(epub_file, meta={'title': "Multi Coverimage", 'creator': "Testo"}, meta_change={'create': {"name": "cover", 'content': "cover-image"}}, item={'change': {"find_id": "cover", 'id': 'cover-image', 'href': 'cover.html'}, 'create': {"id": "cover-image", 'href': 'cover.jpeg', 'media-type': 'image/jpeg'}}) ci = self.verify_upload(epub_file) cover_image = self.check_element_on_page((By.ID, "detailcover")).screenshot_as_png self.delete_book(ci['id']) self.assertAlmostEqual(diff(BytesIO(original), BytesIO(cover_image), delete_diff_file=True), 0.0, delta=0.0001) # check if properties as cover selector is detected with reference from meta change_epub_meta(epub_file, meta={'title': "Properties Cover", 'creator': "Testo"}, meta_change={'create': {"name": "cover", 'content': "cover-imag"}}, item={'delete': {"id": "cover"}, 'create': {"id": "id_Images_jpg", "properties": "cover-imag", 'href': 'cover.jpeg', 'media-type': 'image/jpeg'}}) ci = self.verify_upload(epub_file) cover_image = self.check_element_on_page((By.ID, "detailcover")).screenshot_as_png self.delete_book(ci['id']) self.assertAlmostEqual(diff(BytesIO(original), BytesIO(cover_image), delete_diff_file=True), 0.0, delta=0.0001) # check if content cover selector is detected with reference from meta change_epub_meta(epub_file, meta={'title': "Cover", 'creator': "Testo"}, meta_change={'create': {"name": "cover", 'content': "cover-imge"}}, item={'delete': {"id": "cover"}, 'create': {"id": "cover-imge", 'href': 'cover.jpeg', 'media-type': 'image/jpeg'}}) ci = self.verify_upload(epub_file) cover_image = self.check_element_on_page((By.ID, "detailcover")).screenshot_as_png self.delete_book(ci['id']) self.assertAlmostEqual(diff(BytesIO(original), BytesIO(cover_image), delete_diff_file=True), 0.0, delta=0.0001) # check if guide reference can act as cover with reference from meta change_epub_meta(epub_file, meta={'title': "Cover", 'creator': "Testo"}, item={'delete': {"id": "cover"}}, guide={'change': {"find_title": "Cover", "href": 'cover.jpeg'}}) ci = self.verify_upload(epub_file) cover_image = self.check_element_on_page((By.ID, "detailcover")).screenshot_as_png self.delete_book(ci['id']) self.assertAlmostEqual(diff(BytesIO(original), BytesIO(cover_image), delete_diff_file=True), 0.0, delta=0.0001) # check if multiple guide reference can act as cover with reference from meta change_epub_meta(epub_file, meta={'title': "Cover", 'creator': "Testo"}, item={'delete': {"id": "cover"}}, guide={'create': {"title": "Cover", "href": 'cover.jpeg'}}) ci = self.verify_upload(epub_file) cover_image = self.check_element_on_page((By.ID, "detailcover")).screenshot_as_png self.delete_book(ci['id']) self.assertAlmostEqual(diff(BytesIO(original), BytesIO(cover_image), delete_diff_file=True), 0.0, delta=0.0001) os.remove(epub_file)