1
0
mirror of https://github.com/janeczku/calibre-web synced 2024-12-18 06:00:32 +00:00

Bugfixes from testrun

This commit is contained in:
Ozzie Isaacs 2024-08-19 19:21:44 +02:00
parent fd730f6609
commit 839118e4f1
6 changed files with 232 additions and 323 deletions

View File

@ -455,7 +455,7 @@ def do_edit_book(book_id, upload_formats=None):
# Update folder of book on local disk # Update folder of book on local disk
edited_books_id = None edited_books_id = None
title_author_error = None title_author_error = None
upload_mode = False # upload_mode = False
# handle book title change # handle book title change
if "title" in to_save: if "title" in to_save:
title_change = handle_title_on_edit(book, to_save["title"]) title_change = handle_title_on_edit(book, to_save["title"])
@ -1005,7 +1005,7 @@ def edit_book_ratings(to_save, book):
def edit_book_tags(tags, book): def edit_book_tags(tags, book):
if tags: if tags is not None:
input_tags = tags.split(',') input_tags = tags.split(',')
input_tags = list(map(lambda it: strip_whitespaces(it), input_tags)) input_tags = list(map(lambda it: strip_whitespaces(it), input_tags))
# Remove duplicates # Remove duplicates
@ -1014,7 +1014,7 @@ def edit_book_tags(tags, book):
return False return False
def edit_book_series(series, book): def edit_book_series(series, book):
if series: if series is not None:
input_series = [strip_whitespaces(series)] input_series = [strip_whitespaces(series)]
input_series = [x for x in input_series if x != ''] input_series = [x for x in input_series if x != '']
return modify_database_object(input_series, book.series, db.Series, calibre_db.session, 'series') return modify_database_object(input_series, book.series, db.Series, calibre_db.session, 'series')
@ -1054,10 +1054,13 @@ def edit_book_comments(comments, book):
def edit_book_languages(languages, book, upload_mode=False, invalid=None): def edit_book_languages(languages, book, upload_mode=False, invalid=None):
if languages: if languages is not None:
input_languages = languages.split(',') input_languages = languages.split(',')
unknown_languages = [] unknown_languages = []
if not upload_mode:
input_l = isoLanguages.get_language_code_from_name(get_locale(), input_languages, unknown_languages) input_l = isoLanguages.get_language_code_from_name(get_locale(), input_languages, unknown_languages)
else:
input_l = isoLanguages.get_valid_language_codes_from_code(get_locale(), input_languages, unknown_languages)
for lang in unknown_languages: for lang in unknown_languages:
log.error("'%s' is not a valid language", lang) log.error("'%s' is not a valid language", lang)
if isinstance(invalid, list): if isinstance(invalid, list):
@ -1078,7 +1081,7 @@ def edit_book_languages(languages, book, upload_mode=False, invalid=None):
def edit_book_publisher(publishers, book): def edit_book_publisher(publishers, book):
if publishers: if publishers is not None:
changed = False changed = False
if publishers: if publishers:
publisher = strip_whitespaces(publishers) publisher = strip_whitespaces(publishers)
@ -1169,7 +1172,7 @@ def edit_cc_data(book_id, book, to_save, cc):
changed = False changed = False
for c in cc: for c in cc:
cc_string = "custom_column_" + str(c.id) cc_string = "custom_column_" + str(c.id)
if to_save.get(cc_string): if to_save.get(cc_string) is not None:
if not c.is_multiple: if not c.is_multiple:
if len(getattr(book, cc_string)) > 0: if len(getattr(book, cc_string)) > 0:
cc_db_value = getattr(book, cc_string)[0].value cc_db_value = getattr(book, cc_string)[0].value
@ -1279,11 +1282,11 @@ def upload_book_formats(requested_files, book, book_id, no_cover=True):
rar_executable=config.config_rarfile_location, rar_executable=config.config_rarfile_location,
no_cover=no_cover) no_cover=no_cover)
merge_metadata(book, meta, to_save) merge_metadata(book, meta, to_save)
if to_save.get('languages'): #if to_save.get('languages'):
langs = [] # langs = []
for lang_code in to_save['languages']: # for lang_code in to_save['languages'].split(','):
langs.append(isoLanguages.get_language_name(get_locale(), lang_code)) # langs.append(isoLanguages.get_language_name(get_locale(), lang_code))
to_save['languages'] = ",".join(langs) # to_save['languages'] = ",".join(langs)
return to_save, error return to_save, error

View File

@ -265,7 +265,7 @@ def render_adv_search_results(term, offset=None, order=None, limit=None):
pub_end = term.get("publishend") pub_end = term.get("publishend")
rating_low = term.get("ratinghigh") rating_low = term.get("ratinghigh")
rating_high = term.get("ratinglow") rating_high = term.get("ratinglow")
description = term.get("comments") description = term.get("comment")
read_status = term.get("read_status") read_status = term.get("read_status")
if author_name: if author_name:
author_name = strip_whitespaces(author_name).lower().replace(',', '|') author_name = strip_whitespaces(author_name).lower().replace(',', '|')

View File

@ -151,8 +151,8 @@
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="comments">{{_('Description')}}</label> <label for="comment">{{_('Description')}}</label>
<input type="text" class="form-control" name="comments" id="comments" value=""> <input type="text" class="form-control" name="comment" id="comment" value="">
</div> </div>
{% if cc|length > 0 %} {% if cc|length > 0 %}

View File

@ -3,7 +3,7 @@ Babel>=1.3,<3.0
Flask-Babel>=0.11.1,<4.1.0 Flask-Babel>=0.11.1,<4.1.0
Flask-Principal>=0.3.2,<0.5.1 Flask-Principal>=0.3.2,<0.5.1
Flask>=1.0.2,<3.1.0 Flask>=1.0.2,<3.1.0
# iso-639>=0.4.5,<0.5.0 # alternative pycountry iso-639>=0.4.5,<0.5.0
PyPDF>=3.15.6,<4.3.0 PyPDF>=3.15.6,<4.3.0
pytz>=2016.10 pytz>=2016.10
requests>=2.28.0,<2.32.0 requests>=2.28.0,<2.32.0

View File

@ -101,6 +101,7 @@ metadata =
faust-cchardet>=2.1.18,<2.1.20 faust-cchardet>=2.1.18,<2.1.20
py7zr>=0.15.0,<0.21.0 py7zr>=0.15.0,<0.21.0
mutagen>=1.40.0,<1.50.0 mutagen>=1.40.0,<1.50.0
pycountry>=20.0.0,<25.0.0
comics = comics =
natsort>=2.2.0,<8.5.0 natsort>=2.2.0,<8.5.0
comicapi>=2.2.0,<3.3.0 comicapi>=2.2.0,<3.3.0

View File

@ -37,20 +37,20 @@
<div class="row"> <div class="row">
<div class="col-xs-6 col-md-6 col-sm-offset-3" style="margin-top:50px;"> <div class="col-xs-6 col-md-6 col-sm-offset-3" style="margin-top:50px;">
<p class='text-justify attribute'><strong>Start Time: </strong>2024-08-16 21:16:11</p> <p class='text-justify attribute'><strong>Start Time: </strong>2024-08-20 20:27:17</p>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-xs-6 col-md-6 col-sm-offset-3"> <div class="col-xs-6 col-md-6 col-sm-offset-3">
<p class='text-justify attribute'><strong>Stop Time: </strong>2024-08-17 04:31:06</p> <p class='text-justify attribute'><strong>Stop Time: </strong>2024-08-21 03:36:02</p>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-xs-6 col-md-6 col-sm-offset-3"> <div class="col-xs-6 col-md-6 col-sm-offset-3">
<p class='text-justify attribute'><strong>Duration: </strong>6h 5 min</p> <p class='text-justify attribute'><strong>Duration: </strong>6h 2 min</p>
</div> </div>
</div> </div>
</div> </div>
@ -852,11 +852,11 @@
<tr id="su" class="failClass"> <tr id="su" class="passClass">
<td>TestEbookConvertCalibreGDrive</td> <td>TestEbookConvertCalibreGDrive</td>
<td class="text-center">7</td> <td class="text-center">7</td>
<td class="text-center">6</td> <td class="text-center">7</td>
<td class="text-center">1</td> <td class="text-center">0</td>
<td class="text-center">0</td> <td class="text-center">0</td>
<td class="text-center">0</td> <td class="text-center">0</td>
<td class="text-center"> <td class="text-center">
@ -920,31 +920,11 @@
<tr id="ft9.7" class="none bg-danger"> <tr id='pt9.7' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestEbookConvertCalibreGDrive - test_thumbnail_cache</div> <div class='testcase'>TestEbookConvertCalibreGDrive - test_thumbnail_cache</div>
</td> </td>
<td colspan='6'> <td colspan='6' align='center'>PASS</td>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_ft9.7')">FAIL</a>
</div>
<!--css div popup start-->
<div id="div_ft9.7" class="popup_window test_output" style="display:block;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus="this.blur();"
onclick="document.getElementById('div_ft9.7').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Traceback (most recent call last):
File &#34;/home/ozzie/Development/calibre-web-test/test/test_ebook_convert_gdrive.py&#34;, line 495, in test_thumbnail_cache
self.assertEqual(count_files(thumbnail_cache_path), 30)
AssertionError: 25 != 30</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr> </tr>
@ -1043,12 +1023,12 @@ AssertionError: 25 != 30</pre>
<tr id="su" class="errorClass"> <tr id="su" class="skipClass">
<td>TestEditAdditionalBooks</td> <td>TestEditAdditionalBooks</td>
<td class="text-center">20</td> <td class="text-center">20</td>
<td class="text-center">16</td> <td class="text-center">18</td>
<td class="text-center">0</td>
<td class="text-center">0</td> <td class="text-center">0</td>
<td class="text-center">2</td>
<td class="text-center">2</td> <td class="text-center">2</td>
<td class="text-center"> <td class="text-center">
<a onclick="showClassDetail('c12', 20)">Detail</a> <a onclick="showClassDetail('c12', 20)">Detail</a>
@ -1084,76 +1064,20 @@ AssertionError: 25 != 30</pre>
<tr id="et12.4" class="none bg-info"> <tr id='pt12.4' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestEditAdditionalBooks - test_delete_role</div> <div class='testcase'>TestEditAdditionalBooks - test_delete_role</div>
</td> </td>
<td colspan='6'> <td colspan='6' align='center'>PASS</td>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_et12.4')">ERROR</a>
</div>
<!--css div popup start-->
<div id="div_et12.4" class="popup_window test_output" style="display:block;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus="this.blur();"
onclick="document.getElementById('div_et12.4').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Traceback (most recent call last):
File &#34;/home/ozzie/Development/calibre-web-test/test/test_edit_additional_books.py&#34;, line 765, in test_delete_role
submit.click()
File &#34;/home/ozzie/Development/calibre-web-test/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webelement.py&#34;, line 93, in click
self._execute(Command.CLICK_ELEMENT)
File &#34;/home/ozzie/Development/calibre-web-test/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webelement.py&#34;, line 403, in _execute
return self._parent.execute(command, params)
File &#34;/home/ozzie/Development/calibre-web-test/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py&#34;, line 440, in execute
self.error_handler.check_response(response)
File &#34;/home/ozzie/Development/calibre-web-test/venv/lib/python3.10/site-packages/selenium/webdriver/remote/errorhandler.py&#34;, line 245, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementClickInterceptedException: Message: Element &lt;button id=&#34;submit&#34; class=&#34;btn btn-default&#34; type=&#34;submit&#34;&gt; is not clickable at point (688,665) because another element &lt;div class=&#34;modal-backdrop fade in&#34;&gt; obscures it
Stacktrace:
RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8
WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:193:5
ElementClickInterceptedError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:337:5
webdriverClickElement@chrome://remote/content/marionette/interaction.sys.mjs:177:11
interaction.clickElement@chrome://remote/content/marionette/interaction.sys.mjs:136:11
clickElement@chrome://remote/content/marionette/actors/MarionetteCommandsChild.sys.mjs:205:29
receiveMessage@chrome://remote/content/marionette/actors/MarionetteCommandsChild.sys.mjs:85:31</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr> </tr>
<tr id="et12.5" class="none bg-info"> <tr id='pt12.5' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestEditAdditionalBooks - test_details_popup</div> <div class='testcase'>TestEditAdditionalBooks - test_details_popup</div>
</td> </td>
<td colspan='6'> <td colspan='6' align='center'>PASS</td>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_et12.5')">ERROR</a>
</div>
<!--css div popup start-->
<div id="div_et12.5" class="popup_window test_output" style="display:block;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus="this.blur();"
onclick="document.getElementById('div_et12.5').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Traceback (most recent call last):
File &#34;/home/ozzie/Development/calibre-web-test/test/test_edit_additional_books.py&#34;, line 918, in test_details_popup
books[1][0][&#39;ele&#39;].click()
IndexError: list index out of range</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr> </tr>
@ -1772,11 +1696,11 @@ IndexError: list index out of range</pre>
<tr id="su" class="failClass"> <tr id="su" class="passClass">
<td>TestEditAuthorsGdrive</td> <td>TestEditAuthorsGdrive</td>
<td class="text-center">7</td> <td class="text-center">7</td>
<td class="text-center">6</td> <td class="text-center">7</td>
<td class="text-center">1</td> <td class="text-center">0</td>
<td class="text-center">0</td> <td class="text-center">0</td>
<td class="text-center">0</td> <td class="text-center">0</td>
<td class="text-center"> <td class="text-center">
@ -1840,38 +1764,11 @@ IndexError: list index out of range</pre>
<tr id="ft15.7" class="none bg-danger"> <tr id='pt15.7' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestEditAuthorsGdrive - test_rename_capital_on_upload</div> <div class='testcase'>TestEditAuthorsGdrive - test_rename_capital_on_upload</div>
</td> </td>
<td colspan='6'> <td colspan='6' align='center'>PASS</td>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_ft15.7')">FAIL</a>
</div>
<!--css div popup start-->
<div id="div_ft15.7" class="popup_window test_output" style="display:block;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus="this.blur();"
onclick="document.getElementById('div_ft15.7').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Traceback (most recent call last):
File &#34;/home/ozzie/Development/calibre-web-test/test/test_edit_books_author_gdrive.py&#34;, line 608, in test_rename_capital_on_upload
self.assertEqual([&#39;Frodo Beutlin&#39;, &#39;Norbert Halagal&#39;, &#39;Liu Yang&#39;, &#39;Hector Gonçalves&#39;], details[&#39;author&#39;])
AssertionError: Lists differ: [&#39;Frodo Beutlin&#39;, &#39;Norbert Halagal&#39;, &#39;Liu Yang&#39;, &#39;Hector Gonçalves&#39;] != []
First list contains 4 additional elements.
First extra element 0:
&#39;Frodo Beutlin&#39;
- [&#39;Frodo Beutlin&#39;, &#39;Norbert Halagal&#39;, &#39;Liu Yang&#39;, &#39;Hector Gonçalves&#39;]
+ []</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr> </tr>
@ -2203,11 +2100,11 @@ IndexError: list index out of range</pre>
<tr id="su" class="passClass"> <tr id="su" class="failClass">
<td>TestEditBooksOnGdrive</td> <td>TestEditBooksOnGdrive</td>
<td class="text-center">18</td> <td class="text-center">18</td>
<td class="text-center">18</td> <td class="text-center">17</td>
<td class="text-center">0</td> <td class="text-center">1</td>
<td class="text-center">0</td> <td class="text-center">0</td>
<td class="text-center">0</td> <td class="text-center">0</td>
<td class="text-center"> <td class="text-center">
@ -2370,11 +2267,31 @@ IndexError: list index out of range</pre>
<tr id='pt19.18' class='hiddenRow bg-success'> <tr id="ft19.18" class="none bg-danger">
<td> <td>
<div class='testcase'>TestEditBooksOnGdrive - test_watch_metadata</div> <div class='testcase'>TestEditBooksOnGdrive - test_watch_metadata</div>
</td> </td>
<td colspan='6' align='center'>PASS</td> <td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_ft19.18')">FAIL</a>
</div>
<!--css div popup start-->
<div id="div_ft19.18" class="popup_window test_output" style="display:block;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus="this.blur();"
onclick="document.getElementById('div_ft19.18').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Traceback (most recent call last):
File &#34;/home/ozzie/Development/calibre-web-test/test/test_edit_ebooks_gdrive.py&#34;, line 936, in test_watch_metadata
self.assertTrue(button)
AssertionError: False is not true</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr> </tr>
@ -2524,11 +2441,11 @@ IndexError: list index out of range</pre>
<tr id="su" class="passClass"> <tr id="su" class="failClass">
<td>TestEmbedMetadata</td> <td>TestEmbedMetadata</td>
<td class="text-center">6</td> <td class="text-center">6</td>
<td class="text-center">6</td> <td class="text-center">5</td>
<td class="text-center">0</td> <td class="text-center">1</td>
<td class="text-center">0</td> <td class="text-center">0</td>
<td class="text-center">0</td> <td class="text-center">0</td>
<td class="text-center"> <td class="text-center">
@ -2583,11 +2500,33 @@ IndexError: list index out of range</pre>
<tr id='pt23.6' class='hiddenRow bg-success'> <tr id="ft23.6" class="none bg-danger">
<td> <td>
<div class='testcase'>TestEmbedMetadata - test_email_epub_embed_metadata</div> <div class='testcase'>TestEmbedMetadata - test_email_epub_embed_metadata</div>
</td> </td>
<td colspan='6' align='center'>PASS</td> <td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_ft23.6')">FAIL</a>
</div>
<!--css div popup start-->
<div id="div_ft23.6" class="popup_window test_output" style="display:block;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus="this.blur();"
onclick="document.getElementById('div_ft23.6').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Traceback (most recent call last):
File &#34;/home/ozzie/Development/calibre-web-test/test/test_embed_metadata.py&#34;, line 271, in test_email_epub_embed_metadata
task_len, ret = self.wait_tasks(tasks, 1)
File &#34;/home/ozzie/Development/calibre-web-test/test/helper_ui.py&#34;, line 1636, in wait_tasks
self.assertEqual(expected, task_len)
AssertionError: 1 != 2</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr> </tr>
@ -4007,50 +3946,43 @@ IndexError: list index out of range</pre>
<tr id="su" class="errorClass"> <tr id="su" class="passClass">
<td>_FailedTest</td> <td>TestPipInstall</td>
<td class="text-center">1</td> <td class="text-center">3</td>
<td class="text-center">3</td>
<td class="text-center">0</td> <td class="text-center">0</td>
<td class="text-center">0</td> <td class="text-center">0</td>
<td class="text-center">1</td>
<td class="text-center">0</td> <td class="text-center">0</td>
<td class="text-center"> <td class="text-center">
<a onclick="showClassDetail('c41', 1)">Detail</a> <a onclick="showClassDetail('c41', 3)">Detail</a>
</td> </td>
</tr> </tr>
<tr id="et41.1" class="none bg-info"> <tr id='pt41.1' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>_FailedTest - test_pip_install</div> <div class='testcase'>TestPipInstall - test_command_start</div>
</td> </td>
<td colspan='6'> <td colspan='6' align='center'>PASS</td>
<div class="text-center"> </tr>
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_et41.1')">ERROR</a>
</div>
<!--css div popup start-->
<div id="div_et41.1" class="popup_window test_output" style="display:block;"> <tr id='pt41.2' class='hiddenRow bg-success'>
<div class='close_button pull-right'> <td>
<button type="button" class="close" aria-label="Close" onfocus="this.blur();" <div class='testcase'>TestPipInstall - test_foldername_database_location</div>
onclick="document.getElementById('div_et41.1').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">ImportError: Failed to import test module: test_pip_install
Traceback (most recent call last):
File &#34;/usr/lib/python3.10/unittest/loader.py&#34;, line 436, in _find_test_path
module = self._get_module_from_name(name)
File &#34;/usr/lib/python3.10/unittest/loader.py&#34;, line 377, in _get_module_from_name
__import__(name)
File &#34;/home/ozzie/Development/calibre-web-test/test/test_pip_install.py&#34;, line 23, in &lt;module&gt;
from build_release import make_release
ModuleNotFoundError: No module named &#39;build_release&#39;</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td> </td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt41.3' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestPipInstall - test_module_start</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr> </tr>
@ -4167,88 +4099,53 @@ ModuleNotFoundError: No module named &#39;build_release&#39;</pre>
<tr id="su" class="passClass"> <tr id="su" class="errorClass">
<td>TestRegister</td> <td>_ErrorHolder</td>
<td class="text-center">8</td> <td class="text-center">1</td>
<td class="text-center">8</td>
<td class="text-center">0</td> <td class="text-center">0</td>
<td class="text-center">0</td> <td class="text-center">0</td>
<td class="text-center">1</td>
<td class="text-center">0</td> <td class="text-center">0</td>
<td class="text-center"> <td class="text-center">
<a onclick="showClassDetail('c44', 8)">Detail</a> <a onclick="showClassDetail('c44', 1)">Detail</a>
</td> </td>
</tr> </tr>
<tr id='pt44.1' class='hiddenRow bg-success'> <tr id="et44.1" class="none bg-info">
<td> <td>
<div class='testcase'>TestRegister - test_forgot_password</div> <div class='testcase'>setUpClass (test_register)</div>
</td> </td>
<td colspan='6' align='center'>PASS</td> <td colspan='6'>
</tr> <div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_et44.1')">ERROR</a>
</div>
<!--css div popup start-->
<tr id='pt44.2' class='hiddenRow bg-success'> <div id="div_et44.1" class="popup_window test_output" style="display:block;">
<td> <div class='close_button pull-right'>
<div class='testcase'>TestRegister - test_illegal_email</div> <button type="button" class="close" aria-label="Close" onfocus="this.blur();"
onclick="document.getElementById('div_et44.1').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Traceback (most recent call last):
File &#34;/home/ozzie/Development/calibre-web-test/test/test_register.py&#34;, line 37, in setUpClass
cls.email_server.start()
File &#34;/home/ozzie/Development/calibre-web-test/test/aiosmtpd/controller.py&#34;, line 88, in start
raise self._thread_exception
File &#34;/home/ozzie/Development/calibre-web-test/test/aiosmtpd/controller.py&#34;, line 65, in _run
self.server = self.loop.run_until_complete(
File &#34;/usr/lib/python3.10/asyncio/base_events.py&#34;, line 649, in run_until_complete
return future.result()
File &#34;/usr/lib/python3.10/asyncio/base_events.py&#34;, line 1519, in create_server
raise OSError(err.errno, &#39;error while attempting &#39;
OSError: [Errno 98] error while attempting to bind on address (&#39;127.0.0.1&#39;, 1025): address already in use</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td> </td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt44.3' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestRegister - test_limit_domain</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt44.4' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestRegister - test_register_no_server</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt44.5' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestRegister - test_registering_only_email</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt44.6' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestRegister - test_registering_user</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt44.7' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestRegister - test_registering_user_fail</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt44.8' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestRegister - test_user_change_password</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr> </tr>
@ -4505,12 +4402,12 @@ ModuleNotFoundError: No module named &#39;build_release&#39;</pre>
<tr id="su" class="passClass"> <tr id="su" class="errorClass">
<td>TestSplitLibrary</td> <td>TestSplitLibrary</td>
<td class="text-center">7</td> <td class="text-center">7</td>
<td class="text-center">7</td> <td class="text-center">6</td>
<td class="text-center">0</td>
<td class="text-center">0</td> <td class="text-center">0</td>
<td class="text-center">1</td>
<td class="text-center">0</td> <td class="text-center">0</td>
<td class="text-center"> <td class="text-center">
<a onclick="showClassDetail('c48', 7)">Detail</a> <a onclick="showClassDetail('c48', 7)">Detail</a>
@ -4546,11 +4443,39 @@ ModuleNotFoundError: No module named &#39;build_release&#39;</pre>
<tr id='pt48.4' class='hiddenRow bg-success'> <tr id="et48.4" class="none bg-info">
<td> <td>
<div class='testcase'>TestSplitLibrary - test_email_ebook</div> <div class='testcase'>TestSplitLibrary - test_email_ebook</div>
</td> </td>
<td colspan='6' align='center'>PASS</td> <td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_et48.4')">ERROR</a>
</div>
<!--css div popup start-->
<div id="div_et48.4" class="popup_window test_output" style="display:block;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus="this.blur();"
onclick="document.getElementById('div_et48.4').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Traceback (most recent call last):
File &#34;/home/ozzie/Development/calibre-web-test/test/test_split_library.py&#34;, line 102, in test_email_ebook
self.email_server.start()
File &#34;/home/ozzie/Development/calibre-web-test/test/aiosmtpd/controller.py&#34;, line 88, in start
raise self._thread_exception
File &#34;/home/ozzie/Development/calibre-web-test/test/aiosmtpd/controller.py&#34;, line 65, in _run
self.server = self.loop.run_until_complete(
File &#34;/usr/lib/python3.10/asyncio/base_events.py&#34;, line 649, in run_until_complete
return future.result()
File &#34;/usr/lib/python3.10/asyncio/base_events.py&#34;, line 1519, in create_server
raise OSError(err.errno, &#39;error while attempting &#39;
OSError: [Errno 98] error while attempting to bind on address (&#39;127.0.0.1&#39;, 1025): address already in use</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr> </tr>
@ -4607,13 +4532,13 @@ ModuleNotFoundError: No module named &#39;build_release&#39;</pre>
<tr id="su" class="failClass"> <tr id="su" class="passClass">
<td>TestThumbnailsEnv</td> <td>TestThumbnailsEnv</td>
<td class="text-center">1</td> <td class="text-center">1</td>
<td class="text-center">0</td>
<td class="text-center">1</td> <td class="text-center">1</td>
<td class="text-center">0</td> <td class="text-center">0</td>
<td class="text-center">0</td> <td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center"> <td class="text-center">
<a onclick="showClassDetail('c50', 1)">Detail</a> <a onclick="showClassDetail('c50', 1)">Detail</a>
</td> </td>
@ -4621,41 +4546,21 @@ ModuleNotFoundError: No module named &#39;build_release&#39;</pre>
<tr id="ft50.1" class="none bg-danger"> <tr id='pt50.1' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestThumbnailsEnv - test_cover_cache_env_on_database_change</div> <div class='testcase'>TestThumbnailsEnv - test_cover_cache_env_on_database_change</div>
</td> </td>
<td colspan='6'> <td colspan='6' align='center'>PASS</td>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_ft50.1')">FAIL</a>
</div>
<!--css div popup start-->
<div id="div_ft50.1" class="popup_window test_output" style="display:block;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus="this.blur();"
onclick="document.getElementById('div_ft50.1').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Traceback (most recent call last):
File &#34;/home/ozzie/Development/calibre-web-test/test/test_thumbnail_env.py&#34;, line 85, in test_cover_cache_env_on_database_change
self.assertEqual(count_files(thumbnail_cache_path), 20)
AssertionError: 30 != 20</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr> </tr>
<tr id="su" class="skipClass"> <tr id="su" class="failClass">
<td>TestThumbnails</td> <td>TestThumbnails</td>
<td class="text-center">8</td> <td class="text-center">8</td>
<td class="text-center">7</td> <td class="text-center">6</td>
<td class="text-center">0</td> <td class="text-center">1</td>
<td class="text-center">0</td> <td class="text-center">0</td>
<td class="text-center">1</td> <td class="text-center">1</td>
<td class="text-center"> <td class="text-center">
@ -4728,21 +4633,41 @@ AssertionError: 30 != 20</pre>
<tr id='pt51.8' class='hiddenRow bg-success'> <tr id="ft51.8" class="none bg-danger">
<td> <td>
<div class='testcase'>TestThumbnails - test_sideloaded_book</div> <div class='testcase'>TestThumbnails - test_sideloaded_book</div>
</td> </td>
<td colspan='6' align='center'>PASS</td> <td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_ft51.8')">FAIL</a>
</div>
<!--css div popup start-->
<div id="div_ft51.8" class="popup_window test_output" style="display:block;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus="this.blur();"
onclick="document.getElementById('div_ft51.8').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Traceback (most recent call last):
File &#34;/home/ozzie/Development/calibre-web-test/test/test_thumbnails.py&#34;, line 327, in test_sideloaded_book
self.assertGreaterEqual(diff(BytesIO(list_cover), BytesIO(new_list_cover), delete_diff_file=True), 0.04)
AssertionError: 0.039521531544059706 not greater than or equal to 0.04</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr> </tr>
<tr id="su" class="failClass"> <tr id="su" class="skipClass">
<td>TestUpdater</td> <td>TestUpdater</td>
<td class="text-center">9</td> <td class="text-center">9</td>
<td class="text-center">7</td> <td class="text-center">8</td>
<td class="text-center">1</td> <td class="text-center">0</td>
<td class="text-center">0</td> <td class="text-center">0</td>
<td class="text-center">1</td> <td class="text-center">1</td>
<td class="text-center"> <td class="text-center">
@ -4788,31 +4713,11 @@ AssertionError: 30 != 20</pre>
<tr id="ft52.5" class="none bg-danger"> <tr id='pt52.5' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestUpdater - test_perform_update</div> <div class='testcase'>TestUpdater - test_perform_update</div>
</td> </td>
<td colspan='6'> <td colspan='6' align='center'>PASS</td>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_ft52.5')">FAIL</a>
</div>
<!--css div popup start-->
<div id="div_ft52.5" class="popup_window test_output" style="display:block;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus="this.blur();"
onclick="document.getElementById('div_ft52.5').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Traceback (most recent call last):
File &#34;/home/ozzie/Development/calibre-web-test/test/test_updater.py&#34;, line 375, in test_perform_update
self.assertEqual(20, count_files(thumbnail_cache_path))
AssertionError: 20 != 30</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr> </tr>
@ -5958,10 +5863,10 @@ AssertionError: 20 != 30</pre>
<tr id='total_row' class="text-center bg-grey"> <tr id='total_row' class="text-center bg-grey">
<td>Total</td> <td>Total</td>
<td>520</td> <td>515</td>
<td>503</td> <td>500</td>
<td>4</td> <td>3</td>
<td>4</td> <td>3</td>
<td>9</td> <td>9</td>
<td>&nbsp;</td> <td>&nbsp;</td>
</tr> </tr>
@ -6158,7 +6063,7 @@ AssertionError: 20 != 30</pre>
<tr> <tr>
<th>google-api-python-client</th> <th>google-api-python-client</th>
<td>2.141.0</td> <td>2.142.0</td>
<td>TestBackupMetadataGdrive</td> <td>TestBackupMetadataGdrive</td>
</tr> </tr>
@ -6188,7 +6093,7 @@ AssertionError: 20 != 30</pre>
<tr> <tr>
<th>google-api-python-client</th> <th>google-api-python-client</th>
<td>2.141.0</td> <td>2.142.0</td>
<td>TestCliGdrivedb</td> <td>TestCliGdrivedb</td>
</tr> </tr>
@ -6218,7 +6123,7 @@ AssertionError: 20 != 30</pre>
<tr> <tr>
<th>google-api-python-client</th> <th>google-api-python-client</th>
<td>2.141.0</td> <td>2.142.0</td>
<td>TestEbookConvertCalibreGDrive</td> <td>TestEbookConvertCalibreGDrive</td>
</tr> </tr>
@ -6248,7 +6153,7 @@ AssertionError: 20 != 30</pre>
<tr> <tr>
<th>google-api-python-client</th> <th>google-api-python-client</th>
<td>2.141.0</td> <td>2.142.0</td>
<td>TestEbookConvertGDriveKepubify</td> <td>TestEbookConvertGDriveKepubify</td>
</tr> </tr>
@ -6296,7 +6201,7 @@ AssertionError: 20 != 30</pre>
<tr> <tr>
<th>google-api-python-client</th> <th>google-api-python-client</th>
<td>2.141.0</td> <td>2.142.0</td>
<td>TestEditAuthorsGdrive</td> <td>TestEditAuthorsGdrive</td>
</tr> </tr>
@ -6332,7 +6237,7 @@ AssertionError: 20 != 30</pre>
<tr> <tr>
<th>google-api-python-client</th> <th>google-api-python-client</th>
<td>2.141.0</td> <td>2.142.0</td>
<td>TestEditBooksOnGdrive</td> <td>TestEditBooksOnGdrive</td>
</tr> </tr>
@ -6374,7 +6279,7 @@ AssertionError: 20 != 30</pre>
<tr> <tr>
<th>google-api-python-client</th> <th>google-api-python-client</th>
<td>2.141.0</td> <td>2.142.0</td>
<td>TestEmbedMetadataGdrive</td> <td>TestEmbedMetadataGdrive</td>
</tr> </tr>
@ -6404,7 +6309,7 @@ AssertionError: 20 != 30</pre>
<tr> <tr>
<th>google-api-python-client</th> <th>google-api-python-client</th>
<td>2.141.0</td> <td>2.142.0</td>
<td>TestSetupGdrive</td> <td>TestSetupGdrive</td>
</tr> </tr>
@ -6500,7 +6405,7 @@ AssertionError: 20 != 30</pre>
</div> </div>
<script> <script>
drawCircle(503, 4, 4, 9); drawCircle(500, 3, 3, 9);
showCase(5); showCase(5);
</script> </script>