Commit db915774 authored by Ozzie Isaacs's avatar Ozzie Isaacs

Use calibre-web folder in tempdir on upload cover and metadata backup

fix upload cover on windows (slash vs. backslash)
parent 5d940486
...@@ -125,7 +125,7 @@ def on_received_watch_confirmation(): ...@@ -125,7 +125,7 @@ def on_received_watch_confirmation():
if request.headers.get('X-Goog-Channel-Token') != gdrive_watch_callback_token \ if request.headers.get('X-Goog-Channel-Token') != gdrive_watch_callback_token \
or request.headers.get('X-Goog-Resource-State') != 'change' \ or request.headers.get('X-Goog-Resource-State') != 'change' \
or not request.data: or not request.data:
return '' # redirect(url_for('admin.configuration')) return ''
log.debug('%r', request.headers) log.debug('%r', request.headers)
log.debug('%r', request.data) log.debug('%r', request.data)
...@@ -143,14 +143,17 @@ def on_received_watch_confirmation(): ...@@ -143,14 +143,17 @@ def on_received_watch_confirmation():
dbpath = os.path.join(config.config_calibre_dir, "metadata.db").encode() dbpath = os.path.join(config.config_calibre_dir, "metadata.db").encode()
if not response['deleted'] and response['file']['title'] == 'metadata.db' \ if not response['deleted'] and response['file']['title'] == 'metadata.db' \
and response['file']['md5Checksum'] != hashlib.md5(dbpath): and response['file']['md5Checksum'] != hashlib.md5(dbpath):
tmpDir = tempfile.gettempdir() tmp_dir = os.path.join(tempfile.gettempdir(), 'calibre_web')
if not os.path.isdir(tmp_dir):
os.mkdir(tmp_dir)
log.info('Database file updated') log.info('Database file updated')
copyfile(dbpath, os.path.join(tmpDir, "metadata.db_" + str(current_milli_time()))) copyfile(dbpath, os.path.join(tmp_dir, "metadata.db_" + str(current_milli_time())))
log.info('Backing up existing and downloading updated metadata.db') log.info('Backing up existing and downloading updated metadata.db')
gdriveutils.downloadFile(None, "metadata.db", os.path.join(tmpDir, "tmp_metadata.db")) gdriveutils.downloadFile(None, "metadata.db", os.path.join(tmp_dir, "tmp_metadata.db"))
log.info('Setting up new DB') log.info('Setting up new DB')
# prevent error on windows, as os.rename does on exisiting files # prevent error on windows, as os.rename does on existing files, also allow cross hdd move
move(os.path.join(tmpDir, "tmp_metadata.db"), dbpath) move(os.path.join(tmp_dir, "tmp_metadata.db"), dbpath)
calibre_db.reconnect_db(config, ub.app_DB_path) calibre_db.reconnect_db(config, ub.app_DB_path)
except Exception as e: except Exception as e:
log.exception(e) log.exception(e)
......
...@@ -634,11 +634,14 @@ def save_cover(img, book_path): ...@@ -634,11 +634,14 @@ def save_cover(img, book_path):
return False, _("Only jpg/jpeg files are supported as coverfile") return False, _("Only jpg/jpeg files are supported as coverfile")
if config.config_use_google_drive: if config.config_use_google_drive:
tmpDir = gettempdir() tmp_dir = os.path.join(gettempdir(), 'calibre_web')
ret, message = save_cover_from_filestorage(tmpDir, "uploaded_cover.jpg", img)
if not os.path.isdir(tmp_dir):
os.mkdir(tmp_dir)
ret, message = save_cover_from_filestorage(tmp_dir, "uploaded_cover.jpg", img)
if ret is True: if ret is True:
gd.uploadFileToEbooksFolder(os.path.join(book_path, 'cover.jpg'), gd.uploadFileToEbooksFolder(os.path.join(book_path, 'cover.jpg').replace("\\","/"),
os.path.join(tmpDir, "uploaded_cover.jpg")) os.path.join(tmp_dir, "uploaded_cover.jpg"))
log.info("Cover is saved on Google Drive") log.info("Cover is saved on Google Drive")
return True, None return True, None
else: else:
......
...@@ -37,20 +37,20 @@ ...@@ -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>2020-12-02 18:51:45</p> <p class='text-justify attribute'><strong>Start Time: </strong>2020-12-11 09:26: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>2020-12-02 21:19:42</p> <p class='text-justify attribute'><strong>Stop Time: </strong>2020-12-11 12:06:47</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>1h 56 min</p> <p class='text-justify attribute'><strong>Duration: </strong>2h 9 min</p>
</div> </div>
</div> </div>
</div> </div>
...@@ -360,9 +360,9 @@ ...@@ -360,9 +360,9 @@
</div> </div>
<div class="text-left pull-left"> <div class="text-left pull-left">
<pre class="text-left">Traceback (most recent call last): <pre class="text-left">Traceback (most recent call last):
File "C:\Entwicklung\calibre-web-test\test\test_cover_edit_books.py", line 92, in test_upload_jpg File "C:\Entwicklung\calibre-web-test\test\test_cover_edit_books.py", line 76, in test_upload_jpg
self.assertTrue(self.check_element_on_page((By.ID, 'flash_alert')), "BMP file is not detected") self.assertGreater(diff('web.png', 'jpg.png', delete_diff_file=True), 0.007)
AssertionError: False is not true : BMP file is not detected</pre> AssertionError: 0.005610772603121106 not greater than 0.007</pre>
</div> </div>
<div class="clearfix"></div> <div class="clearfix"></div>
</div> </div>
...@@ -766,12 +766,12 @@ AssertionError: False is not true : BMP file is not detected</pre> ...@@ -766,12 +766,12 @@ AssertionError: False is not true : BMP file is not detected</pre>
<tr id="su" class="errorClass"> <tr id="su" class="skipClass">
<td>TestEditAdditionalBooks</td> <td>TestEditAdditionalBooks</td>
<td class="text-center">13</td> <td class="text-center">13</td>
<td class="text-center">10</td> <td class="text-center">11</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">2</td> <td class="text-center">2</td>
<td class="text-center"> <td class="text-center">
<a onclick="showClassDetail('c9', 13)">Detail</a> <a onclick="showClassDetail('c9', 13)">Detail</a>
...@@ -843,33 +843,11 @@ AssertionError: False is not true : BMP file is not detected</pre> ...@@ -843,33 +843,11 @@ AssertionError: False is not true : BMP file is not detected</pre>
<tr id="et9.8" class="none bg-info"> <tr id='pt9.8' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestEditAdditionalBooks - test_title_sort</div> <div class='testcase'>TestEditAdditionalBooks - test_title_sort</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_et9.8')">ERROR</a>
</div>
<!--css div popup start-->
<div id="div_et9.8" class="popup_window test_output" style="display:none;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus='this.blur();'
onclick='document.getElementById('div_et9.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 "C:\Entwicklung\calibre-web-test\test\test_edit_additional_books.py", line 650, in test_title_sort
self.edit_book(1, content={'book_title': u'A bok'})
File "C:\Entwicklung\calibre-web-test\test\helper_ui.py", line 1397, in edit_book
ele.send_keys(Keys.CONTROL, "a")
AttributeError: 'bool' object has no attribute 'send_keys'</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr> </tr>
...@@ -954,11 +932,11 @@ AttributeError: 'bool' object has no attribute 'send_keys'</pre> ...@@ -954,11 +932,11 @@ AttributeError: 'bool' object has no attribute 'send_keys'</pre>
<tr id="su" class="skipClass"> <tr id="su" class="failClass">
<td>TestEditBooks</td> <td>TestEditBooks</td>
<td class="text-center">33</td> <td class="text-center">33</td>
<td class="text-center">31</td> <td class="text-center">30</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">2</td> <td class="text-center">2</td>
<td class="text-center"> <td class="text-center">
...@@ -1290,11 +1268,31 @@ AttributeError: 'bool' object has no attribute 'send_keys'</pre> ...@@ -1290,11 +1268,31 @@ AttributeError: 'bool' object has no attribute 'send_keys'</pre>
<tr id='pt10.33' class='hiddenRow bg-success'> <tr id="ft10.33" class="none bg-danger">
<td> <td>
<div class='testcase'>TestEditBooks - test_upload_cover_hdd</div> <div class='testcase'>TestEditBooks - test_upload_cover_hdd</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_ft10.33')">FAIL</a>
</div>
<!--css div popup start-->
<div id="div_ft10.33" class="popup_window test_output" style="display:none;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus='this.blur();'
onclick='document.getElementById('div_ft10.33').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 "C:\Entwicklung\calibre-web-test\test\test_edit_books.py", line 710, in test_upload_cover_hdd
self.assertGreater(diff('bmp.png', 'jpeg.png', delete_diff_file=True), 0.006)
AssertionError: 0.00394629753816835 not greater than 0.006</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr> </tr>
...@@ -1345,8 +1343,8 @@ AttributeError: 'bool' object has no attribute 'send_keys'</pre> ...@@ -1345,8 +1343,8 @@ AttributeError: 'bool' object has no attribute 'send_keys'</pre>
<tr id="su" class="failClass"> <tr id="su" class="failClass">
<td>TestEditBooksOnGdrive</td> <td>TestEditBooksOnGdrive</td>
<td class="text-center">20</td> <td class="text-center">20</td>
<td class="text-center">18</td> <td class="text-center">19</td>
<td class="text-center">2</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">
...@@ -1535,7 +1533,7 @@ AttributeError: 'bool' object has no attribute 'send_keys'</pre> ...@@ -1535,7 +1533,7 @@ AttributeError: 'bool' object has no attribute 'send_keys'</pre>
</div> </div>
<div class="text-left pull-left"> <div class="text-left pull-left">
<pre class="text-left">Traceback (most recent call last): <pre class="text-left">Traceback (most recent call last):
File "C:\Entwicklung\calibre-web-test\test\test_edit_ebooks_gdrive.py", line 700, in test_upload_cover_hdd File "C:\Entwicklung\calibre-web-test\test\test_edit_ebooks_gdrive.py", line 706, in test_upload_cover_hdd
self.assertGreater(diff('original.png', 'jpeg.png', delete_diff_file=True), 0.02) self.assertGreater(diff('original.png', 'jpeg.png', delete_diff_file=True), 0.02)
AssertionError: 0.0 not greater than 0.02</pre> AssertionError: 0.0 not greater than 0.02</pre>
</div> </div>
...@@ -1547,31 +1545,11 @@ AssertionError: 0.0 not greater than 0.02</pre> ...@@ -1547,31 +1545,11 @@ AssertionError: 0.0 not greater than 0.02</pre>
<tr id="ft12.20" class="none bg-danger"> <tr id='pt12.20' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestEditBooksOnGdrive - test_watch_metadata</div> <div class='testcase'>TestEditBooksOnGdrive - test_watch_metadata</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_ft12.20')">FAIL</a>
</div>
<!--css div popup start-->
<div id="div_ft12.20" class="popup_window test_output" style="display:none;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus='this.blur();'
onclick='document.getElementById('div_ft12.20').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 "C:\Entwicklung\calibre-web-test\test\test_edit_ebooks_gdrive.py", line 814, in test_watch_metadata
self.assertTrue(self.check_element_on_page((By.ID, "config_google_drive_watch_changes_response")))
AssertionError: False is not true</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr> </tr>
...@@ -1843,13 +1821,13 @@ AssertionError: False is not true</pre> ...@@ -1843,13 +1821,13 @@ AssertionError: False is not true</pre>
<tr id="su" class="passClass"> <tr id="su" class="passClass">
<td>TestLdapLogin</td> <td>TestLdapLogin</td>
<td class="text-center">12</td> <td class="text-center">13</td>
<td class="text-center">12</td> <td class="text-center">13</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">0</td>
<td class="text-center"> <td class="text-center">
<a onclick="showClassDetail('c18', 12)">Detail</a> <a onclick="showClassDetail('c18', 13)">Detail</a>
</td> </td>
</tr> </tr>
...@@ -1902,7 +1880,7 @@ AssertionError: False is not true</pre> ...@@ -1902,7 +1880,7 @@ AssertionError: False is not true</pre>
<tr id='pt18.6' class='hiddenRow bg-success'> <tr id='pt18.6' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestLdapLogin - test_LDAP_login</div> <div class='testcase'>TestLdapLogin - test_LDAP_import_memberfield</div>
</td> </td>
<td colspan='6' align='center'>PASS</td> <td colspan='6' align='center'>PASS</td>
</tr> </tr>
...@@ -1911,7 +1889,7 @@ AssertionError: False is not true</pre> ...@@ -1911,7 +1889,7 @@ AssertionError: False is not true</pre>
<tr id='pt18.7' class='hiddenRow bg-success'> <tr id='pt18.7' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestLdapLogin - test_invalid_LDAP</div> <div class='testcase'>TestLdapLogin - test_LDAP_login</div>
</td> </td>
<td colspan='6' align='center'>PASS</td> <td colspan='6' align='center'>PASS</td>
</tr> </tr>
...@@ -1920,7 +1898,7 @@ AssertionError: False is not true</pre> ...@@ -1920,7 +1898,7 @@ AssertionError: False is not true</pre>
<tr id='pt18.8' class='hiddenRow bg-success'> <tr id='pt18.8' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestLdapLogin - test_ldap_about</div> <div class='testcase'>TestLdapLogin - test_invalid_LDAP</div>
</td> </td>
<td colspan='6' align='center'>PASS</td> <td colspan='6' align='center'>PASS</td>
</tr> </tr>
...@@ -1929,7 +1907,7 @@ AssertionError: False is not true</pre> ...@@ -1929,7 +1907,7 @@ AssertionError: False is not true</pre>
<tr id='pt18.9' class='hiddenRow bg-success'> <tr id='pt18.9' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestLdapLogin - test_ldap_authentication</div> <div class='testcase'>TestLdapLogin - test_ldap_about</div>
</td> </td>
<td colspan='6' align='center'>PASS</td> <td colspan='6' align='center'>PASS</td>
</tr> </tr>
...@@ -1938,7 +1916,7 @@ AssertionError: False is not true</pre> ...@@ -1938,7 +1916,7 @@ AssertionError: False is not true</pre>
<tr id='pt18.10' class='hiddenRow bg-success'> <tr id='pt18.10' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestLdapLogin - test_ldap_kobo_sync</div> <div class='testcase'>TestLdapLogin - test_ldap_authentication</div>
</td> </td>
<td colspan='6' align='center'>PASS</td> <td colspan='6' align='center'>PASS</td>
</tr> </tr>
...@@ -1947,7 +1925,7 @@ AssertionError: False is not true</pre> ...@@ -1947,7 +1925,7 @@ AssertionError: False is not true</pre>
<tr id='pt18.11' class='hiddenRow bg-success'> <tr id='pt18.11' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestLdapLogin - test_ldap_opds_anonymous</div> <div class='testcase'>TestLdapLogin - test_ldap_kobo_sync</div>
</td> </td>
<td colspan='6' align='center'>PASS</td> <td colspan='6' align='center'>PASS</td>
</tr> </tr>
...@@ -1955,6 +1933,15 @@ AssertionError: False is not true</pre> ...@@ -1955,6 +1933,15 @@ AssertionError: False is not true</pre>
<tr id='pt18.12' class='hiddenRow bg-success'> <tr id='pt18.12' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestLdapLogin - test_ldap_opds_anonymous</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt18.13' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestLdapLogin - test_ldap_opds_download_book</div> <div class='testcase'>TestLdapLogin - test_ldap_opds_download_book</div>
</td> </td>
...@@ -2422,8 +2409,8 @@ AssertionError: False is not true</pre> ...@@ -2422,8 +2409,8 @@ AssertionError: False is not true</pre>
<tr id="su" class="failClass"> <tr id="su" class="failClass">
<td>TestReader</td> <td>TestReader</td>
<td class="text-center">5</td> <td class="text-center">5</td>
<td class="text-center">3</td> <td class="text-center">4</td>
<td class="text-center">2</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">
...@@ -2477,9 +2464,9 @@ AssertionError: False is not true</pre> ...@@ -2477,9 +2464,9 @@ AssertionError: False is not true</pre>
</div> </div>
<div class="text-left pull-left"> <div class="text-left pull-left">
<pre class="text-left">Traceback (most recent call last): <pre class="text-left">Traceback (most recent call last):
File "C:\Entwicklung\calibre-web-test\test\test_reader.py", line 189, in test_sound_listener File "C:\Entwicklung\calibre-web-test\test\test_reader.py", line 193, in test_sound_listener
self.sound_test('music.flac', 'Unknown - music', '0:02') self.sound_test('music.flac', 'Unknown - music', '0:02')
File "C:\Entwicklung\calibre-web-test\test\test_reader.py", line 176, in sound_test File "C:\Entwicklung\calibre-web-test\test\test_reader.py", line 180, in sound_test
self.assertEqual(title, title_item.text) self.assertEqual(title, title_item.text)
AssertionError: 'Unknown - music' != '✖ ✖ Unknown - music' AssertionError: 'Unknown - music' != '✖ ✖ Unknown - music'
- Unknown - music - Unknown - music
...@@ -2494,31 +2481,11 @@ AssertionError: 'Unknown - music' != '✖ ✖ Unknown - music' ...@@ -2494,31 +2481,11 @@ AssertionError: 'Unknown - music' != '✖ ✖ Unknown - music'
<tr id="ft23.5" class="none bg-danger"> <tr id='pt23.5' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestReader - test_txt_reader</div> <div class='testcase'>TestReader - test_txt_reader</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_ft23.5')">FAIL</a>
</div>
<!--css div popup start-->
<div id="div_ft23.5" class="popup_window test_output" style="display:none;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus='this.blur();'
onclick='document.getElementById('div_ft23.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 "C:\Entwicklung\calibre-web-test\test\test_reader.py", line 59, in test_txt_reader
self.assertTrue('hörte' in content.text, 'Encoding of textfile viewer is not respected properly')
AssertionError: False is not true : Encoding of textfile viewer is not respected properly</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr> </tr>
...@@ -2809,7 +2776,7 @@ AssertionError: False is not true : Encoding of textfile viewer is not respected ...@@ -2809,7 +2776,7 @@ AssertionError: False is not true : Encoding of textfile viewer is not respected
</div> </div>
<div class="text-left pull-left"> <div class="text-left pull-left">
<pre class="text-left">Traceback (most recent call last): <pre class="text-left">Traceback (most recent call last):
File "C:\Entwicklung\calibre-web-test\test\test_updater.py", line 296, in test_perform_update_stable_errors File "C:\Entwicklung\calibre-web-test\test\test_updater.py", line 298, in test_perform_update_stable_errors
performUpdate.click() performUpdate.click()
File "C:\Entwicklung\calibre-web-test\test\venv\lib\site-packages\selenium\webdriver\remote\webelement.py", line 80, in click File "C:\Entwicklung\calibre-web-test\test\venv\lib\site-packages\selenium\webdriver\remote\webelement.py", line 80, in click
self._execute(Command.CLICK_ELEMENT) self._execute(Command.CLICK_ELEMENT)
...@@ -2865,6 +2832,84 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di ...@@ -2865,6 +2832,84 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di
<tr id="su" class="passClass">
<td>TestUserLoad</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">
<a onclick="showClassDetail('c27', 1)">Detail</a>
</td>
</tr>
<tr id='pt27.1' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestUserLoad - test_user_change_vis</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="su" class="errorClass">
<td>_ErrorHolder</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">0</td>
<td class="text-center">
<a onclick="showClassDetail('c28', 1)">Detail</a>
</td>
</tr>
<tr id="et28.1" class="none bg-info">
<td>
<div class='testcase'>tearDownClass (test_user_load)</div>
</td>
<td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_et28.1')">ERROR</a>
</div>
<!--css div popup start-->
<div id="div_et28.1" class="popup_window test_output" style="display:none;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus='this.blur();'
onclick='document.getElementById('div_et28.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 "C:\Entwicklung\calibre-web-test\test\test_user_load.py", line 58, in tearDownClass
cls.stop_calibre_web()
File "C:\Entwicklung\calibre-web-test\test\helper_ui.py", line 372, in stop_calibre_web
element.click()
File "C:\Entwicklung\calibre-web-test\test\venv\lib\site-packages\selenium\webdriver\remote\webelement.py", line 80, in click
self._execute(Command.CLICK_ELEMENT)
File "C:\Entwicklung\calibre-web-test\test\venv\lib\site-packages\selenium\webdriver\remote\webelement.py", line 633, in _execute
return self._parent.execute(command, params)
File "C:\Entwicklung\calibre-web-test\test\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Entwicklung\calibre-web-test\test\venv\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementNotInteractableException: Message: Element <button id="shutdown" class="btn btn-default" type="button"> could not be scrolled into view</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr>
<tr id="su" class="passClass"> <tr id="su" class="passClass">
<td>TestUserTemplate</td> <td>TestUserTemplate</td>
<td class="text-center">21</td> <td class="text-center">21</td>
...@@ -2873,13 +2918,13 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di ...@@ -2873,13 +2918,13 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di
<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('c27', 21)">Detail</a> <a onclick="showClassDetail('c29', 21)">Detail</a>
</td> </td>
</tr> </tr>
<tr id='pt27.1' class='hiddenRow bg-success'> <tr id='pt29.1' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestUserTemplate - test_allow_column_restriction</div> <div class='testcase'>TestUserTemplate - test_allow_column_restriction</div>
</td> </td>
...@@ -2888,7 +2933,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di ...@@ -2888,7 +2933,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di
<tr id='pt27.2' class='hiddenRow bg-success'> <tr id='pt29.2' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestUserTemplate - test_allow_tag_restriction</div> <div class='testcase'>TestUserTemplate - test_allow_tag_restriction</div>
</td> </td>
...@@ -2897,7 +2942,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di ...@@ -2897,7 +2942,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di
<tr id='pt27.3' class='hiddenRow bg-success'> <tr id='pt29.3' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestUserTemplate - test_archived_format_template</div> <div class='testcase'>TestUserTemplate - test_archived_format_template</div>
</td> </td>
...@@ -2906,7 +2951,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di ...@@ -2906,7 +2951,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di
<tr id='pt27.4' class='hiddenRow bg-success'> <tr id='pt29.4' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestUserTemplate - test_author_user_template</div> <div class='testcase'>TestUserTemplate - test_author_user_template</div>
</td> </td>
...@@ -2915,7 +2960,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di ...@@ -2915,7 +2960,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di
<tr id='pt27.5' class='hiddenRow bg-success'> <tr id='pt29.5' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestUserTemplate - test_best_user_template</div> <div class='testcase'>TestUserTemplate - test_best_user_template</div>
</td> </td>
...@@ -2924,7 +2969,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di ...@@ -2924,7 +2969,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di
<tr id='pt27.6' class='hiddenRow bg-success'> <tr id='pt29.6' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestUserTemplate - test_category_user_template</div> <div class='testcase'>TestUserTemplate - test_category_user_template</div>
</td> </td>
...@@ -2933,7 +2978,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di ...@@ -2933,7 +2978,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di
<tr id='pt27.7' class='hiddenRow bg-success'> <tr id='pt29.7' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestUserTemplate - test_deny_column_restriction</div> <div class='testcase'>TestUserTemplate - test_deny_column_restriction</div>
</td> </td>
...@@ -2942,7 +2987,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di ...@@ -2942,7 +2987,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di
<tr id='pt27.8' class='hiddenRow bg-success'> <tr id='pt29.8' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestUserTemplate - test_deny_tag_restriction</div> <div class='testcase'>TestUserTemplate - test_deny_tag_restriction</div>
</td> </td>
...@@ -2951,7 +2996,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di ...@@ -2951,7 +2996,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di
<tr id='pt27.9' class='hiddenRow bg-success'> <tr id='pt29.9' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestUserTemplate - test_detail_random_user_template</div> <div class='testcase'>TestUserTemplate - test_detail_random_user_template</div>
</td> </td>
...@@ -2960,7 +3005,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di ...@@ -2960,7 +3005,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di
<tr id='pt27.10' class='hiddenRow bg-success'> <tr id='pt29.10' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestUserTemplate - test_download_user_template</div> <div class='testcase'>TestUserTemplate - test_download_user_template</div>
</td> </td>
...@@ -2969,7 +3014,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di ...@@ -2969,7 +3014,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di
<tr id='pt27.11' class='hiddenRow bg-success'> <tr id='pt29.11' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestUserTemplate - test_format_user_template</div> <div class='testcase'>TestUserTemplate - test_format_user_template</div>
</td> </td>
...@@ -2978,7 +3023,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di ...@@ -2978,7 +3023,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di
<tr id='pt27.12' class='hiddenRow bg-success'> <tr id='pt29.12' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestUserTemplate - test_hot_user_template</div> <div class='testcase'>TestUserTemplate - test_hot_user_template</div>
</td> </td>
...@@ -2987,7 +3032,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di ...@@ -2987,7 +3032,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di
<tr id='pt27.13' class='hiddenRow bg-success'> <tr id='pt29.13' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestUserTemplate - test_language_user_template</div> <div class='testcase'>TestUserTemplate - test_language_user_template</div>
</td> </td>
...@@ -2996,7 +3041,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di ...@@ -2996,7 +3041,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di
<tr id='pt27.14' class='hiddenRow bg-success'> <tr id='pt29.14' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestUserTemplate - test_limit_book_languages</div> <div class='testcase'>TestUserTemplate - test_limit_book_languages</div>
</td> </td>
...@@ -3005,7 +3050,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di ...@@ -3005,7 +3050,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di
<tr id='pt27.15' class='hiddenRow bg-success'> <tr id='pt29.15' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestUserTemplate - test_list_user_template</div> <div class='testcase'>TestUserTemplate - test_list_user_template</div>
</td> </td>
...@@ -3014,7 +3059,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di ...@@ -3014,7 +3059,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di
<tr id='pt27.16' class='hiddenRow bg-success'> <tr id='pt29.16' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestUserTemplate - test_publisher_user_template</div> <div class='testcase'>TestUserTemplate - test_publisher_user_template</div>
</td> </td>
...@@ -3023,7 +3068,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di ...@@ -3023,7 +3068,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di
<tr id='pt27.17' class='hiddenRow bg-success'> <tr id='pt29.17' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestUserTemplate - test_random_user_template</div> <div class='testcase'>TestUserTemplate - test_random_user_template</div>
</td> </td>
...@@ -3032,7 +3077,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di ...@@ -3032,7 +3077,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di
<tr id='pt27.18' class='hiddenRow bg-success'> <tr id='pt29.18' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestUserTemplate - test_read_user_template</div> <div class='testcase'>TestUserTemplate - test_read_user_template</div>
</td> </td>
...@@ -3041,7 +3086,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di ...@@ -3041,7 +3086,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di
<tr id='pt27.19' class='hiddenRow bg-success'> <tr id='pt29.19' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestUserTemplate - test_recent_user_template</div> <div class='testcase'>TestUserTemplate - test_recent_user_template</div>
</td> </td>
...@@ -3050,7 +3095,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di ...@@ -3050,7 +3095,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di
<tr id='pt27.20' class='hiddenRow bg-success'> <tr id='pt29.20' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestUserTemplate - test_series_user_template</div> <div class='testcase'>TestUserTemplate - test_series_user_template</div>
</td> </td>
...@@ -3059,7 +3104,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di ...@@ -3059,7 +3104,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di
<tr id='pt27.21' class='hiddenRow bg-success'> <tr id='pt29.21' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestUserTemplate - test_ui_language_settings</div> <div class='testcase'>TestUserTemplate - test_ui_language_settings</div>
</td> </td>
...@@ -3069,21 +3114,21 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di ...@@ -3069,21 +3114,21 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di
<tr id="su" class="errorClass"> <tr id="su" class="passClass">
<td>TestCalibreWebVisibilitys</td> <td>TestCalibreWebVisibilitys</td>
<td class="text-center">33</td> <td class="text-center">33</td>
<td class="text-center">31</td> <td class="text-center">33</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">0</td> <td class="text-center">0</td>
<td class="text-center"> <td class="text-center">
<a onclick="showClassDetail('c28', 33)">Detail</a> <a onclick="showClassDetail('c30', 33)">Detail</a>
</td> </td>
</tr> </tr>
<tr id='pt28.1' class='hiddenRow bg-success'> <tr id='pt30.1' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreWebVisibilitys - test_about</div> <div class='testcase'>TestCalibreWebVisibilitys - test_about</div>
</td> </td>
...@@ -3092,7 +3137,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di ...@@ -3092,7 +3137,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di
<tr id='pt28.2' class='hiddenRow bg-success'> <tr id='pt30.2' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreWebVisibilitys - test_admin_SMTP_Settings</div> <div class='testcase'>TestCalibreWebVisibilitys - test_admin_SMTP_Settings</div>
</td> </td>
...@@ -3101,7 +3146,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di ...@@ -3101,7 +3146,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di
<tr id='pt28.3' class='hiddenRow bg-success'> <tr id='pt30.3' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreWebVisibilitys - test_admin_add_user</div> <div class='testcase'>TestCalibreWebVisibilitys - test_admin_add_user</div>
</td> </td>
...@@ -3110,7 +3155,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di ...@@ -3110,7 +3155,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di
<tr id='pt28.4' class='hiddenRow bg-success'> <tr id='pt30.4' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_password</div> <div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_password</div>
</td> </td>
...@@ -3119,7 +3164,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di ...@@ -3119,7 +3164,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di
<tr id='pt28.5' class='hiddenRow bg-success'> <tr id='pt30.5' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_archived</div> <div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_archived</div>
</td> </td>
...@@ -3128,7 +3173,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di ...@@ -3128,7 +3173,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di
<tr id='pt28.6' class='hiddenRow bg-success'> <tr id='pt30.6' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_authors</div> <div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_authors</div>
</td> </td>
...@@ -3137,7 +3182,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di ...@@ -3137,7 +3182,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di
<tr id='pt28.7' class='hiddenRow bg-success'> <tr id='pt30.7' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_category</div> <div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_category</div>
</td> </td>
...@@ -3146,7 +3191,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di ...@@ -3146,7 +3191,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di
<tr id='pt28.8' class='hiddenRow bg-success'> <tr id='pt30.8' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_file_formats</div> <div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_file_formats</div>
</td> </td>
...@@ -3155,7 +3200,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di ...@@ -3155,7 +3200,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di
<tr id='pt28.9' class='hiddenRow bg-success'> <tr id='pt30.9' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_hot</div> <div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_hot</div>
</td> </td>
...@@ -3164,7 +3209,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di ...@@ -3164,7 +3209,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di
<tr id='pt28.10' class='hiddenRow bg-success'> <tr id='pt30.10' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_language</div> <div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_language</div>
</td> </td>
...@@ -3173,7 +3218,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di ...@@ -3173,7 +3218,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di
<tr id='pt28.11' class='hiddenRow bg-success'> <tr id='pt30.11' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_publisher</div> <div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_publisher</div>
</td> </td>
...@@ -3182,7 +3227,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di ...@@ -3182,7 +3227,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di
<tr id='pt28.12' class='hiddenRow bg-success'> <tr id='pt30.12' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_random</div> <div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_random</div>
</td> </td>
...@@ -3191,7 +3236,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di ...@@ -3191,7 +3236,7 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di
<tr id='pt28.13' class='hiddenRow bg-success'> <tr id='pt30.13' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_rated</div> <div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_rated</div>
</td> </td>
...@@ -3200,77 +3245,25 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di ...@@ -3200,77 +3245,25 @@ selenium.common.exceptions.ElementNotInteractableException: Message: Element <di
<tr id="et28.14" class="none bg-info"> <tr id='pt30.14' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_rating</div> <div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_rating</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_et28.14')">ERROR</a>
</div>
<!--css div popup start-->
<div id="div_et28.14" class="popup_window test_output" style="display:none;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus='this.blur();'
onclick='document.getElementById('div_et28.14').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 "C:\Entwicklung\calibre-web-test\test\test_visiblilitys.py", line 342, in test_admin_change_visibility_rating
self.verify_order("nav_rate", 0, order=order)
File "C:\Entwicklung\calibre-web-test\test\helper_ui.py", line 1117, in verify_order
list_elements[index].click()
File "C:\Entwicklung\calibre-web-test\test\venv\lib\site-packages\selenium\webdriver\remote\webelement.py", line 80, in click
self._execute(Command.CLICK_ELEMENT)
File "C:\Entwicklung\calibre-web-test\test\venv\lib\site-packages\selenium\webdriver\remote\webelement.py", line 633, in _execute
return self._parent.execute(command, params)
File "C:\Entwicklung\calibre-web-test\test\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Entwicklung\calibre-web-test\test\venv\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementNotInteractableException: Message: Element <a id="list_0" href="/ratings/new/1"> could not be scrolled into view</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr> </tr>
<tr id="et28.15" class="none bg-info"> <tr id='pt30.15' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_read</div> <div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_read</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_et28.15')">ERROR</a>
</div>
<!--css div popup start-->
<div id="div_et28.15" class="popup_window test_output" style="display:none;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus='this.blur();'
onclick='document.getElementById('div_et28.15').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 "C:\Entwicklung\calibre-web-test\test\test_visiblilitys.py", line 229, in test_admin_change_visibility_read
self.verify_order("nav_unread", 0, order=order)
File "C:\Entwicklung\calibre-web-test\test\helper_ui.py", line 1113, in verify_order
if not len(list_elements):
TypeError: object of type 'bool' has no len()</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr> </tr>
<tr id='pt28.16' class='hiddenRow bg-success'> <tr id='pt30.16' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_series</div> <div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_series</div>
</td> </td>
...@@ -3279,7 +3272,7 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3279,7 +3272,7 @@ TypeError: object of type 'bool' has no len()</pre>
<tr id='pt28.17' class='hiddenRow bg-success'> <tr id='pt30.17' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreWebVisibilitys - test_allow_columns</div> <div class='testcase'>TestCalibreWebVisibilitys - test_allow_columns</div>
</td> </td>
...@@ -3288,7 +3281,7 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3288,7 +3281,7 @@ TypeError: object of type 'bool' has no len()</pre>
<tr id='pt28.18' class='hiddenRow bg-success'> <tr id='pt30.18' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreWebVisibilitys - test_allow_tags</div> <div class='testcase'>TestCalibreWebVisibilitys - test_allow_tags</div>
</td> </td>
...@@ -3297,7 +3290,7 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3297,7 +3290,7 @@ TypeError: object of type 'bool' has no len()</pre>
<tr id='pt28.19' class='hiddenRow bg-success'> <tr id='pt30.19' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreWebVisibilitys - test_archive_books</div> <div class='testcase'>TestCalibreWebVisibilitys - test_archive_books</div>
</td> </td>
...@@ -3306,7 +3299,7 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3306,7 +3299,7 @@ TypeError: object of type 'bool' has no len()</pre>
<tr id='pt28.20' class='hiddenRow bg-success'> <tr id='pt30.20' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreWebVisibilitys - test_authors_max_settings</div> <div class='testcase'>TestCalibreWebVisibilitys - test_authors_max_settings</div>
</td> </td>
...@@ -3315,7 +3308,7 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3315,7 +3308,7 @@ TypeError: object of type 'bool' has no len()</pre>
<tr id='pt28.21' class='hiddenRow bg-success'> <tr id='pt30.21' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreWebVisibilitys - test_change_title</div> <div class='testcase'>TestCalibreWebVisibilitys - test_change_title</div>
</td> </td>
...@@ -3324,7 +3317,7 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3324,7 +3317,7 @@ TypeError: object of type 'bool' has no len()</pre>
<tr id='pt28.22' class='hiddenRow bg-success'> <tr id='pt30.22' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreWebVisibilitys - test_checked_logged_in</div> <div class='testcase'>TestCalibreWebVisibilitys - test_checked_logged_in</div>
</td> </td>
...@@ -3333,7 +3326,7 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3333,7 +3326,7 @@ TypeError: object of type 'bool' has no len()</pre>
<tr id='pt28.23' class='hiddenRow bg-success'> <tr id='pt30.23' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreWebVisibilitys - test_hide_custom_column</div> <div class='testcase'>TestCalibreWebVisibilitys - test_hide_custom_column</div>
</td> </td>
...@@ -3342,7 +3335,7 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3342,7 +3335,7 @@ TypeError: object of type 'bool' has no len()</pre>
<tr id='pt28.24' class='hiddenRow bg-success'> <tr id='pt30.24' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreWebVisibilitys - test_link_column_to_read_status</div> <div class='testcase'>TestCalibreWebVisibilitys - test_link_column_to_read_status</div>
</td> </td>
...@@ -3351,7 +3344,7 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3351,7 +3344,7 @@ TypeError: object of type 'bool' has no len()</pre>
<tr id='pt28.25' class='hiddenRow bg-success'> <tr id='pt30.25' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreWebVisibilitys - test_random_books_available</div> <div class='testcase'>TestCalibreWebVisibilitys - test_random_books_available</div>
</td> </td>
...@@ -3360,7 +3353,7 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3360,7 +3353,7 @@ TypeError: object of type 'bool' has no len()</pre>
<tr id='pt28.26' class='hiddenRow bg-success'> <tr id='pt30.26' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreWebVisibilitys - test_restrict_columns</div> <div class='testcase'>TestCalibreWebVisibilitys - test_restrict_columns</div>
</td> </td>
...@@ -3369,7 +3362,7 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3369,7 +3362,7 @@ TypeError: object of type 'bool' has no len()</pre>
<tr id='pt28.27' class='hiddenRow bg-success'> <tr id='pt30.27' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreWebVisibilitys - test_restrict_tags</div> <div class='testcase'>TestCalibreWebVisibilitys - test_restrict_tags</div>
</td> </td>
...@@ -3378,7 +3371,7 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3378,7 +3371,7 @@ TypeError: object of type 'bool' has no len()</pre>
<tr id='pt28.28' class='hiddenRow bg-success'> <tr id='pt30.28' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreWebVisibilitys - test_save_views_recent</div> <div class='testcase'>TestCalibreWebVisibilitys - test_save_views_recent</div>
</td> </td>
...@@ -3387,7 +3380,7 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3387,7 +3380,7 @@ TypeError: object of type 'bool' has no len()</pre>
<tr id='pt28.29' class='hiddenRow bg-success'> <tr id='pt30.29' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreWebVisibilitys - test_search_functions</div> <div class='testcase'>TestCalibreWebVisibilitys - test_search_functions</div>
</td> </td>
...@@ -3396,7 +3389,7 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3396,7 +3389,7 @@ TypeError: object of type 'bool' has no len()</pre>
<tr id='pt28.30' class='hiddenRow bg-success'> <tr id='pt30.30' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreWebVisibilitys - test_search_order</div> <div class='testcase'>TestCalibreWebVisibilitys - test_search_order</div>
</td> </td>
...@@ -3405,7 +3398,7 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3405,7 +3398,7 @@ TypeError: object of type 'bool' has no len()</pre>
<tr id='pt28.31' class='hiddenRow bg-success'> <tr id='pt30.31' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreWebVisibilitys - test_search_string</div> <div class='testcase'>TestCalibreWebVisibilitys - test_search_string</div>
</td> </td>
...@@ -3414,7 +3407,7 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3414,7 +3407,7 @@ TypeError: object of type 'bool' has no len()</pre>
<tr id='pt28.32' class='hiddenRow bg-success'> <tr id='pt30.32' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreWebVisibilitys - test_user_email_available</div> <div class='testcase'>TestCalibreWebVisibilitys - test_user_email_available</div>
</td> </td>
...@@ -3423,7 +3416,7 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3423,7 +3416,7 @@ TypeError: object of type 'bool' has no len()</pre>
<tr id='pt28.33' class='hiddenRow bg-success'> <tr id='pt30.33' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreWebVisibilitys - test_user_visibility_sidebar</div> <div class='testcase'>TestCalibreWebVisibilitys - test_user_visibility_sidebar</div>
</td> </td>
...@@ -3441,13 +3434,13 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3441,13 +3434,13 @@ TypeError: object of type 'bool' has no len()</pre>
<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('c29', 16)">Detail</a> <a onclick="showClassDetail('c31', 16)">Detail</a>
</td> </td>
</tr> </tr>
<tr id='pt29.1' class='hiddenRow bg-success'> <tr id='pt31.1' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreHelper - test_author_sort</div> <div class='testcase'>TestCalibreHelper - test_author_sort</div>
</td> </td>
...@@ -3456,7 +3449,7 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3456,7 +3449,7 @@ TypeError: object of type 'bool' has no len()</pre>
<tr id='pt29.2' class='hiddenRow bg-success'> <tr id='pt31.2' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreHelper - test_author_sort_comma</div> <div class='testcase'>TestCalibreHelper - test_author_sort_comma</div>
</td> </td>
...@@ -3465,7 +3458,7 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3465,7 +3458,7 @@ TypeError: object of type 'bool' has no len()</pre>
<tr id='pt29.3' class='hiddenRow bg-success'> <tr id='pt31.3' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreHelper - test_author_sort_junior</div> <div class='testcase'>TestCalibreHelper - test_author_sort_junior</div>
</td> </td>
...@@ -3474,7 +3467,7 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3474,7 +3467,7 @@ TypeError: object of type 'bool' has no len()</pre>
<tr id='pt29.4' class='hiddenRow bg-success'> <tr id='pt31.4' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreHelper - test_author_sort_oneword</div> <div class='testcase'>TestCalibreHelper - test_author_sort_oneword</div>
</td> </td>
...@@ -3483,7 +3476,7 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3483,7 +3476,7 @@ TypeError: object of type 'bool' has no len()</pre>
<tr id='pt29.5' class='hiddenRow bg-success'> <tr id='pt31.5' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreHelper - test_author_sort_roman</div> <div class='testcase'>TestCalibreHelper - test_author_sort_roman</div>
</td> </td>
...@@ -3492,7 +3485,7 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3492,7 +3485,7 @@ TypeError: object of type 'bool' has no len()</pre>
<tr id='pt29.6' class='hiddenRow bg-success'> <tr id='pt31.6' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreHelper - test_check_Limit_Length</div> <div class='testcase'>TestCalibreHelper - test_check_Limit_Length</div>
</td> </td>
...@@ -3501,7 +3494,7 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3501,7 +3494,7 @@ TypeError: object of type 'bool' has no len()</pre>
<tr id='pt29.7' class='hiddenRow bg-success'> <tr id='pt31.7' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreHelper - test_check_char_replacement</div> <div class='testcase'>TestCalibreHelper - test_check_char_replacement</div>
</td> </td>
...@@ -3510,7 +3503,7 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3510,7 +3503,7 @@ TypeError: object of type 'bool' has no len()</pre>
<tr id='pt29.8' class='hiddenRow bg-success'> <tr id='pt31.8' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreHelper - test_check_chinese_Characters</div> <div class='testcase'>TestCalibreHelper - test_check_chinese_Characters</div>
</td> </td>
...@@ -3519,7 +3512,7 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3519,7 +3512,7 @@ TypeError: object of type 'bool' has no len()</pre>
<tr id='pt29.9' class='hiddenRow bg-success'> <tr id='pt31.9' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreHelper - test_check_deg_eur_replacement</div> <div class='testcase'>TestCalibreHelper - test_check_deg_eur_replacement</div>
</td> </td>
...@@ -3528,7 +3521,7 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3528,7 +3521,7 @@ TypeError: object of type 'bool' has no len()</pre>
<tr id='pt29.10' class='hiddenRow bg-success'> <tr id='pt31.10' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreHelper - test_check_doubleS</div> <div class='testcase'>TestCalibreHelper - test_check_doubleS</div>
</td> </td>
...@@ -3537,7 +3530,7 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3537,7 +3530,7 @@ TypeError: object of type 'bool' has no len()</pre>
<tr id='pt29.11' class='hiddenRow bg-success'> <tr id='pt31.11' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreHelper - test_check_finish_Dot</div> <div class='testcase'>TestCalibreHelper - test_check_finish_Dot</div>
</td> </td>
...@@ -3546,7 +3539,7 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3546,7 +3539,7 @@ TypeError: object of type 'bool' has no len()</pre>
<tr id='pt29.12' class='hiddenRow bg-success'> <tr id='pt31.12' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreHelper - test_check_high23</div> <div class='testcase'>TestCalibreHelper - test_check_high23</div>
</td> </td>
...@@ -3555,7 +3548,7 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3555,7 +3548,7 @@ TypeError: object of type 'bool' has no len()</pre>
<tr id='pt29.13' class='hiddenRow bg-success'> <tr id='pt31.13' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreHelper - test_check_umlauts</div> <div class='testcase'>TestCalibreHelper - test_check_umlauts</div>
</td> </td>
...@@ -3564,7 +3557,7 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3564,7 +3557,7 @@ TypeError: object of type 'bool' has no len()</pre>
<tr id='pt29.14' class='hiddenRow bg-success'> <tr id='pt31.14' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreHelper - test_random_password</div> <div class='testcase'>TestCalibreHelper - test_random_password</div>
</td> </td>
...@@ -3573,7 +3566,7 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3573,7 +3566,7 @@ TypeError: object of type 'bool' has no len()</pre>
<tr id='pt29.15' class='hiddenRow bg-success'> <tr id='pt31.15' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreHelper - test_split_authors</div> <div class='testcase'>TestCalibreHelper - test_split_authors</div>
</td> </td>
...@@ -3582,7 +3575,7 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3582,7 +3575,7 @@ TypeError: object of type 'bool' has no len()</pre>
<tr id='pt29.16' class='hiddenRow bg-success'> <tr id='pt31.16' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestCalibreHelper - test_whitespaces</div> <div class='testcase'>TestCalibreHelper - test_whitespaces</div>
</td> </td>
...@@ -3593,10 +3586,10 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3593,10 +3586,10 @@ TypeError: object of type 'bool' has no len()</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>290</td> <td>293</td>
<td>267</td> <td>273</td>
<td>5</td>
<td>4</td> <td>4</td>
<td>2</td>
<td>14</td> <td>14</td>
<td>&nbsp;</td> <td>&nbsp;</td>
</tr> </tr>
...@@ -3631,13 +3624,13 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3631,13 +3624,13 @@ TypeError: object of type 'bool' has no len()</pre>
<tr> <tr>
<th>Python</th> <th>Python</th>
<td>3.8.3</td> <td>3.8.6</td>
<td>Basic</td> <td>Basic</td>
</tr> </tr>
<tr> <tr>
<th>Babel</th> <th>Babel</th>
<td>2.8.0</td> <td>2.8.1</td>
<td>Basic</td> <td>Basic</td>
</tr> </tr>
...@@ -3655,7 +3648,7 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3655,7 +3648,7 @@ TypeError: object of type 'bool' has no len()</pre>
<tr> <tr>
<th>Flask-Babel</th> <th>Flask-Babel</th>
<td>1.0.0</td> <td>2.0.0</td>
<td>Basic</td> <td>Basic</td>
</tr> </tr>
...@@ -3683,24 +3676,6 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3683,24 +3676,6 @@ TypeError: object of type 'bool' has no len()</pre>
<td>Basic</td> <td>Basic</td>
</tr> </tr>
<tr>
<th>natsort</th>
<td>7.0.1</td>
<td>Basic</td>
</tr>
<tr>
<th>pyasn1</th>
<td>0.4.8</td>
<td>Basic</td>
</tr>
<tr>
<th>pyasn1-modules</th>
<td>0.2.8</td>
<td>Basic</td>
</tr>
<tr> <tr>
<th>PyPDF2</th> <th>PyPDF2</th>
<td>1.26.0</td> <td>1.26.0</td>
...@@ -3709,19 +3684,13 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3709,19 +3684,13 @@ TypeError: object of type 'bool' has no len()</pre>
<tr> <tr>
<th>pytz</th> <th>pytz</th>
<td>2020.1</td> <td>2020.4</td>
<td>Basic</td> <td>Basic</td>
</tr> </tr>
<tr> <tr>
<th>requests</th> <th>requests</th>
<td>2.23.0</td> <td>2.24.0</td>
<td>Basic</td>
</tr>
<tr>
<th>rsa</th>
<td>4.6</td>
<td>Basic</td> <td>Basic</td>
</tr> </tr>
...@@ -3739,13 +3708,13 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3739,13 +3708,13 @@ TypeError: object of type 'bool' has no len()</pre>
<tr> <tr>
<th>SQLAlchemy</th> <th>SQLAlchemy</th>
<td>1.3.19</td> <td>1.3.20</td>
<td>Basic</td> <td>Basic</td>
</tr> </tr>
<tr> <tr>
<th>tornado</th> <th>tornado</th>
<td>6.0.4</td> <td>6.1</td>
<td>Basic</td> <td>Basic</td>
</tr> </tr>
...@@ -3755,15 +3724,9 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3755,15 +3724,9 @@ TypeError: object of type 'bool' has no len()</pre>
<td>Basic</td> <td>Basic</td>
</tr> </tr>
<tr>
<th>uritemplate</th>
<td>3.0.1</td>
<td>Basic</td>
</tr>
<tr> <tr>
<th>Wand</th> <th>Wand</th>
<td>0.5.9</td> <td>0.6.5</td>
<td>Basic</td> <td>Basic</td>
</tr> </tr>
...@@ -3773,12 +3736,6 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3773,12 +3736,6 @@ TypeError: object of type 'bool' has no len()</pre>
<td>Basic</td> <td>Basic</td>
</tr> </tr>
<tr>
<th>Pillow</th>
<td>8.0.1</td>
<td>TestCoverEditBooks</td>
</tr>
<tr> <tr>
<th>google-api-python-client</th> <th>google-api-python-client</th>
<td>1.12.8</td> <td>1.12.8</td>
...@@ -3804,14 +3761,8 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3804,14 +3761,8 @@ TypeError: object of type 'bool' has no len()</pre>
</tr> </tr>
<tr> <tr>
<th>Pillow</th> <th>PyDrive2</th>
<td>8.0.1</td> <td>1.7.0</td>
<td>TestEbookConvertCalibreGDrive</td>
</tr>
<tr>
<th>PyDrive</th>
<td>1.3.1</td>
<td>TestEbookConvertCalibreGDrive</td> <td>TestEbookConvertCalibreGDrive</td>
</tr> </tr>
...@@ -3833,12 +3784,6 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3833,12 +3784,6 @@ TypeError: object of type 'bool' has no len()</pre>
<td>TestEditAdditionalBooks</td> <td>TestEditAdditionalBooks</td>
</tr> </tr>
<tr>
<th>Pillow</th>
<td>8.0.1</td>
<td>TestEditAdditionalBooks</td>
</tr>
<tr> <tr>
<th>rarfile</th> <th>rarfile</th>
<td>4.0</td> <td>4.0</td>
...@@ -3851,12 +3796,6 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3851,12 +3796,6 @@ TypeError: object of type 'bool' has no len()</pre>
<td>TestEditBooks</td> <td>TestEditBooks</td>
</tr> </tr>
<tr>
<th>Pillow</th>
<td>8.0.1</td>
<td>TestEditBooks</td>
</tr>
<tr> <tr>
<th>google-api-python-client</th> <th>google-api-python-client</th>
<td>1.12.8</td> <td>1.12.8</td>
...@@ -3882,14 +3821,8 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3882,14 +3821,8 @@ TypeError: object of type 'bool' has no len()</pre>
</tr> </tr>
<tr> <tr>
<th>Pillow</th> <th>PyDrive2</th>
<td>8.0.1</td> <td>1.7.0</td>
<td>TestEditBooksOnGdrive</td>
</tr>
<tr>
<th>PyDrive</th>
<td>1.3.1</td>
<td>TestEditBooksOnGdrive</td> <td>TestEditBooksOnGdrive</td>
</tr> </tr>
...@@ -3918,8 +3851,8 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3918,8 +3851,8 @@ TypeError: object of type 'bool' has no len()</pre>
</tr> </tr>
<tr> <tr>
<th>PyDrive</th> <th>PyDrive2</th>
<td>1.3.1</td> <td>1.7.0</td>
<td>TestSetupGdrive</td> <td>TestSetupGdrive</td>
</tr> </tr>
...@@ -3973,7 +3906,7 @@ TypeError: object of type 'bool' has no len()</pre> ...@@ -3973,7 +3906,7 @@ TypeError: object of type 'bool' has no len()</pre>
</div> </div>
<script> <script>
drawCircle(267, 5, 4, 14); drawCircle(273, 4, 2, 14);
</script> </script>
</div> </div>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment