diff --git a/cps/gdrive.py b/cps/gdrive.py index e2b6298d..a4df41dd 100644 --- a/cps/gdrive.py +++ b/cps/gdrive.py @@ -125,7 +125,7 @@ def on_received_watch_confirmation(): if request.headers.get('X-Goog-Channel-Token') != gdrive_watch_callback_token \ or request.headers.get('X-Goog-Resource-State') != 'change' \ or not request.data: - return '' # redirect(url_for('admin.configuration')) + return '' log.debug('%r', request.headers) log.debug('%r', request.data) @@ -143,14 +143,17 @@ def on_received_watch_confirmation(): dbpath = os.path.join(config.config_calibre_dir, "metadata.db").encode() if not response['deleted'] and response['file']['title'] == 'metadata.db' \ 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') - 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') - 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') - # prevent error on windows, as os.rename does on exisiting files - move(os.path.join(tmpDir, "tmp_metadata.db"), dbpath) + # prevent error on windows, as os.rename does on existing files, also allow cross hdd move + move(os.path.join(tmp_dir, "tmp_metadata.db"), dbpath) calibre_db.reconnect_db(config, ub.app_DB_path) except Exception as e: log.exception(e) diff --git a/cps/helper.py b/cps/helper.py index e5197fb0..95943f2f 100644 --- a/cps/helper.py +++ b/cps/helper.py @@ -634,11 +634,14 @@ def save_cover(img, book_path): return False, _("Only jpg/jpeg files are supported as coverfile") if config.config_use_google_drive: - tmpDir = gettempdir() - ret, message = save_cover_from_filestorage(tmpDir, "uploaded_cover.jpg", img) + tmp_dir = os.path.join(gettempdir(), 'calibre_web') + + 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: - gd.uploadFileToEbooksFolder(os.path.join(book_path, 'cover.jpg'), - os.path.join(tmpDir, "uploaded_cover.jpg")) + gd.uploadFileToEbooksFolder(os.path.join(book_path, 'cover.jpg').replace("\\","/"), + os.path.join(tmp_dir, "uploaded_cover.jpg")) log.info("Cover is saved on Google Drive") return True, None else: diff --git a/test/Calibre-Web TestSummary_Windows.html b/test/Calibre-Web TestSummary_Windows.html index 0c4136ea..f2378fc7 100644 --- a/test/Calibre-Web TestSummary_Windows.html +++ b/test/Calibre-Web TestSummary_Windows.html @@ -37,20 +37,20 @@ <div class="row"> <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 class="row"> <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 class="row"> <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> @@ -360,9 +360,9 @@ </div> <div class="text-left pull-left"> <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 - self.assertTrue(self.check_element_on_page((By.ID, 'flash_alert')), "BMP file is not detected") -AssertionError: False is not true : BMP file is not detected</pre> + File "C:\Entwicklung\calibre-web-test\test\test_cover_edit_books.py", line 76, in test_upload_jpg + self.assertGreater(diff('web.png', 'jpg.png', delete_diff_file=True), 0.007) +AssertionError: 0.005610772603121106 not greater than 0.007</pre> </div> <div class="clearfix"></div> </div> @@ -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 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">1</td> <td class="text-center">2</td> <td class="text-center"> <a onclick="showClassDetail('c9', 13)">Detail</a> @@ -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> <div class='testcase'>TestEditAdditionalBooks - test_title_sort</div> </td> - <td colspan='6'> - <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">×</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> + <td colspan='6' align='center'>PASS</td> </tr> @@ -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 class="text-center">33</td> - <td class="text-center">31</td> - <td class="text-center">0</td> + <td class="text-center">30</td> + <td class="text-center">1</td> <td class="text-center">0</td> <td class="text-center">2</td> <td class="text-center"> @@ -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> <div class='testcase'>TestEditBooks - test_upload_cover_hdd</div> </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">×</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> @@ -1345,8 +1343,8 @@ AttributeError: 'bool' object has no attribute 'send_keys'</pre> <tr id="su" class="failClass"> <td>TestEditBooksOnGdrive</td> <td class="text-center">20</td> - <td class="text-center">18</td> - <td class="text-center">2</td> + <td class="text-center">19</td> + <td class="text-center">1</td> <td class="text-center">0</td> <td class="text-center">0</td> <td class="text-center"> @@ -1535,7 +1533,7 @@ AttributeError: 'bool' object has no attribute 'send_keys'</pre> </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 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) AssertionError: 0.0 not greater than 0.02</pre> </div> @@ -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> <div class='testcase'>TestEditBooksOnGdrive - test_watch_metadata</div> </td> - <td colspan='6'> - <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">×</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> + <td colspan='6' align='center'>PASS</td> </tr> @@ -1843,13 +1821,13 @@ AssertionError: False is not true</pre> <tr id="su" class="passClass"> <td>TestLdapLogin</td> - <td class="text-center">12</td> - <td class="text-center">12</td> + <td class="text-center">13</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"> - <a onclick="showClassDetail('c18', 12)">Detail</a> + <a onclick="showClassDetail('c18', 13)">Detail</a> </td> </tr> @@ -1902,7 +1880,7 @@ AssertionError: False is not true</pre> <tr id='pt18.6' class='hiddenRow bg-success'> <td> - <div class='testcase'>TestLdapLogin - test_LDAP_login</div> + <div class='testcase'>TestLdapLogin - test_LDAP_import_memberfield</div> </td> <td colspan='6' align='center'>PASS</td> </tr> @@ -1911,7 +1889,7 @@ AssertionError: False is not true</pre> <tr id='pt18.7' class='hiddenRow bg-success'> <td> - <div class='testcase'>TestLdapLogin - test_invalid_LDAP</div> + <div class='testcase'>TestLdapLogin - test_LDAP_login</div> </td> <td colspan='6' align='center'>PASS</td> </tr> @@ -1920,7 +1898,7 @@ AssertionError: False is not true</pre> <tr id='pt18.8' class='hiddenRow bg-success'> <td> - <div class='testcase'>TestLdapLogin - test_ldap_about</div> + <div class='testcase'>TestLdapLogin - test_invalid_LDAP</div> </td> <td colspan='6' align='center'>PASS</td> </tr> @@ -1929,7 +1907,7 @@ AssertionError: False is not true</pre> <tr id='pt18.9' class='hiddenRow bg-success'> <td> - <div class='testcase'>TestLdapLogin - test_ldap_authentication</div> + <div class='testcase'>TestLdapLogin - test_ldap_about</div> </td> <td colspan='6' align='center'>PASS</td> </tr> @@ -1938,7 +1916,7 @@ AssertionError: False is not true</pre> <tr id='pt18.10' class='hiddenRow bg-success'> <td> - <div class='testcase'>TestLdapLogin - test_ldap_kobo_sync</div> + <div class='testcase'>TestLdapLogin - test_ldap_authentication</div> </td> <td colspan='6' align='center'>PASS</td> </tr> @@ -1947,7 +1925,7 @@ AssertionError: False is not true</pre> <tr id='pt18.11' class='hiddenRow bg-success'> <td> - <div class='testcase'>TestLdapLogin - test_ldap_opds_anonymous</div> + <div class='testcase'>TestLdapLogin - test_ldap_kobo_sync</div> </td> <td colspan='6' align='center'>PASS</td> </tr> @@ -1955,6 +1933,15 @@ AssertionError: False is not true</pre> <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> <div class='testcase'>TestLdapLogin - test_ldap_opds_download_book</div> </td> @@ -2422,8 +2409,8 @@ AssertionError: False is not true</pre> <tr id="su" class="failClass"> <td>TestReader</td> <td class="text-center">5</td> - <td class="text-center">3</td> - <td class="text-center">2</td> + <td class="text-center">4</td> + <td class="text-center">1</td> <td class="text-center">0</td> <td class="text-center">0</td> <td class="text-center"> @@ -2477,9 +2464,9 @@ AssertionError: False is not true</pre> </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 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') - 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) AssertionError: 'Unknown - music' != '✖ ✖ 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> <div class='testcase'>TestReader - test_txt_reader</div> </td> - <td colspan='6'> - <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">×</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> + <td colspan='6' align='center'>PASS</td> </tr> @@ -2809,7 +2776,7 @@ AssertionError: False is not true : Encoding of textfile viewer is not respected </div> <div class="text-left pull-left"> <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() 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) @@ -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">×</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"> <td>TestUserTemplate</td> <td class="text-center">21</td> @@ -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"> - <a onclick="showClassDetail('c27', 21)">Detail</a> + <a onclick="showClassDetail('c29', 21)">Detail</a> </td> </tr> - <tr id='pt27.1' class='hiddenRow bg-success'> + <tr id='pt29.1' class='hiddenRow bg-success'> <td> <div class='testcase'>TestUserTemplate - test_allow_column_restriction</div> </td> @@ -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> <div class='testcase'>TestUserTemplate - test_allow_tag_restriction</div> </td> @@ -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> <div class='testcase'>TestUserTemplate - test_archived_format_template</div> </td> @@ -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> <div class='testcase'>TestUserTemplate - test_author_user_template</div> </td> @@ -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> <div class='testcase'>TestUserTemplate - test_best_user_template</div> </td> @@ -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> <div class='testcase'>TestUserTemplate - test_category_user_template</div> </td> @@ -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> <div class='testcase'>TestUserTemplate - test_deny_column_restriction</div> </td> @@ -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> <div class='testcase'>TestUserTemplate - test_deny_tag_restriction</div> </td> @@ -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> <div class='testcase'>TestUserTemplate - test_detail_random_user_template</div> </td> @@ -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> <div class='testcase'>TestUserTemplate - test_download_user_template</div> </td> @@ -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> <div class='testcase'>TestUserTemplate - test_format_user_template</div> </td> @@ -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> <div class='testcase'>TestUserTemplate - test_hot_user_template</div> </td> @@ -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> <div class='testcase'>TestUserTemplate - test_language_user_template</div> </td> @@ -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> <div class='testcase'>TestUserTemplate - test_limit_book_languages</div> </td> @@ -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> <div class='testcase'>TestUserTemplate - test_list_user_template</div> </td> @@ -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> <div class='testcase'>TestUserTemplate - test_publisher_user_template</div> </td> @@ -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> <div class='testcase'>TestUserTemplate - test_random_user_template</div> </td> @@ -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> <div class='testcase'>TestUserTemplate - test_read_user_template</div> </td> @@ -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> <div class='testcase'>TestUserTemplate - test_recent_user_template</div> </td> @@ -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> <div class='testcase'>TestUserTemplate - test_series_user_template</div> </td> @@ -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> <div class='testcase'>TestUserTemplate - test_ui_language_settings</div> </td> @@ -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 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">2</td> <td class="text-center">0</td> <td class="text-center"> - <a onclick="showClassDetail('c28', 33)">Detail</a> + <a onclick="showClassDetail('c30', 33)">Detail</a> </td> </tr> - <tr id='pt28.1' class='hiddenRow bg-success'> + <tr id='pt30.1' class='hiddenRow bg-success'> <td> <div class='testcase'>TestCalibreWebVisibilitys - test_about</div> </td> @@ -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> <div class='testcase'>TestCalibreWebVisibilitys - test_admin_SMTP_Settings</div> </td> @@ -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> <div class='testcase'>TestCalibreWebVisibilitys - test_admin_add_user</div> </td> @@ -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> <div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_password</div> </td> @@ -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> <div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_archived</div> </td> @@ -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> <div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_authors</div> </td> @@ -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> <div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_category</div> </td> @@ -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> <div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_file_formats</div> </td> @@ -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> <div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_hot</div> </td> @@ -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> <div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_language</div> </td> @@ -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> <div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_publisher</div> </td> @@ -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> <div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_random</div> </td> @@ -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> <div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_rated</div> </td> @@ -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> <div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_rating</div> </td> - <td colspan='6'> - <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">×</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> + <td colspan='6' align='center'>PASS</td> </tr> - <tr id="et28.15" class="none bg-info"> + <tr id='pt30.15' class='hiddenRow bg-success'> <td> <div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_read</div> </td> - <td colspan='6'> - <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">×</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> + <td colspan='6' align='center'>PASS</td> </tr> - <tr id='pt28.16' class='hiddenRow bg-success'> + <tr id='pt30.16' class='hiddenRow bg-success'> <td> <div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_series</div> </td> @@ -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> <div class='testcase'>TestCalibreWebVisibilitys - test_allow_columns</div> </td> @@ -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> <div class='testcase'>TestCalibreWebVisibilitys - test_allow_tags</div> </td> @@ -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> <div class='testcase'>TestCalibreWebVisibilitys - test_archive_books</div> </td> @@ -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> <div class='testcase'>TestCalibreWebVisibilitys - test_authors_max_settings</div> </td> @@ -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> <div class='testcase'>TestCalibreWebVisibilitys - test_change_title</div> </td> @@ -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> <div class='testcase'>TestCalibreWebVisibilitys - test_checked_logged_in</div> </td> @@ -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> <div class='testcase'>TestCalibreWebVisibilitys - test_hide_custom_column</div> </td> @@ -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> <div class='testcase'>TestCalibreWebVisibilitys - test_link_column_to_read_status</div> </td> @@ -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> <div class='testcase'>TestCalibreWebVisibilitys - test_random_books_available</div> </td> @@ -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> <div class='testcase'>TestCalibreWebVisibilitys - test_restrict_columns</div> </td> @@ -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> <div class='testcase'>TestCalibreWebVisibilitys - test_restrict_tags</div> </td> @@ -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> <div class='testcase'>TestCalibreWebVisibilitys - test_save_views_recent</div> </td> @@ -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> <div class='testcase'>TestCalibreWebVisibilitys - test_search_functions</div> </td> @@ -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> <div class='testcase'>TestCalibreWebVisibilitys - test_search_order</div> </td> @@ -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> <div class='testcase'>TestCalibreWebVisibilitys - test_search_string</div> </td> @@ -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> <div class='testcase'>TestCalibreWebVisibilitys - test_user_email_available</div> </td> @@ -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> <div class='testcase'>TestCalibreWebVisibilitys - test_user_visibility_sidebar</div> </td> @@ -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"> - <a onclick="showClassDetail('c29', 16)">Detail</a> + <a onclick="showClassDetail('c31', 16)">Detail</a> </td> </tr> - <tr id='pt29.1' class='hiddenRow bg-success'> + <tr id='pt31.1' class='hiddenRow bg-success'> <td> <div class='testcase'>TestCalibreHelper - test_author_sort</div> </td> @@ -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> <div class='testcase'>TestCalibreHelper - test_author_sort_comma</div> </td> @@ -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> <div class='testcase'>TestCalibreHelper - test_author_sort_junior</div> </td> @@ -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> <div class='testcase'>TestCalibreHelper - test_author_sort_oneword</div> </td> @@ -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> <div class='testcase'>TestCalibreHelper - test_author_sort_roman</div> </td> @@ -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> <div class='testcase'>TestCalibreHelper - test_check_Limit_Length</div> </td> @@ -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> <div class='testcase'>TestCalibreHelper - test_check_char_replacement</div> </td> @@ -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> <div class='testcase'>TestCalibreHelper - test_check_chinese_Characters</div> </td> @@ -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> <div class='testcase'>TestCalibreHelper - test_check_deg_eur_replacement</div> </td> @@ -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> <div class='testcase'>TestCalibreHelper - test_check_doubleS</div> </td> @@ -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> <div class='testcase'>TestCalibreHelper - test_check_finish_Dot</div> </td> @@ -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> <div class='testcase'>TestCalibreHelper - test_check_high23</div> </td> @@ -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> <div class='testcase'>TestCalibreHelper - test_check_umlauts</div> </td> @@ -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> <div class='testcase'>TestCalibreHelper - test_random_password</div> </td> @@ -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> <div class='testcase'>TestCalibreHelper - test_split_authors</div> </td> @@ -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> <div class='testcase'>TestCalibreHelper - test_whitespaces</div> </td> @@ -3593,10 +3586,10 @@ TypeError: object of type 'bool' has no len()</pre> <tr id='total_row' class="text-center bg-grey"> <td>Total</td> - <td>290</td> - <td>267</td> - <td>5</td> + <td>293</td> + <td>273</td> <td>4</td> + <td>2</td> <td>14</td> <td> </td> </tr> @@ -3631,13 +3624,13 @@ TypeError: object of type 'bool' has no len()</pre> <tr> <th>Python</th> - <td>3.8.3</td> + <td>3.8.6</td> <td>Basic</td> </tr> <tr> <th>Babel</th> - <td>2.8.0</td> + <td>2.8.1</td> <td>Basic</td> </tr> @@ -3655,7 +3648,7 @@ TypeError: object of type 'bool' has no len()</pre> <tr> <th>Flask-Babel</th> - <td>1.0.0</td> + <td>2.0.0</td> <td>Basic</td> </tr> @@ -3683,24 +3676,6 @@ TypeError: object of type 'bool' has no len()</pre> <td>Basic</td> </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> <th>PyPDF2</th> <td>1.26.0</td> @@ -3709,19 +3684,13 @@ TypeError: object of type 'bool' has no len()</pre> <tr> <th>pytz</th> - <td>2020.1</td> + <td>2020.4</td> <td>Basic</td> </tr> <tr> <th>requests</th> - <td>2.23.0</td> - <td>Basic</td> - </tr> - - <tr> - <th>rsa</th> - <td>4.6</td> + <td>2.24.0</td> <td>Basic</td> </tr> @@ -3739,13 +3708,13 @@ TypeError: object of type 'bool' has no len()</pre> <tr> <th>SQLAlchemy</th> - <td>1.3.19</td> + <td>1.3.20</td> <td>Basic</td> </tr> <tr> <th>tornado</th> - <td>6.0.4</td> + <td>6.1</td> <td>Basic</td> </tr> @@ -3755,15 +3724,9 @@ TypeError: object of type 'bool' has no len()</pre> <td>Basic</td> </tr> - <tr> - <th>uritemplate</th> - <td>3.0.1</td> - <td>Basic</td> - </tr> - <tr> <th>Wand</th> - <td>0.5.9</td> + <td>0.6.5</td> <td>Basic</td> </tr> @@ -3773,12 +3736,6 @@ TypeError: object of type 'bool' has no len()</pre> <td>Basic</td> </tr> - <tr> - <th>Pillow</th> - <td>8.0.1</td> - <td>TestCoverEditBooks</td> - </tr> - <tr> <th>google-api-python-client</th> <td>1.12.8</td> @@ -3804,14 +3761,8 @@ TypeError: object of type 'bool' has no len()</pre> </tr> <tr> - <th>Pillow</th> - <td>8.0.1</td> - <td>TestEbookConvertCalibreGDrive</td> - </tr> - - <tr> - <th>PyDrive</th> - <td>1.3.1</td> + <th>PyDrive2</th> + <td>1.7.0</td> <td>TestEbookConvertCalibreGDrive</td> </tr> @@ -3833,12 +3784,6 @@ TypeError: object of type 'bool' has no len()</pre> <td>TestEditAdditionalBooks</td> </tr> - <tr> - <th>Pillow</th> - <td>8.0.1</td> - <td>TestEditAdditionalBooks</td> - </tr> - <tr> <th>rarfile</th> <td>4.0</td> @@ -3851,12 +3796,6 @@ TypeError: object of type 'bool' has no len()</pre> <td>TestEditBooks</td> </tr> - <tr> - <th>Pillow</th> - <td>8.0.1</td> - <td>TestEditBooks</td> - </tr> - <tr> <th>google-api-python-client</th> <td>1.12.8</td> @@ -3882,14 +3821,8 @@ TypeError: object of type 'bool' has no len()</pre> </tr> <tr> - <th>Pillow</th> - <td>8.0.1</td> - <td>TestEditBooksOnGdrive</td> - </tr> - - <tr> - <th>PyDrive</th> - <td>1.3.1</td> + <th>PyDrive2</th> + <td>1.7.0</td> <td>TestEditBooksOnGdrive</td> </tr> @@ -3918,8 +3851,8 @@ TypeError: object of type 'bool' has no len()</pre> </tr> <tr> - <th>PyDrive</th> - <td>1.3.1</td> + <th>PyDrive2</th> + <td>1.7.0</td> <td>TestSetupGdrive</td> </tr> @@ -3973,7 +3906,7 @@ TypeError: object of type 'bool' has no len()</pre> </div> <script> - drawCircle(267, 5, 4, 14); + drawCircle(273, 4, 2, 14); </script> </div>