diff --git a/cps/opds.py b/cps/opds.py index c5be8cd8d..329a6a0e5 100644 --- a/cps/opds.py +++ b/cps/opds.py @@ -438,7 +438,6 @@ def feed_shelf(book_id): @opds.route("/opds/download///") @requires_basic_auth_if_no_ano def opds_download_link(book_id, book_format): - return abort(401) if not auth.current_user().role_download(): return abort(401) client = "kobo" if "Kobo" in request.headers.get('User-Agent') else "" diff --git a/test/Calibre-Web TestSummary_Linux.html b/test/Calibre-Web TestSummary_Linux.html index d6831bdc3..8a59cf232 100644 --- a/test/Calibre-Web TestSummary_Linux.html +++ b/test/Calibre-Web TestSummary_Linux.html @@ -37,20 +37,20 @@
-

Start Time: 2025-12-06 19:29:38

+

Start Time: 2025-12-15 19:42:30

-

Stop Time: 2025-12-07 02:46:00

+

Stop Time: 2025-12-16 03:03:48

-

Duration: 6h 5 min

+

Duration: 6h 4 min

@@ -102,11 +102,11 @@ - + TestAnonymous 13 - 13 - 0 + 12 + 1 0 0 @@ -197,11 +197,33 @@ - +
TestAnonymous - test_guest_change_visibility_series
- PASS + +
+ FAIL +
+ + + + @@ -1670,11 +1692,11 @@ - + TestEditAuthorsGdrive 7 - 7 - 0 + 6 + 1 0 0 @@ -1711,11 +1733,38 @@ - +
TestEditAuthorsGdrive - test_change_capital_one_author_two_books_coauthor
- PASS + +
+ FAIL +
+ + + + @@ -2280,9 +2329,9 @@
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 != 20
+ File "/home/ozzie/Development/calibre-web-test/test/test_edit_metadata_scholar.py", line 65, in test_load_metadata + self.assertTrue(google_scholar) +AssertionError: False is not true
@@ -2736,11 +2785,11 @@ IndexError: list index out of range - + TestKoboSync 12 - 12 - 0 + 11 + 1 0 0 @@ -2831,11 +2880,31 @@ IndexError: list index out of range - +
TestKoboSync - test_sync_shelf
- PASS + +
+ FAIL +
+ + + + @@ -2928,12 +2997,12 @@ IndexError: list index out of range - + TestLdapLogin 13 - 13 - 0 - 0 + 11 + 1 + 1 0 Detail @@ -3041,20 +3110,71 @@ IndexError: list index out of range - +
TestLdapLogin - test_ldap_opds_anonymous
- PASS + +
+ FAIL +
+ + + + - +
TestLdapLogin - test_ldap_opds_download_book
- PASS + +
+ ERROR +
+ + + + @@ -3767,12 +3887,12 @@ IndexError: list index out of range - + TestOPDSFeed 26 - 26 - 0 - 0 + 20 + 4 + 2 0 Detail @@ -3853,11 +3973,31 @@ IndexError: list index out of range - +
TestOPDSFeed - test_opds_download_book
- PASS + +
+ FAIL +
+ + + + @@ -3871,20 +4011,60 @@ IndexError: list index out of range - +
TestOPDSFeed - test_opds_guest_user
- PASS + +
+ FAIL +
+ + + + - +
TestOPDSFeed - test_opds_hot
- PASS + +
+ FAIL +
+ + + + @@ -3943,11 +4123,31 @@ IndexError: list index out of range - +
TestOPDSFeed - test_opds_search
- PASS + +
+ FAIL +
+ + + + @@ -3997,32 +4197,90 @@ IndexError: list index out of range - +
TestOPDSFeed - test_opds_unicode_user
- PASS + +
+ ERROR +
+ + + + - +
TestOPDSFeed - test_recently_added
- PASS + +
+ ERROR +
+ + + + - + TestUploadPDF 1 - 0 1 0 0 + 0 Detail @@ -4030,33 +4288,11 @@ IndexError: list index out of range - +
TestUploadPDF - test_upload_invalid_pdf
- -
- FAIL -
- - - - + PASS @@ -4365,8 +4601,8 @@ AssertionError: False is not true TestShelf 17 - 15 - 1 + 14 + 2 0 1 @@ -4477,11 +4713,31 @@ AssertionError: 7 != 2 - +
TestShelf - test_public_shelf
- PASS + +
+ FAIL +
+ + + + @@ -4726,11 +4982,11 @@ AssertionError: 7 != 2 - + TestThumbnails 8 - 6 - 1 + 7 + 0 0 1 @@ -4803,31 +5059,11 @@ AssertionError: 7 != 2 - +
TestThumbnails - test_sideloaded_book
- -
- FAIL -
- - - - + PASS @@ -4949,8 +5185,8 @@ AssertionError: 0.049274509803921576 != 0.0 within 0.0001 delta (0.0492745098039 TestUploadAudio 12 - 1 - 11 + 5 + 7 0 0 @@ -4960,31 +5196,11 @@ AssertionError: 0.049274509803921576 != 0.0 within 0.0001 delta (0.0492745098039 - +
TestUploadAudio - test_upload_aac
- -
- FAIL -
- - - - + PASS @@ -5006,7 +5222,7 @@ AssertionError: 0.0026100147661403746 != 0.0 within 0.001 delta (0.0026100147661
Traceback (most recent call last):
-  File "/home/ozzie/Development/calibre-web-test/test/test_upload_audio.py", line 251, in test_upload_aiff
+  File "/home/ozzie/Development/calibre-web-test/test/test_upload_audio.py", line 252, in test_upload_aiff
     self.assertAlmostEqual(diff(BytesIO(self.png_original), BytesIO(cover_image), delete_diff_file=True), 0.0, delta=0.001)
 AssertionError: 0.004005578839723024 != 0.0 within 0.001 delta (0.004005578839723024 difference)
@@ -5018,31 +5234,11 @@ AssertionError: 0.004005578839723024 != 0.0 within 0.001 delta (0.00400557883972 - +
TestUploadAudio - test_upload_asf
- -
- FAIL -
- - - - + PASS @@ -5064,7 +5260,7 @@ AssertionError: 0.0026100147661403746 != 0.0 within 0.001 delta (0.0026100147661
Traceback (most recent call last):
-  File "/home/ozzie/Development/calibre-web-test/test/test_upload_audio.py", line 379, in test_upload_flac
+  File "/home/ozzie/Development/calibre-web-test/test/test_upload_audio.py", line 380, in test_upload_flac
     self.assertAlmostEqual(diff(BytesIO(self.png_original), BytesIO(cover_image), delete_diff_file=True), 0.0, delta=0.001)
 AssertionError: 0.004005578839723024 != 0.0 within 0.001 delta (0.004005578839723024 difference)
@@ -5076,60 +5272,20 @@ AssertionError: 0.004005578839723024 != 0.0 within 0.001 delta (0.00400557883972 - +
TestUploadAudio - test_upload_m4a
- -
- FAIL -
- - - - + PASS - +
TestUploadAudio - test_upload_m4b
- -
- FAIL -
- - - - + PASS @@ -5151,7 +5307,7 @@ AssertionError: 0.0026100147661403746 != 0.0 within 0.001 delta (0.0026100147661
Traceback (most recent call last):
-  File "/home/ozzie/Development/calibre-web-test/test/test_upload_audio.py", line 120, in test_upload_mp3
+  File "/home/ozzie/Development/calibre-web-test/test/test_upload_audio.py", line 121, in test_upload_mp3
     self.assertAlmostEqual(diff(BytesIO(self.png_original), BytesIO(cover_image), delete_diff_file=True), 0.0, delta=0.006)
 AssertionError: 0.0075997182498730486 != 0.0 within 0.006 delta (0.0075997182498730486 difference)
@@ -5180,7 +5336,7 @@ AssertionError: 0.0075997182498730486 != 0.0 within 0.006 delta (0.0075997182498
Traceback (most recent call last):
-  File "/home/ozzie/Development/calibre-web-test/test/test_upload_audio.py", line 525, in test_upload_mp4
+  File "/home/ozzie/Development/calibre-web-test/test/test_upload_audio.py", line 526, in test_upload_mp4
     self.assertAlmostEqual(diff(BytesIO(self.png_original), BytesIO(cover_image), delete_diff_file=True), 0.0, delta=0.001)
 AssertionError: 0.004005578839723024 != 0.0 within 0.001 delta (0.004005578839723024 difference)
@@ -5209,7 +5365,7 @@ AssertionError: 0.004005578839723024 != 0.0 within 0.001 delta (0.00400557883972
Traceback (most recent call last):
-  File "/home/ozzie/Development/calibre-web-test/test/test_upload_audio.py", line 316, in test_upload_oggvorbis
+  File "/home/ozzie/Development/calibre-web-test/test/test_upload_audio.py", line 317, in test_upload_oggvorbis
     self.assertAlmostEqual(diff(BytesIO(self.png_original), BytesIO(cover_image), delete_diff_file=True), 0.0, delta=0.001)
 AssertionError: 0.004005578839723024 != 0.0 within 0.001 delta (0.004005578839723024 difference)
@@ -5238,7 +5394,7 @@ AssertionError: 0.004005578839723024 != 0.0 within 0.001 delta (0.00400557883972
Traceback (most recent call last):
-  File "/home/ozzie/Development/calibre-web-test/test/test_upload_audio.py", line 710, in test_upload_ogv
+  File "/home/ozzie/Development/calibre-web-test/test/test_upload_audio.py", line 711, in test_upload_ogv
     self.assertAlmostEqual(diff(BytesIO(self.png_original), BytesIO(cover_image), delete_diff_file=True), 0.0, delta=0.001)
 AssertionError: 0.004005578839723024 != 0.0 within 0.001 delta (0.004005578839723024 difference)
@@ -5267,7 +5423,7 @@ AssertionError: 0.004005578839723024 != 0.0 within 0.001 delta (0.00400557883972
Traceback (most recent call last):
-  File "/home/ozzie/Development/calibre-web-test/test/test_upload_audio.py", line 655, in test_upload_opus
+  File "/home/ozzie/Development/calibre-web-test/test/test_upload_audio.py", line 656, in test_upload_opus
     self.assertAlmostEqual(diff(BytesIO(self.png_original), BytesIO(cover_image), delete_diff_file=True), 0.0, delta=0.001)
 AssertionError: 0.004005578839723024 != 0.0 within 0.001 delta (0.004005578839723024 difference)
@@ -5292,8 +5448,8 @@ AssertionError: 0.004005578839723024 != 0.0 within 0.001 delta (0.00400557883972 TestUploadEPubs 6 - 4 - 2 + 5 + 1 0 0 @@ -5321,31 +5477,11 @@ AssertionError: 0.004005578839723024 != 0.0 within 0.001 delta (0.00400557883972 - +
TestUploadEPubs - test_upload_epub_cover_formats
- -
- FAIL -
- - - - + PASS @@ -6294,9 +6430,9 @@ AssertionError: 12 != 1 Total 538 - 513 - 17 - 1 + 508 + 19 + 4 7   @@ -6325,7 +6461,7 @@ AssertionError: 12 != 1 Platform - Linux 6.8.0-88-generic #89-Ubuntu SMP PREEMPT_DYNAMIC Sat Oct 11 01:02:46 UTC 2025 x86_64 x86_64 + Linux 6.8.0-90-generic #91-Ubuntu SMP PREEMPT_DYNAMIC Tue Nov 18 14:14:30 UTC 2025 x86_64 x86_64 Basic @@ -6439,7 +6575,7 @@ AssertionError: 12 != 1 pypdf - 6.4.0 + 6.4.2 Basic @@ -6469,13 +6605,13 @@ AssertionError: 12 != 1 SQLAlchemy - 2.0.44 + 2.0.45 Basic tornado - 6.5.2 + 6.5.3 Basic @@ -6487,7 +6623,7 @@ AssertionError: 12 != 1 urllib3 - 2.6.0 + 2.6.2 Basic @@ -6823,7 +6959,7 @@ AssertionError: 12 != 1 SQLAlchemy-Utils - 0.42.0 + 0.42.1 TestOAuthLogin @@ -6847,7 +6983,7 @@ AssertionError: 12 != 1