diff --git a/cps/debug_info.py b/cps/debug_info.py index 3be607004..3907f2a75 100644 --- a/cps/debug_info.py +++ b/cps/debug_info.py @@ -74,7 +74,8 @@ def send_debug(): for fp in file_list: zf.write(fp, os.path.basename(fp)) memory_zip.seek(0) - if int(__version__.split('.')[0]) < 2: + version = importlib.metadata.version("flask") + if int(version.split('.')[0]) < 2: return send_file(memory_zip, as_attachment=True, attachment_filename="Calibre-Web-debug-pack.zip") diff --git a/cps/jinjia.py b/cps/jinjia.py index 80c2b7ea8..01abf5a6c 100644 --- a/cps/jinjia.py +++ b/cps/jinjia.py @@ -26,7 +26,6 @@ from markupsafe import escape import datetime import mimetypes from uuid import uuid4 -import re from flask import Blueprint, request, url_for from flask_babel import format_date diff --git a/cps/kobo.py b/cps/kobo.py index bd4deea50..03fc29c3c 100644 --- a/cps/kobo.py +++ b/cps/kobo.py @@ -150,15 +150,15 @@ def HandleSyncRequest(): # if no books synced don't respect sync_token if not ub.session.query(ub.KoboSyncedBooks).filter(ub.KoboSyncedBooks.user_id == current_user.id).count(): - sync_token.books_last_modified = datetime.datetime.min - sync_token.books_last_created = datetime.datetime.min - sync_token.reading_state_last_modified = datetime.datetime.min + sync_token.books_last_modified = datetime.min + sync_token.books_last_created = datetime.min + sync_token.reading_state_last_modified = datetime.min new_books_last_modified = sync_token.books_last_modified # needed for sync selected shelfs only new_books_last_created = sync_token.books_last_created # needed to distinguish between new and changed entitlement new_reading_state_last_modified = sync_token.reading_state_last_modified - new_archived_last_modified = datetime.datetime.min + new_archived_last_modified = datetime.min sync_results = [] # We reload the book database so that the user gets a fresh view of the library diff --git a/setup.cfg b/setup.cfg index 26eef25da..2d326d626 100644 --- a/setup.cfg +++ b/setup.cfg @@ -53,7 +53,7 @@ install_requires = unidecode>=0.04.19,<1.4.0 lxml>=4.9.1,<5.3.0 flask-wtf>=0.14.2,<1.3.0 - chardet>=3.0.0,<4.1.0 + chardet>=3.0.0,<5.3.0 advocate>=1.0.0,<1.1.0 Flask-Limiter>=2.3.0,<3.9.0 regex>=2022.3.2,<2024.6.25 @@ -100,6 +100,7 @@ metadata = beautifulsoup4>=4.0.1,<4.13.0 faust-cchardet>=2.1.18,<2.1.20 py7zr>=0.15.0,<0.21.0 + mutagen>=1.40.0,<1.50.0 comics = natsort>=2.2.0,<8.5.0 comicapi>=2.2.0,<3.3.0 diff --git a/test/Calibre-Web TestSummary_Linux.html b/test/Calibre-Web TestSummary_Linux.html index 3bd3a93d7..ccd12d1ba 100644 --- a/test/Calibre-Web TestSummary_Linux.html +++ b/test/Calibre-Web TestSummary_Linux.html @@ -37,20 +37,20 @@
Start Time: 2024-08-03 20:30:20
+Start Time: 2024-08-10 21:08:57
Stop Time: 2024-08-04 04:01:30
+Stop Time: 2024-08-11 04:24:46
Duration: 6h 17 min
+Duration: 6h 0 min
Traceback (most recent call last): + File "/home/ozzie/Development/calibre-web-test/test/test_ebook_convert_gdrive.py", line 452, in test_email_only + task_len, ret = self.wait_tasks(tasks, 1) + File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 1636, in wait_tasks + self.assertEqual(expected, task_len) +AssertionError: 1 != 2+
Traceback (most recent call last): - File "/home/ozzie/Development/calibre-web-test/test/test_ebook_convert_kepubify_gdrive.py", line 239, in test_convert_only - task_len, ret = self.wait_tasks(tasks, 1) - File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 1636, in wait_tasks - self.assertEqual(expected, task_len) -AssertionError: 1 != 3-
Traceback (most recent call last): + File "/home/ozzie/Development/calibre-web-test/test/test_edit_books.py", line 634, in test_edit_custom_float + self.assertEqual(u'-2.5', vals['cust_columns'][0]['value']) +AssertionError: '-2.5' != '-2.50' +- -2.5 ++ -2.50 +? ++
Traceback (most recent call last): + File "/home/ozzie/Development/calibre-web-test/test/test_edit_books.py", line 668, in test_edit_custom_int + self.assertEqual(0, len(vals['cust_columns'])) +AssertionError: 0 != 1+
Traceback (most recent call last): + File "/home/ozzie/Development/calibre-web-test/test/test_edit_books.py", line 550, in test_edit_custom_rating + self.assertEqual(0, len(vals['cust_columns'])) +AssertionError: 0 != 1+
Traceback (most recent call last): + File "/home/ozzie/Development/calibre-web-test/test/test_edit_books.py", line 559, in test_edit_custom_single_select + self.assertEqual(u'人物', vals['cust_columns'][0]['value']) +AssertionError: '人物' != '-2.50' +- 人物 ++ -2.50+
Traceback (most recent call last): + File "/home/ozzie/Development/calibre-web-test/test/test_edit_books.py", line 577, in test_edit_custom_text + self.assertEqual(u'Lulu 人 Ä', vals['cust_columns'][0]['value']) +AssertionError: 'Lulu 人 Ä' != '-2.50' +- Lulu 人 Ä ++ -2.50+
Traceback (most recent call last):
- File "/home/ozzie/Development/calibre-web-test/test/test_edit_books_author.py", line 62, in test_change_capital_one_author_one_book
- self.assertFalse('Leo Baskerville' in os.listdir(SMB_LIB))
-NameError: name 'SMB_LIB' is not defined
- Traceback (most recent call last):
- File "/home/ozzie/Development/calibre-web-test/test/test_edit_books_author.py", line 111, in test_change_capital_one_author_two_books
- self.assertFalse('Peter Parker' in os.listdir(SMB_LIB))
-NameError: name 'SMB_LIB' is not defined
- Traceback (most recent call last):
- File "/home/ozzie/Development/calibre-web-test/test/test_edit_books_author.py", line 164, in test_change_capital_one_author_two_books_coauthor
- self.assertFalse('Norbert Halagal' in os.listdir(SMB_LIB))
-NameError: name 'SMB_LIB' is not defined
- Traceback (most recent call last):
- File "/home/ozzie/Development/calibre-web-test/test/test_edit_books_author.py", line 294, in test_change_capital_rename_co_author
- self.assertFalse('Hector Gonçalves' in os.listdir(SMB_LIB))
-NameError: name 'SMB_LIB' is not defined
- Traceback (most recent call last): - File "/home/ozzie/Development/calibre-web-test/test/test_edit_books_metadata.py", line 69, in test_load_metadata - if 'https://comicvine.gamespot.com/' == results[10]['source']: + File "/home/ozzie/Development/calibre-web-test/test/test_edit_books_metadata.py", line 90, in test_load_metadata + elif len(results)>19 and 'https://amazon.com/' == results[20]['source']: IndexError: list index out of range
Traceback (most recent call last): + File "/home/ozzie/Development/calibre-web-test/test/test_edit_ebooks_gdrive.py", line 759, in test_edit_custom_float + self.assertEqual(u'-2.5', vals['cust_columns'][0]['value']) +AssertionError: '-2.5' != '-2.50' +- -2.5 ++ -2.50 +? ++
Traceback (most recent call last): + File "/home/ozzie/Development/calibre-web-test/test/test_edit_ebooks_gdrive.py", line 793, in test_edit_custom_int + self.assertEqual(0, len(vals['cust_columns'])) +AssertionError: 0 != 1+
Traceback (most recent call last): + File "/home/ozzie/Development/calibre-web-test/test/test_edit_ebooks_gdrive.py", line 700, in test_edit_custom_rating + self.assertEqual(0, len(vals['cust_columns'])) +AssertionError: 0 != 1+
Traceback (most recent call last): + File "/home/ozzie/Development/calibre-web-test/test/test_edit_ebooks_gdrive.py", line 708, in test_edit_custom_single_select + self.assertEqual(u'人物', vals['cust_columns'][0]['value']) +AssertionError: '人物' != '-2.50' +- 人物 ++ -2.50+
Traceback (most recent call last): + File "/home/ozzie/Development/calibre-web-test/test/test_edit_ebooks_gdrive.py", line 724, in test_edit_custom_text + self.assertEqual(u'Lulu 人 Ä', vals['cust_columns'][0]['value']) +AssertionError: 'Lulu 人 Ä' != '-2.50' +- Lulu 人 Ä ++ -2.50+
Traceback (most recent call last): - File "/home/ozzie/Development/calibre-web-test/test/test_edit_metadata_scholar.py", line 74, in test_load_metadata - self.assertEqual(30, len(results)) -AssertionError: 30 != 0-
Traceback (most recent call last): - File "/home/ozzie/Development/calibre-web-test/test/test_email_STARTTLS.py", line 83, in test_STARTTLS - task_len, ret = self.wait_tasks(tasks, 1) - File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 1636, in wait_tasks - self.assertEqual(expected, task_len) -AssertionError: 1 != 2-
Traceback (most recent call last): + File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 611, in test_book_download + data = self.inital_sync() + File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 123, in inital_sync + return self.sync_request(session) + File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 135, in sync_request + self.assertEqual(r.status_code, 200) +AssertionError: 500 != 200+
Traceback (most recent call last): + File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 630, in test_kobo_sync_selected_shelfs + data = self.inital_sync() + File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 123, in inital_sync + return self.sync_request(session) + File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 135, in sync_request + self.assertEqual(r.status_code, 200) +AssertionError: 500 != 200+
Traceback (most recent call last): + File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 464, in test_shelves_add_remove_books + self.inital_sync() + File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 123, in inital_sync + return self.sync_request(session) + File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 135, in sync_request + self.assertEqual(r.status_code, 200) +AssertionError: 500 != 200+
Traceback (most recent call last): + File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 293, in test_sync_changed_book + self.inital_sync() + File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 123, in inital_sync + return self.sync_request(session) + File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 135, in sync_request + self.assertEqual(r.status_code, 200) +AssertionError: 500 != 200+
Traceback (most recent call last): + File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 532, in test_sync_reading_state + self.inital_sync() + File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 123, in inital_sync + return self.sync_request(session) + File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 135, in sync_request + self.assertEqual(r.status_code, 200) +AssertionError: 500 != 200+
Traceback (most recent call last): + File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 312, in test_sync_shelf + self.inital_sync() + File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 123, in inital_sync + return self.sync_request(session) + File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 135, in sync_request + self.assertEqual(r.status_code, 200) +AssertionError: 500 != 200+
Traceback (most recent call last): + File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 258, in test_sync_unchanged + self.inital_sync() + File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 123, in inital_sync + return self.sync_request(session) + File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 135, in sync_request + self.assertEqual(r.status_code, 200) +AssertionError: 500 != 200+
Traceback (most recent call last): + File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 272, in test_sync_upload + self.inital_sync() + File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 123, in inital_sync + return self.sync_request(session) + File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 135, in sync_request + self.assertEqual(r.status_code, 200) +AssertionError: 500 != 200+
Traceback (most recent call last): + File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync_big.py", line 484, in test_download_cover + books = self.inital_sync() + File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync_big.py", line 129, in inital_sync + self.assertEqual(r.status_code, 200) +AssertionError: 500 != 200+
Traceback (most recent call last): + File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync_big.py", line 359, in test_kobo_sync_multi_user + self.inital_sync(user1_kobo) + File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync_big.py", line 129, in inital_sync + self.assertEqual(r.status_code, 200) +AssertionError: 500 != 200+
Traceback (most recent call last): + File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync_big.py", line 277, in test_kobo_sync_selected_shelves + self.inital_sync() + File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync_big.py", line 129, in inital_sync + self.assertEqual(r.status_code, 200) +AssertionError: 500 != 200+
Traceback (most recent call last): + File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync_big.py", line 179, in test_sync_changed_book + self.inital_sync() + File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync_big.py", line 129, in inital_sync + self.assertEqual(r.status_code, 200) +AssertionError: 500 != 200+
Traceback (most recent call last): + File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync_big.py", line 254, in test_sync_reading_state + self.inital_sync() + File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync_big.py", line 129, in inital_sync + self.assertEqual(r.status_code, 200) +AssertionError: 500 != 200+
Traceback (most recent call last): + File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync_big.py", line 210, in test_sync_shelf + self.inital_sync() + File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync_big.py", line 129, in inital_sync + self.assertEqual(r.status_code, 200) +AssertionError: 500 != 200+
Traceback (most recent call last): + File "/home/ozzie/Development/calibre-web-test/test/test_logging.py", line 256, in test_debuginfo_download + self.assertEqual(resp.headers['Content-Type'], 'application/zip') +AssertionError: 'text/html; charset=utf-8' != 'application/zip' +- text/html; charset=utf-8 ++ application/zip+
ImportError: Failed to import test module: test_upload_audio +Traceback (most recent call last): + File "/usr/lib/python3.10/unittest/loader.py", line 436, in _find_test_path + module = self._get_module_from_name(name) + File "/usr/lib/python3.10/unittest/loader.py", line 377, in _get_module_from_name + __import__(name) + File "/home/ozzie/Development/calibre-web-test/test/test_upload_audio.py", line 17, in <module> + import mutagen +ModuleNotFoundError: No module named 'mutagen'+
Traceback (most recent call last): - File "/home/ozzie/Development/calibre-web-test/test/test_user_list.py", line 161, in test_user_list_edit_button - self.assertTrue(self.check_element_on_page((By.ID, "user_delete_selection")), "Press cancel in User edit leads not back to user table") -AssertionError: False is not true : Press cancel in User edit leads not back to user table-
Traceback (most recent call last):
- File "/home/ozzie/Development/calibre-web-test/test/test_visiblilitys.py", line 480, in test_admin_add_user
- self.assertIsNone("Error creating new users")
-AssertionError: 'Error creating new users' is not None
+ File "/home/ozzie/Development/calibre-web-test/test/test_visiblilitys.py", line 993, in test_hide_custom_column
+ self.assertEqual(details['cust_columns'][4]['value'], '3.5')
+AssertionError: '3.50' != '3.5'
+- 3.50
+? -
++ 3.5
Traceback (most recent call last): + File "/home/ozzie/Development/calibre-web-test/test/test_visiblilitys.py", line 821, in test_link_column_to_read_status + self.assertEqual(details['cust_columns'][0]['value'], 'remove') +AssertionError: '5' != 'remove' +- 5 ++ remove+