Start Time: 2021-05-18 17:33:17
Stop Time: 2021-05-18 20:37:38
Duration: 2h 35 min
| Test Group/Test case | Count | Pass | Fail | Error | Skip | View | 
| TestAnonymous | 13 | 13 | 0 | 0 | 0 | Detail | 
| 
                 TestAnonymous - test_check_locale_guest 
             | 
            PASS | |||||
| 
                 TestAnonymous - test_guest_about 
             | 
            PASS | |||||
| 
                 TestAnonymous - test_guest_change_visibility_category 
             | 
            PASS | |||||
| 
                 TestAnonymous - test_guest_change_visibility_format 
             | 
            PASS | |||||
| 
                 TestAnonymous - test_guest_change_visibility_hot 
             | 
            PASS | |||||
| 
                 TestAnonymous - test_guest_change_visibility_language 
             | 
            PASS | |||||
| 
                 TestAnonymous - test_guest_change_visibility_publisher 
             | 
            PASS | |||||
| 
                 TestAnonymous - test_guest_change_visibility_rated 
             | 
            PASS | |||||
| 
                 TestAnonymous - test_guest_change_visibility_rating 
             | 
            PASS | |||||
| 
                 TestAnonymous - test_guest_change_visibility_series 
             | 
            PASS | |||||
| 
                 TestAnonymous - test_guest_random_books_available 
             | 
            PASS | |||||
| 
                 TestAnonymous - test_guest_restricted_settings_visibility 
             | 
            PASS | |||||
| 
                 TestAnonymous - test_guest_visibility_sidebar 
             | 
            PASS | |||||
| TestCli | 8 | 8 | 0 | 0 | 0 | Detail | 
| 
                 TestCli - test_already_started 
             | 
            PASS | |||||
| 
                 TestCli - test_bind_to_single_interface 
             | 
            PASS | |||||
| 
                 TestCli - test_change_password 
             | 
            PASS | |||||
| 
                 TestCli - test_cli_SSL_files 
             | 
            PASS | |||||
| 
                 TestCli - test_cli_different_folder 
             | 
            PASS | |||||
| 
                 TestCli - test_cli_different_settings_database 
             | 
            PASS | |||||
| 
                 TestCli - test_environ_port_setting 
             | 
            PASS | |||||
| 
                 TestCli - test_settingsdb_not_writeable 
             | 
            PASS | |||||
| TestCliGdrivedb | 2 | 2 | 0 | 0 | 0 | Detail | 
| 
                 TestCliGdrivedb - test_cli_gdrive_location 
             | 
            PASS | |||||
| 
                 TestCliGdrivedb - test_gdrive_db_nonwrite 
             | 
            PASS | |||||
| TestCoverEditBooks | 1 | 1 | 0 | 0 | 0 | Detail | 
| 
                 TestCoverEditBooks - test_upload_jpg 
             | 
            PASS | |||||
| TestDeleteDatabase | 1 | 1 | 0 | 0 | 0 | Detail | 
| 
                 TestDeleteDatabase - test_delete_books_in_database 
             | 
            PASS | |||||
| TestEbookConvertCalibre | 11 | 0 | 0 | 0 | 11 | Detail | 
| 
                 TestEbookConvertCalibre - test_convert_deactivate 
             | 
            ||||||
| 
                 TestEbookConvertCalibre - test_convert_email 
             | 
            ||||||
| 
                 TestEbookConvertCalibre - test_convert_failed_and_email 
             | 
            ||||||
| 
                 TestEbookConvertCalibre - test_convert_only 
             | 
            ||||||
| 
                 TestEbookConvertCalibre - test_convert_parameter 
             | 
            ||||||
| 
                 TestEbookConvertCalibre - test_convert_wrong_excecutable 
             | 
            ||||||
| 
                 TestEbookConvertCalibre - test_email_failed 
             | 
            ||||||
| 
                 TestEbookConvertCalibre - test_email_only 
             | 
            ||||||
| 
                 TestEbookConvertCalibre - test_kindle_send_not_configured 
             | 
            ||||||
| 
                 TestEbookConvertCalibre - test_ssl_smtp_setup_error 
             | 
            ||||||
| 
                 TestEbookConvertCalibre - test_starttls_smtp_setup_error 
             | 
            ||||||
| TestEbookConvertCalibreGDrive | 6 | 0 | 0 | 0 | 6 | Detail | 
| 
                 TestEbookConvertCalibreGDrive - test_convert_email 
             | 
            ||||||
| 
                 TestEbookConvertCalibreGDrive - test_convert_failed_and_email 
             | 
            ||||||
| 
                 TestEbookConvertCalibreGDrive - test_convert_only 
             | 
            ||||||
| 
                 TestEbookConvertCalibreGDrive - test_convert_parameter 
             | 
            ||||||
| 
                 TestEbookConvertCalibreGDrive - test_email_failed 
             | 
            ||||||
| 
                 TestEbookConvertCalibreGDrive - test_email_only 
             | 
            ||||||
| TestEbookConvertKepubify | 3 | 0 | 0 | 0 | 3 | Detail | 
| 
                 TestEbookConvertKepubify - test_convert_deactivate 
             | 
            ||||||
| 
                 TestEbookConvertKepubify - test_convert_only 
             | 
            ||||||
| 
                 TestEbookConvertKepubify - test_convert_wrong_excecutable 
             | 
            ||||||
| TestEbookConvertGDriveKepubify | 3 | 0 | 0 | 0 | 3 | Detail | 
| 
                 TestEbookConvertGDriveKepubify - test_convert_deactivate 
             | 
            ||||||
| 
                 TestEbookConvertGDriveKepubify - test_convert_only 
             | 
            ||||||
| 
                 TestEbookConvertGDriveKepubify - test_convert_wrong_excecutable 
             | 
            ||||||
| TestEditAdditionalBooks | 13 | 11 | 0 | 0 | 2 | Detail | 
| 
                 TestEditAdditionalBooks - test_change_upload_formats 
             | 
            PASS | |||||
| 
                 TestEditAdditionalBooks - test_delete_book 
             | 
            PASS | |||||
| 
                 TestEditAdditionalBooks - test_delete_role 
             | 
            PASS | |||||
| 
                 TestEditAdditionalBooks - test_edit_book_identifier 
             | 
            PASS | |||||
| 
                 TestEditAdditionalBooks - test_edit_book_identifier_capital 
             | 
            PASS | |||||
| 
                 TestEditAdditionalBooks - test_edit_book_identifier_standard 
             | 
            PASS | |||||
| 
                 TestEditAdditionalBooks - test_edit_special_book_identifier 
             | 
            PASS | |||||
| 
                 TestEditAdditionalBooks - test_title_sort 
             | 
            PASS | |||||
| 
                 TestEditAdditionalBooks - test_upload_edit_role 
             | 
            PASS | |||||
| 
                 TestEditAdditionalBooks - test_upload_metadata_cbr 
             | 
            PASS | |||||
| 
                 TestEditAdditionalBooks - test_upload_metadata_cbt 
             | 
            PASS | |||||
| 
                 TestEditAdditionalBooks - test_writeonly_calibre_database 
             | 
            ||||||
| 
                 TestEditAdditionalBooks - test_writeonly_path 
             | 
            ||||||
| TestEditBooks | 35 | 32 | 2 | 0 | 1 | Detail | 
| 
                 TestEditBooks - test_download_book 
             | 
            PASS | |||||
| 
                 TestEditBooks - test_edit_author 
             | 
            PASS | |||||
| 
                 TestEditBooks - test_edit_category 
             | 
            PASS | |||||
| 
                 TestEditBooks - test_edit_comments 
             | 
            PASS | |||||
| 
                 TestEditBooks - test_edit_custom_bool 
             | 
            PASS | |||||
| 
                 TestEditBooks - test_edit_custom_categories 
             | 
            PASS | |||||
| 
                 TestEditBooks - test_edit_custom_comment 
             | 
            PASS | |||||
| 
                 TestEditBooks - test_edit_custom_date 
             | 
            PASS | |||||
| 
                 TestEditBooks - test_edit_custom_float 
             | 
            PASS | |||||
| 
                 TestEditBooks - test_edit_custom_int 
             | 
            PASS | |||||
| 
                 TestEditBooks - test_edit_custom_rating 
             | 
            PASS | |||||
| 
                 TestEditBooks - test_edit_custom_single_select 
             | 
            PASS | |||||
| 
                 TestEditBooks - test_edit_custom_text 
             | 
            PASS | |||||
| 
                 TestEditBooks - test_edit_language 
             | 
            PASS | |||||
| 
                 TestEditBooks - test_edit_publisher 
             | 
            PASS | |||||
| 
                 TestEditBooks - test_edit_publishing_date 
             | 
            PASS | |||||
| 
                 TestEditBooks - test_edit_rating 
             | 
            PASS | |||||
| 
                 TestEditBooks - test_edit_series 
             | 
            PASS | |||||
| 
                 TestEditBooks - test_edit_title 
             | 
            PASS | |||||
| 
                 TestEditBooks - test_rename_uppercase_lowercase 
             | 
            ||||||
| 
                 TestEditBooks - test_typeahead_author 
             | 
            PASS | |||||
| 
                 TestEditBooks - test_typeahead_functions 
             | 
            PASS | |||||
| 
                 TestEditBooks - test_typeahead_language 
             | 
            PASS | |||||
| 
                 TestEditBooks - test_typeahead_publisher 
             | 
            PASS | |||||
| 
                 TestEditBooks - test_typeahead_series 
             | 
            PASS | |||||
| 
                 TestEditBooks - test_typeahead_tag 
             | 
            PASS | |||||
| 
                 TestEditBooks - test_upload_book_cbr 
             | 
            PASS | |||||
| 
                 TestEditBooks - test_upload_book_cbt 
             | 
            PASS | |||||
| 
                 TestEditBooks - test_upload_book_cbz 
             | 
            PASS | |||||
| 
                 TestEditBooks - test_upload_book_epub 
             | 
            PASS | |||||
| 
                 TestEditBooks - test_upload_book_fb2 
             | 
            
                
                
                Traceback (most recent call last):
  File "C:\Development\calibre-web-test\test\test_edit_books.py", line 828, in test_upload_book_fb2
    self.assertEqual('book55 - Lul执 de Marco', details['title'])
AssertionError: 'book55 - Lul执 de Marco' != 'book55 - Lul执 de Marco'
- book55 - Lul执 de Marco
?             ^
+ book55 - Lul执 de Marco
?             ^^^
                     | 
        |||||
| 
                 TestEditBooks - test_upload_book_lit 
             | 
            PASS | |||||
| 
                 TestEditBooks - test_upload_book_mobi 
             | 
            PASS | |||||
| 
                 TestEditBooks - test_upload_book_pdf 
             | 
            
                
                
                Traceback (most recent call last):
  File "C:\Development\calibre-web-test\test\test_edit_books.py", line 811, in test_upload_book_pdf
    self.assertLess('23300', resp.headers['Content-Length'])
AssertionError: '23300' not less than '19501'
                     | 
        |||||
| 
                 TestEditBooks - test_upload_cover_hdd 
             | 
            PASS | |||||
| TestEditBooksList | 10 | 10 | 0 | 0 | 0 | Detail | 
| 
                 TestEditBooksList - test_bookslist_edit_author 
             | 
            PASS | |||||
| 
                 TestEditBooksList - test_bookslist_edit_categories 
             | 
            PASS | |||||
| 
                 TestEditBooksList - test_bookslist_edit_languages 
             | 
            PASS | |||||
| 
                 TestEditBooksList - test_bookslist_edit_publisher 
             | 
            PASS | |||||
| 
                 TestEditBooksList - test_bookslist_edit_series 
             | 
            PASS | |||||
| 
                 TestEditBooksList - test_bookslist_edit_seriesindex 
             | 
            PASS | |||||
| 
                 TestEditBooksList - test_bookslist_edit_title 
             | 
            PASS | |||||
| 
                 TestEditBooksList - test_list_visibility 
             | 
            PASS | |||||
| 
                 TestEditBooksList - test_restricted_rights 
             | 
            PASS | |||||
| 
                 TestEditBooksList - test_search_books_list 
             | 
            PASS | |||||
| TestEditBooksOnGdrive | 20 | 16 | 3 | 1 | 0 | Detail | 
| 
                 TestEditBooksOnGdrive - test_download_book 
             | 
            PASS | |||||
| 
                 TestEditBooksOnGdrive - test_edit_author 
             | 
            
                
                
                Traceback (most recent call last):
  File "C:\Development\calibre-web-test\test\test_edit_ebooks_gdrive.py", line 371, in test_edit_author
    self.assertEqual(u'Pipo, Pipe', author.get_attribute('value'))
AssertionError: 'Pipo, Pipe' != 'Pipo| Pipe'
- Pipo, Pipe
?     ^
+ Pipo| Pipe
?     ^
                     | 
        |||||
| 
                 TestEditBooksOnGdrive - test_edit_category 
             | 
            PASS | |||||
| 
                 TestEditBooksOnGdrive - test_edit_comments 
             | 
            PASS | |||||
| 
                 TestEditBooksOnGdrive - test_edit_custom_bool 
             | 
            PASS | |||||
| 
                 TestEditBooksOnGdrive - test_edit_custom_categories 
             | 
            PASS | |||||
| 
                 TestEditBooksOnGdrive - test_edit_custom_float 
             | 
            PASS | |||||
| 
                 TestEditBooksOnGdrive - test_edit_custom_int 
             | 
            PASS | |||||
| 
                 TestEditBooksOnGdrive - test_edit_custom_rating 
             | 
            PASS | |||||
| 
                 TestEditBooksOnGdrive - test_edit_custom_single_select 
             | 
            PASS | |||||
| 
                 TestEditBooksOnGdrive - test_edit_custom_text 
             | 
            PASS | |||||
| 
                 TestEditBooksOnGdrive - test_edit_language 
             | 
            PASS | |||||
| 
                 TestEditBooksOnGdrive - test_edit_publisher 
             | 
            PASS | |||||
| 
                 TestEditBooksOnGdrive - test_edit_rating 
             | 
            PASS | |||||
| 
                 TestEditBooksOnGdrive - test_edit_series 
             | 
            PASS | |||||
| 
                 TestEditBooksOnGdrive - test_edit_title 
             | 
            
                
                
                Traceback (most recent call last):
  File "C:\Development\calibre-web-test\test\test_edit_ebooks_gdrive.py", line 240, in test_edit_title
    self.assertEqual(ele.text, u'Very long extra super turbo cool title without any issue of displaying including ö utf-8 characters')
AttributeError: 'bool' object has no attribute 'text'
                     | 
        |||||
| 
                 TestEditBooksOnGdrive - test_upload_book_epub 
             | 
            PASS | |||||
| 
                 TestEditBooksOnGdrive - test_upload_book_lit 
             | 
            PASS | |||||
| 
                 TestEditBooksOnGdrive - test_upload_cover_hdd 
             | 
            
                
                
                Traceback (most recent call last):
  File "C:\Development\calibre-web-test\test\test_edit_ebooks_gdrive.py", line 773, in test_upload_cover_hdd
    self.assertGreater(diff('bmp.png', 'jpeg.png', delete_diff_file=True), 0.006)
AssertionError: 0.004266211170916505 not greater than 0.006
                     | 
        |||||
| 
                 TestEditBooksOnGdrive - test_watch_metadata 
             | 
            
                
                
                Traceback (most recent call last):
  File "C:\Development\calibre-web-test\test\test_edit_ebooks_gdrive.py", line 908, in test_watch_metadata
    self.assertNotIn('series', book)
AssertionError: 'series' unexpectedly found in {'id': 5, 'reader': [], 'title': 'testbook', 'author': ['John Döe'], 'rating': 0, 'languages': ['English'], 'identifier': [], 'cover': '/cover/5?edit=2ac4dcbe-31a1-4812-b439-00968a0c3ab5', 'tag': [], 'publisher': ['Randomhäus'], 'pubdate': 'Jan 19, 2017', 'comment': 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit.Aenean commodo ligula eget dolor.Aenean massa.Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.Nulla consequat massa quis enim.Donec pede justo, fringilla vel, aliquet nec, vulputate', 'add_shelf': [], 'del_shelf': [], 'edit_enable': True, 'kindle': None, 'kindlebtn': None, 'download': ['EPUB (6.7 kB)'], 'read': False, 'archived': False, 'series_all': 'Book 1.0 of test', 'series_index': '1.0', 'series': 'test', 'cust_columns': []}
                     | 
        |||||
| TestSTARTTLS | 3 | 0 | 0 | 0 | 3 | Detail | 
| 
                 TestSTARTTLS - test_STARTTLS 
             | 
            ||||||
| 
                 TestSTARTTLS - test_STARTTLS_SSL_setup_error 
             | 
            ||||||
| 
                 TestSTARTTLS - test_STARTTLS_resend_password 
             | 
            ||||||
| TestSSL | 6 | 0 | 0 | 0 | 6 | Detail | 
| 
                 TestSSL - test_SSL_None_setup_error 
             | 
            ||||||
| 
                 TestSSL - test_SSL_STARTTLS_setup_error 
             | 
            ||||||
| 
                 TestSSL - test_SSL_logging_email 
             | 
            ||||||
| 
                 TestSSL - test_SSL_non_admin_user 
             | 
            ||||||
| 
                 TestSSL - test_SSL_only 
             | 
            ||||||
| 
                 TestSSL - test_email_limit 
             | 
            ||||||
| TestErrorReadColumn | 1 | 1 | 0 | 0 | 0 | Detail | 
| 
                 TestErrorReadColumn - test_invalid_custom_column 
             | 
            PASS | |||||
| TestFilePicker | 3 | 1 | 0 | 0 | 2 | Detail | 
| 
                 TestFilePicker - test_filepicker_all_file 
             | 
            ||||||
| 
                 TestFilePicker - test_filepicker_limited_file 
             | 
            PASS | |||||
| 
                 TestFilePicker - test_filepicker_new_file 
             | 
            ||||||
| TestSetupGdrive | 1 | 1 | 0 | 0 | 0 | Detail | 
| 
                 TestSetupGdrive - test_config_gdrive 
             | 
            PASS | |||||
| TestGoodreads | 3 | 3 | 0 | 0 | 0 | Detail | 
| 
                 TestGoodreads - test_author_page 
             | 
            PASS | |||||
| 
                 TestGoodreads - test_author_page_invalid 
             | 
            PASS | |||||
| 
                 TestGoodreads - test_goodreads_about 
             | 
            PASS | |||||
| TestKoboSync | 10 | 0 | 1 | 9 | 0 | Detail | 
| 
                 TestKoboSync - test_book_download 
             | 
            
                
                
                Traceback (most recent call last):
  File "C:\Development\calibre-web-test\test\venv\lib\site-packages\urllib3\connectionpool.py", line 426, in _make_request
    six.raise_from(e, None)
  File "
                     | 
        |||||
| 
                 TestKoboSync - test_kobo_about 
             | 
            
                
                
                Traceback (most recent call last):
  File "C:\Development\calibre-web-test\test\test_kobo_sync.py", line 576, in test_kobo_about
    self.assertTrue(self.goto_page('nav_about'))
AssertionError: False is not true
                     | 
        |||||
| 
                 TestKoboSync - test_kobo_sync_selected_shelfs 
             | 
            
                
                
                Traceback (most recent call last):
  File "C:\Development\calibre-web-test\test\test_kobo_sync.py", line 598, in test_kobo_sync_selected_shelfs
    self.inital_sync()
  File "C:\Development\calibre-web-test\test\test_kobo_sync.py", line 63, in inital_sync
    self.get_book_details(5)
  File "C:\Development\calibre-web-test\test\helper_ui.py", line 1273, in get_book_details
    cls.driver.get(root_url + "/book/" + str(id))
  File "C:\Development\calibre-web-test\test\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 333, in get
    self.execute(Command.GET, {'url': url})
  File "C:\Development\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:\Development\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.WebDriverException: Message: TypeError: this.curBrowser.contentBrowser is null
                     | 
        |||||
| 
                 TestKoboSync - test_shelves_add_remove_books 
             | 
            
                
                
                Traceback (most recent call last):
  File "C:\Development\calibre-web-test\test\test_kobo_sync.py", line 443, in test_shelves_add_remove_books
    self.inital_sync()
  File "C:\Development\calibre-web-test\test\test_kobo_sync.py", line 63, in inital_sync
    self.get_book_details(5)
  File "C:\Development\calibre-web-test\test\helper_ui.py", line 1273, in get_book_details
    cls.driver.get(root_url + "/book/" + str(id))
  File "C:\Development\calibre-web-test\test\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 333, in get
    self.execute(Command.GET, {'url': url})
  File "C:\Development\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:\Development\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.NoSuchWindowException: Message: Browsing context has been discarded
                     | 
        |||||
| 
                 TestKoboSync - test_sync_changed_book 
             | 
            
                
                
                Traceback (most recent call last):
  File "C:\Development\calibre-web-test\test\test_kobo_sync.py", line 273, in test_sync_changed_book
    self.inital_sync()
  File "C:\Development\calibre-web-test\test\test_kobo_sync.py", line 63, in inital_sync
    self.get_book_details(5)
  File "C:\Development\calibre-web-test\test\helper_ui.py", line 1273, in get_book_details
    cls.driver.get(root_url + "/book/" + str(id))
  File "C:\Development\calibre-web-test\test\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 333, in get
    self.execute(Command.GET, {'url': url})
  File "C:\Development\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:\Development\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.NoSuchWindowException: Message: Browsing context has been discarded
                     | 
        |||||
| 
                 TestKoboSync - test_sync_invalid 
             | 
            
                
                
                Traceback (most recent call last):
  File "C:\Development\calibre-web-test\test\venv\lib\site-packages\urllib3\connectionpool.py", line 426, in _make_request
    six.raise_from(e, None)
  File "
                     | 
        |||||
| 
                 TestKoboSync - test_sync_reading_state 
             | 
            
                
                
                Traceback (most recent call last):
  File "C:\Development\calibre-web-test\test\test_kobo_sync.py", line 510, in test_sync_reading_state
    self.inital_sync()
  File "C:\Development\calibre-web-test\test\test_kobo_sync.py", line 63, in inital_sync
    self.get_book_details(5)
  File "C:\Development\calibre-web-test\test\helper_ui.py", line 1273, in get_book_details
    cls.driver.get(root_url + "/book/" + str(id))
  File "C:\Development\calibre-web-test\test\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 333, in get
    self.execute(Command.GET, {'url': url})
  File "C:\Development\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:\Development\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.NoSuchWindowException: Message: Browsing context has been discarded
                     | 
        |||||
| 
                 TestKoboSync - test_sync_shelf 
             | 
            
                
                
                Traceback (most recent call last):
  File "C:\Development\calibre-web-test\test\test_kobo_sync.py", line 292, in test_sync_shelf
    self.inital_sync()
  File "C:\Development\calibre-web-test\test\test_kobo_sync.py", line 63, in inital_sync
    self.get_book_details(5)
  File "C:\Development\calibre-web-test\test\helper_ui.py", line 1273, in get_book_details
    cls.driver.get(root_url + "/book/" + str(id))
  File "C:\Development\calibre-web-test\test\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 333, in get
    self.execute(Command.GET, {'url': url})
  File "C:\Development\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:\Development\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.NoSuchWindowException: Message: Browsing context has been discarded
                     | 
        |||||
| 
                 TestKoboSync - test_sync_unchanged 
             | 
            
                
                
                Traceback (most recent call last):
  File "C:\Development\calibre-web-test\test\test_kobo_sync.py", line 238, in test_sync_unchanged
    self.inital_sync()
  File "C:\Development\calibre-web-test\test\test_kobo_sync.py", line 63, in inital_sync
    self.get_book_details(5)
  File "C:\Development\calibre-web-test\test\helper_ui.py", line 1273, in get_book_details
    cls.driver.get(root_url + "/book/" + str(id))
  File "C:\Development\calibre-web-test\test\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 333, in get
    self.execute(Command.GET, {'url': url})
  File "C:\Development\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:\Development\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.NoSuchWindowException: Message: Browsing context has been discarded
                     | 
        |||||
| 
                 TestKoboSync - test_sync_upload 
             | 
            
                
                
                Traceback (most recent call last):
  File "C:\Development\calibre-web-test\test\test_kobo_sync.py", line 252, in test_sync_upload
    self.inital_sync()
  File "C:\Development\calibre-web-test\test\test_kobo_sync.py", line 63, in inital_sync
    self.get_book_details(5)
  File "C:\Development\calibre-web-test\test\helper_ui.py", line 1273, in get_book_details
    cls.driver.get(root_url + "/book/" + str(id))
  File "C:\Development\calibre-web-test\test\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 333, in get
    self.execute(Command.GET, {'url': url})
  File "C:\Development\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:\Development\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.NoSuchWindowException: Message: Browsing context has been discarded
                     | 
        |||||
| _ErrorHolder | 5 | 0 | 0 | 5 | 0 | Detail | 
| 
                 tearDownClass (test_kobo_sync) 
             | 
            
                
                
                Traceback (most recent call last):
  File "C:\Development\calibre-web-test\test\test_kobo_sync.py", line 51, in tearDownClass
    cls.driver.get("http://127.0.0.1:8083")
  File "C:\Development\calibre-web-test\test\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 333, in get
    self.execute(Command.GET, {'url': url})
  File "C:\Development\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:\Development\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.NoSuchWindowException: Message: Browsing context has been discarded
                     | 
        |||||
| 
                 tearDownClass (test_updater) 
             | 
            
                
                
                Traceback (most recent call last):
  File "C:\Python39\lib\shutil.py", line 806, in move
    os.rename(src, real_dst)
PermissionError: [WinError 32] Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird: 'C:\\Development\\calibre-web\\calibre-web.log' -> 'C:\\Development\\calibre-web-test\\test\\outcome\\TestUpdater-20210518195021\\calibre-web.log'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "C:\Development\calibre-web-test\test\test_updater.py", line 52, in tearDownClass
    save_logfiles(cls, cls.__name__)
  File "C:\Development\calibre-web-test\test\helper_func.py", line 362, in save_logfiles
    shutil.move(src,dest)
  File "C:\Python39\lib\shutil.py", line 827, in move
    os.unlink(src)
PermissionError: [WinError 32] Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird: 'C:\\Development\\calibre-web\\calibre-web.log'
                     | 
        |||||
| 
                 tearDownClass (test_user_list) 
             | 
            
                
                
                Traceback (most recent call last):
  File "C:\Python39\lib\shutil.py", line 806, in move
    os.rename(src, real_dst)
PermissionError: [WinError 32] Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird: 'C:\\Development\\calibre-web\\calibre-web.log' -> 'C:\\Development\\calibre-web-test\\test\\outcome\\TestUserList-20210518200437\\calibre-web.log'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "C:\Development\calibre-web-test\test\test_user_list.py", line 71, in tearDownClass
    save_logfiles(cls, cls.__name__)
  File "C:\Development\calibre-web-test\test\helper_func.py", line 362, in save_logfiles
    shutil.move(src,dest)
  File "C:\Python39\lib\shutil.py", line 827, in move
    os.unlink(src)
PermissionError: [WinError 32] Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird: 'C:\\Development\\calibre-web\\calibre-web.log'
                     | 
        |||||
| 
                 tearDownClass (test_user_load) 
             | 
            
                
                
                Traceback (most recent call last):
  File "C:\Development\calibre-web-test\test\test_user_load.py", line 59, in tearDownClass
    cls.stop_calibre_web()
  File "C:\Development\calibre-web-test\test\helper_ui.py", line 376, in stop_calibre_web
    cls.driver.find_element_by_id('admin_stop').click()
  File "C:\Development\calibre-web-test\test\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 360, in find_element_by_id
    return self.find_element(by=By.ID, value=id_)
  File "C:\Development\calibre-web-test\test\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 976, in find_element
    return self.execute(Command.FIND_ELEMENT, {
  File "C:\Development\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:\Development\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.NoSuchElementException: Message: Unable to locate element: [id="admin_stop"]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "C:\Development\calibre-web-test\test\test_user_load.py", line 61, in tearDownClass
    cls.driver.get("http://127.0.0.1:8083")
  File "C:\Development\calibre-web-test\test\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 333, in get
    self.execute(Command.GET, {'url': url})
  File "C:\Development\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:\Development\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.TimeoutException: Message: TimedPromise timed out after 300000 ms
                     | 
        |||||
| 
                 tearDownClass (test_visiblilitys) 
             | 
            
                
                
                Traceback (most recent call last):
  File "C:\Development\calibre-web-test\test\test_visiblilitys.py", line 32, in tearDownClass
    cls.stop_calibre_web()
  File "C:\Development\calibre-web-test\test\helper_ui.py", line 378, in stop_calibre_web
    element.click()
  File "C:\Development\calibre-web-test\test\venv\lib\site-packages\selenium\webdriver\remote\webelement.py", line 80, in click
    self._execute(Command.CLICK_ELEMENT)
  File "C:\Development\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:\Development\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:\Development\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 
                     | 
        |||||
| TestLdapLogin | 13 | 6 | 6 | 1 | 0 | Detail | 
| 
                 TestLdapLogin - test_LDAP_SSL 
             | 
            PASS | |||||
| 
                 TestLdapLogin - test_LDAP_SSL_CERTIFICATE 
             | 
            
                
                
                Traceback (most recent call last):
  File "C:\Development\calibre-web-test\test\test_ldap.py", line 609, in test_LDAP_SSL_CERTIFICATE
    self.assertTrue(self.check_element_on_page((By.ID, "flash_success")))
AssertionError: False is not true
                     | 
        |||||
| 
                 TestLdapLogin - test_LDAP_STARTTLS 
             | 
            
                
                
                Traceback (most recent call last):
  File "C:\Development\calibre-web-test\test\test_ldap.py", line 638, in test_LDAP_STARTTLS
    self.fill_basic_config({'config_ldap_provider_url': '127.0.0.1',
  File "C:\Development\calibre-web-test\test\helper_ui.py", line 288, in fill_basic_config
    cls.fill_initial_config(elements)
  File "C:\Development\calibre-web-test\test\helper_ui.py", line 201, in fill_initial_config
    WebDriverWait(cls.driver, 5).until(EC.presence_of_element_located((By.ID, "config_calibre_dir")))
  File "C:\Development\calibre-web-test\test\venv\lib\site-packages\selenium\webdriver\support\wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
                     | 
        |||||
| 
                 TestLdapLogin - test_LDAP_fallback_Login 
             | 
            PASS | |||||
| 
                 TestLdapLogin - test_LDAP_import 
             | 
            
                
                
                Traceback (most recent call last):
  File "C:\Development\calibre-web-test\test\test_ldap.py", line 401, in test_LDAP_import
    self.assertEqual(len(userlist), 3)
AssertionError: 4 != 3
                     | 
        |||||
| 
                 TestLdapLogin - test_LDAP_import_memberfield 
             | 
            PASS | |||||
| 
                 TestLdapLogin - test_LDAP_login 
             | 
            
                
                
                Traceback (most recent call last):
  File "C:\Development\calibre-web-test\test\test_ldap.py", line 222, in test_LDAP_login
    self.assertTrue(self.check_element_on_page((By.ID, "flash_success")))
AssertionError: False is not true
                     | 
        |||||
| 
                 TestLdapLogin - test_invalid_LDAP 
             | 
            PASS | |||||
| 
                 TestLdapLogin - test_ldap_about 
             | 
            PASS | |||||
| 
                 TestLdapLogin - test_ldap_authentication 
             | 
            
                
                
                Traceback (most recent call last):
  File "C:\Development\calibre-web-test\test\test_ldap.py", line 757, in test_ldap_authentication
    self.assertTrue(self.check_element_on_page((By.ID, "flash_success")))
AssertionError: False is not true
                     | 
        |||||
| 
                 TestLdapLogin - test_ldap_kobo_sync 
             | 
            
                
                
                Traceback (most recent call last):
  File "C:\Development\calibre-web-test\test\test_ldap.py", line 1024, in test_ldap_kobo_sync
    self.assertTrue(self.check_element_on_page((By.ID, "flash_success")))
AssertionError: False is not true
                     | 
        |||||
| 
                 TestLdapLogin - test_ldap_opds_anonymous 
             | 
            PASS | |||||
| 
                 TestLdapLogin - test_ldap_opds_download_book 
             | 
            
                
                
                Traceback (most recent call last):
  File "C:\Development\calibre-web-test\test\test_ldap.py", line 840, in test_ldap_opds_download_book
    self.assertTrue(self.check_element_on_page((By.ID, "flash_success")))
AssertionError: False is not true
                     | 
        |||||
| TestLogging | 7 | 5 | 1 | 0 | 1 | Detail | 
| 
                 TestLogging - test_access_log_recover 
             | 
            PASS | |||||
| 
                 TestLogging - test_debug_log 
             | 
            PASS | |||||
| 
                 TestLogging - test_failed_login 
             | 
            PASS | |||||
| 
                 TestLogging - test_failed_register 
             | 
            ||||||
| 
                 TestLogging - test_logfile_change 
             | 
            PASS | |||||
| 
                 TestLogging - test_logfile_recover 
             | 
            
                
                
                Traceback (most recent call last):
  File "C:\Development\calibre-web-test\test\test_logging.py", line 148, in test_logfile_recover
    self.assertFalse(os.path.isfile(os.path.join(CALIBRE_WEB_PATH, 'calibre-web.log')))
AssertionError: True is not false
                     | 
        |||||
| 
                 TestLogging - test_logviewer 
             | 
            PASS | |||||
| TestLogin | 14 | 13 | 1 | 0 | 0 | Detail | 
| 
                 TestLogin - test_digest_login 
             | 
            PASS | |||||
| 
                 TestLogin - test_login_capital_letters_user_unicode_password 
             | 
            PASS | |||||
| 
                 TestLogin - test_login_delete_admin 
             | 
            PASS | |||||
| 
                 TestLogin - test_login_empty_password 
             | 
            PASS | |||||
| 
                 TestLogin - test_login_locale_select 
             | 
            PASS | |||||
| 
                 TestLogin - test_login_protected 
             | 
            PASS | |||||
| 
                 TestLogin - test_login_remember_me 
             | 
            PASS | |||||
| 
                 TestLogin - test_login_rename_user 
             | 
            PASS | |||||
| 
                 TestLogin - test_login_unicode_user_space_end_password 
             | 
            PASS | |||||
| 
                 TestLogin - test_login_user_with_space_password_end_space 
             | 
            PASS | |||||
| 
                 TestLogin - test_magic_remote_login 
             | 
            PASS | |||||
| 
                 TestLogin - test_next 
             | 
            PASS | |||||
| 
                 TestLogin - test_proxy_login 
             | 
            
                
                
                Traceback (most recent call last):
  File "C:\Development\calibre-web-test\test\test_login.py", line 342, in test_proxy_login
    self.assertTrue("Calibre-Web | login" in resp.text)
AssertionError: False is not true
                     | 
        |||||
| 
                 TestLogin - test_robots 
             | 
            PASS | |||||
| TestMergeBooksList | 2 | 2 | 0 | 0 | 0 | Detail | 
| 
                 TestMergeBooksList - test_delete_book 
             | 
            PASS | |||||
| 
                 TestMergeBooksList - test_merge_book 
             | 
            PASS | |||||
| TestOAuthLogin | 2 | 2 | 0 | 0 | 0 | Detail | 
| 
                 TestOAuthLogin - test_oauth_about 
             | 
            PASS | |||||
| 
                 TestOAuthLogin - test_visible_oauth 
             | 
            PASS | |||||
| TestOPDSFeed | 23 | 23 | 0 | 0 | 0 | Detail | 
| 
                 TestOPDSFeed - test_opds 
             | 
            PASS | |||||
| 
                 TestOPDSFeed - test_opds_author 
             | 
            PASS | |||||
| 
                 TestOPDSFeed - test_opds_books 
             | 
            PASS | |||||
| 
                 TestOPDSFeed - test_opds_calibre_companion 
             | 
            PASS | |||||
| 
                 TestOPDSFeed - test_opds_colon_password 
             | 
            PASS | |||||
| 
                 TestOPDSFeed - test_opds_cover 
             | 
            PASS | |||||
| 
                 TestOPDSFeed - test_opds_download_book 
             | 
            PASS | |||||
| 
                 TestOPDSFeed - test_opds_formats 
             | 
            PASS | |||||
| 
                 TestOPDSFeed - test_opds_guest_user 
             | 
            PASS | |||||
| 
                 TestOPDSFeed - test_opds_hot 
             | 
            PASS | |||||
| 
                 TestOPDSFeed - test_opds_language 
             | 
            PASS | |||||
| 
                 TestOPDSFeed - test_opds_non_admin 
             | 
            PASS | |||||
| 
                 TestOPDSFeed - test_opds_publisher 
             | 
            PASS | |||||
| 
                 TestOPDSFeed - test_opds_random 
             | 
            PASS | |||||
| 
                 TestOPDSFeed - test_opds_ratings 
             | 
            PASS | |||||
| 
                 TestOPDSFeed - test_opds_read_unread 
             | 
            PASS | |||||
| 
                 TestOPDSFeed - test_opds_search 
             | 
            PASS | |||||
| 
                 TestOPDSFeed - test_opds_series 
             | 
            PASS | |||||
| 
                 TestOPDSFeed - test_opds_shelf_access 
             | 
            PASS | |||||
| 
                 TestOPDSFeed - test_opds_tags 
             | 
            PASS | |||||
| 
                 TestOPDSFeed - test_opds_top_rated 
             | 
            PASS | |||||
| 
                 TestOPDSFeed - test_opds_unicode_user 
             | 
            PASS | |||||
| 
                 TestOPDSFeed - test_recently_added 
             | 
            PASS | |||||
| TestUploadPDF | 1 | 1 | 0 | 0 | 0 | Detail | 
| 
                 TestUploadPDF - test_upload_invalid_pdf 
             | 
            PASS | |||||
| TestReader | 5 | 5 | 0 | 0 | 0 | Detail | 
| 
                 TestReader - test_comic_reader 
             | 
            PASS | |||||
| 
                 TestReader - test_epub_reader 
             | 
            PASS | |||||
| 
                 TestReader - test_pdf_reader 
             | 
            PASS | |||||
| 
                 TestReader - test_sound_listener 
             | 
            PASS | |||||
| 
                 TestReader - test_txt_reader 
             | 
            PASS | |||||
| TestRegister | 8 | 8 | 0 | 0 | 0 | Detail | 
| 
                 TestRegister - test_forgot_password 
             | 
            PASS | |||||
| 
                 TestRegister - test_illegal_email 
             | 
            PASS | |||||
| 
                 TestRegister - test_limit_domain 
             | 
            PASS | |||||
| 
                 TestRegister - test_register_no_server 
             | 
            PASS | |||||
| 
                 TestRegister - test_registering_only_email 
             | 
            PASS | |||||
| 
                 TestRegister - test_registering_user 
             | 
            PASS | |||||
| 
                 TestRegister - test_registering_user_fail 
             | 
            PASS | |||||
| 
                 TestRegister - test_user_change_password 
             | 
            PASS | |||||
| TestShelf | 12 | 11 | 0 | 0 | 1 | Detail | 
| 
                 TestShelf - test_add_shelf_from_search 
             | 
            PASS | |||||
| 
                 TestShelf - test_adv_search_shelf 
             | 
            PASS | |||||
| 
                 TestShelf - test_arrange_shelf 
             | 
            PASS | |||||
| 
                 TestShelf - test_delete_book_of_shelf 
             | 
            PASS | |||||
| 
                 TestShelf - test_private_shelf 
             | 
            PASS | |||||
| 
                 TestShelf - test_public_private_shelf 
             | 
            PASS | |||||
| 
                 TestShelf - test_public_shelf 
             | 
            PASS | |||||
| 
                 TestShelf - test_rename_shelf 
             | 
            PASS | |||||
| 
                 TestShelf - test_shelf_action_non_shelf_edit_role 
             | 
            PASS | |||||
| 
                 TestShelf - test_shelf_anonymous 
             | 
            PASS | |||||
| 
                 TestShelf - test_shelf_database_change 
             | 
            ||||||
| 
                 TestShelf - test_shelf_long_name 
             | 
            PASS | |||||
| TestUpdater | 8 | 4 | 0 | 3 | 1 | Detail | 
| 
                 TestUpdater - test_check_update_nightly_errors 
             | 
            PASS | |||||
| 
                 TestUpdater - test_check_update_nightly_request_errors 
             | 
            PASS | |||||
| 
                 TestUpdater - test_check_update_stable_errors 
             | 
            PASS | |||||
| 
                 TestUpdater - test_check_update_stable_versions 
             | 
            PASS | |||||
| 
                 TestUpdater - test_perform_update 
             | 
            
                
                
                Traceback (most recent call last):
  File "C:\Development\calibre-web-test\test\test_updater.py", line 364, in test_perform_update
    self.check_element_on_page((By.ID, "DialogFinished")).click()
  File "C:\Development\calibre-web-test\test\venv\lib\site-packages\selenium\webdriver\remote\webelement.py", line 80, in click
    self._execute(Command.CLICK_ELEMENT)
  File "C:\Development\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:\Development\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:\Development\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 
                     | 
        |||||
| 
                 TestUpdater - test_perform_update_stable_errors 
             | 
            
                
                
                Traceback (most recent call last):
  File "C:\Development\calibre-web-test\test\test_updater.py", line 290, in test_perform_update_stable_errors
    self.fill_basic_config({'config_updatechannel': 'Stable'})
  File "C:\Development\calibre-web-test\test\helper_ui.py", line 288, in fill_basic_config
    cls.fill_initial_config(elements)
  File "C:\Development\calibre-web-test\test\helper_ui.py", line 201, in fill_initial_config
    WebDriverWait(cls.driver, 5).until(EC.presence_of_element_located((By.ID, "config_calibre_dir")))
  File "C:\Development\calibre-web-test\test\venv\lib\site-packages\selenium\webdriver\support\wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
                     | 
        |||||
| 
                 TestUpdater - test_perform_update_timeout 
             | 
            ||||||
| 
                 TestUpdater - test_reconnect_database 
             | 
            
                
                
                Traceback (most recent call last):
  File "C:\Development\calibre-web-test\test\test_updater.py", line 371, in test_reconnect_database
    self.reconnect_database()
  File "C:\Development\calibre-web-test\test\helper_ui.py", line 362, in reconnect_database
    self.driver.find_element_by_id('restart_database').click()
  File "C:\Development\calibre-web-test\test\venv\lib\site-packages\selenium\webdriver\remote\webelement.py", line 80, in click
    self._execute(Command.CLICK_ELEMENT)
  File "C:\Development\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:\Development\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:\Development\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.ElementClickInterceptedException: Message: Element  | 
        |||||
| _FailedTest | 1 | 0 | 0 | 1 | 0 | Detail | 
| 
                 _FailedTest - test_upload_epubs 
             | 
            
                
                
                ImportError: Failed to import test module: test_upload_epubs
Traceback (most recent call last):
  File "C:\Python39\lib\unittest\loader.py", line 436, in _find_test_path
    module = self._get_module_from_name(name)
  File "C:\Python39\lib\unittest\loader.py", line 377, in _get_module_from_name
    __import__(name)
  File "C:\Development\calibre-web-test\test\test_upload_epubs.py", line 10, in 
                     | 
        |||||
| TestUserList | 18 | 18 | 0 | 0 | 0 | Detail | 
| 
                 TestUserList - test_edit_user_email 
             | 
            PASS | |||||
| 
                 TestUserList - test_list_visibility 
             | 
            PASS | |||||
| 
                 TestUserList - test_user_list_admin_role 
             | 
            PASS | |||||
| 
                 TestUserList - test_user_list_check_sort 
             | 
            PASS | |||||
| 
                 TestUserList - test_user_list_denied_tags 
             | 
            PASS | |||||
| 
                 TestUserList - test_user_list_download_role 
             | 
            PASS | |||||
| 
                 TestUserList - test_user_list_edit_button 
             | 
            PASS | |||||
| 
                 TestUserList - test_user_list_edit_email 
             | 
            PASS | |||||
| 
                 TestUserList - test_user_list_edit_kindle 
             | 
            PASS | |||||
| 
                 TestUserList - test_user_list_edit_language 
             | 
            PASS | |||||
| 
                 TestUserList - test_user_list_edit_locale 
             | 
            PASS | |||||
| 
                 TestUserList - test_user_list_edit_name 
             | 
            PASS | |||||
| 
                 TestUserList - test_user_list_edit_visiblility 
             | 
            PASS | |||||
| 
                 TestUserList - test_user_list_guest_edit 
             | 
            PASS | |||||
| 
                 TestUserList - test_user_list_remove_admin 
             | 
            PASS | |||||
| 
                 TestUserList - test_user_list_requests 
             | 
            PASS | |||||
| 
                 TestUserList - test_user_list_search 
             | 
            PASS | |||||
| 
                 TestUserList - test_user_list_sort 
             | 
            PASS | |||||
| TestUserLoad | 1 | 1 | 0 | 0 | 0 | Detail | 
| 
                 TestUserLoad - test_user_change_vis 
             | 
            PASS | |||||
| TestUserTemplate | 21 | 21 | 0 | 0 | 0 | Detail | 
| 
                 TestUserTemplate - test_allow_column_restriction 
             | 
            PASS | |||||
| 
                 TestUserTemplate - test_allow_tag_restriction 
             | 
            PASS | |||||
| 
                 TestUserTemplate - test_archived_format_template 
             | 
            PASS | |||||
| 
                 TestUserTemplate - test_author_user_template 
             | 
            PASS | |||||
| 
                 TestUserTemplate - test_best_user_template 
             | 
            PASS | |||||
| 
                 TestUserTemplate - test_category_user_template 
             | 
            PASS | |||||
| 
                 TestUserTemplate - test_deny_column_restriction 
             | 
            PASS | |||||
| 
                 TestUserTemplate - test_deny_tag_restriction 
             | 
            PASS | |||||
| 
                 TestUserTemplate - test_detail_random_user_template 
             | 
            PASS | |||||
| 
                 TestUserTemplate - test_download_user_template 
             | 
            PASS | |||||
| 
                 TestUserTemplate - test_format_user_template 
             | 
            PASS | |||||
| 
                 TestUserTemplate - test_hot_user_template 
             | 
            PASS | |||||
| 
                 TestUserTemplate - test_language_user_template 
             | 
            PASS | |||||
| 
                 TestUserTemplate - test_limit_book_languages 
             | 
            PASS | |||||
| 
                 TestUserTemplate - test_list_user_template 
             | 
            PASS | |||||
| 
                 TestUserTemplate - test_publisher_user_template 
             | 
            PASS | |||||
| 
                 TestUserTemplate - test_random_user_template 
             | 
            PASS | |||||
| 
                 TestUserTemplate - test_read_user_template 
             | 
            PASS | |||||
| 
                 TestUserTemplate - test_recent_user_template 
             | 
            PASS | |||||
| 
                 TestUserTemplate - test_series_user_template 
             | 
            PASS | |||||
| 
                 TestUserTemplate - test_ui_language_settings 
             | 
            PASS | |||||
| TestCalibreWebVisibilitys | 34 | 34 | 0 | 0 | 0 | Detail | 
| 
                 TestCalibreWebVisibilitys - test_about 
             | 
            PASS | |||||
| 
                 TestCalibreWebVisibilitys - test_admin_SMTP_Settings 
             | 
            PASS | |||||
| 
                 TestCalibreWebVisibilitys - test_admin_add_user 
             | 
            PASS | |||||
| 
                 TestCalibreWebVisibilitys - test_admin_change_password 
             | 
            PASS | |||||
| 
                 TestCalibreWebVisibilitys - test_admin_change_visibility_archived 
             | 
            PASS | |||||
| 
                 TestCalibreWebVisibilitys - test_admin_change_visibility_authors 
             | 
            PASS | |||||
| 
                 TestCalibreWebVisibilitys - test_admin_change_visibility_category 
             | 
            PASS | |||||
| 
                 TestCalibreWebVisibilitys - test_admin_change_visibility_file_formats 
             | 
            PASS | |||||
| 
                 TestCalibreWebVisibilitys - test_admin_change_visibility_hot 
             | 
            PASS | |||||
| 
                 TestCalibreWebVisibilitys - test_admin_change_visibility_language 
             | 
            PASS | |||||
| 
                 TestCalibreWebVisibilitys - test_admin_change_visibility_publisher 
             | 
            PASS | |||||
| 
                 TestCalibreWebVisibilitys - test_admin_change_visibility_random 
             | 
            PASS | |||||
| 
                 TestCalibreWebVisibilitys - test_admin_change_visibility_rated 
             | 
            PASS | |||||
| 
                 TestCalibreWebVisibilitys - test_admin_change_visibility_rating 
             | 
            PASS | |||||
| 
                 TestCalibreWebVisibilitys - test_admin_change_visibility_read 
             | 
            PASS | |||||
| 
                 TestCalibreWebVisibilitys - test_admin_change_visibility_series 
             | 
            PASS | |||||
| 
                 TestCalibreWebVisibilitys - test_allow_columns 
             | 
            PASS | |||||
| 
                 TestCalibreWebVisibilitys - test_allow_tags 
             | 
            PASS | |||||
| 
                 TestCalibreWebVisibilitys - test_archive_books 
             | 
            PASS | |||||
| 
                 TestCalibreWebVisibilitys - test_authors_max_settings 
             | 
            PASS | |||||
| 
                 TestCalibreWebVisibilitys - test_change_title 
             | 
            PASS | |||||
| 
                 TestCalibreWebVisibilitys - test_checked_logged_in 
             | 
            PASS | |||||
| 
                 TestCalibreWebVisibilitys - test_hide_custom_column 
             | 
            PASS | |||||
| 
                 TestCalibreWebVisibilitys - test_link_column_to_read_status 
             | 
            PASS | |||||
| 
                 TestCalibreWebVisibilitys - test_random_books_available 
             | 
            PASS | |||||
| 
                 TestCalibreWebVisibilitys - test_request_link_column_to_read_status 
             | 
            PASS | |||||
| 
                 TestCalibreWebVisibilitys - test_restrict_columns 
             | 
            PASS | |||||
| 
                 TestCalibreWebVisibilitys - test_restrict_tags 
             | 
            PASS | |||||
| 
                 TestCalibreWebVisibilitys - test_save_views_recent 
             | 
            PASS | |||||
| 
                 TestCalibreWebVisibilitys - test_search_functions 
             | 
            PASS | |||||
| 
                 TestCalibreWebVisibilitys - test_search_order 
             | 
            PASS | |||||
| 
                 TestCalibreWebVisibilitys - test_search_string 
             | 
            PASS | |||||
| 
                 TestCalibreWebVisibilitys - test_user_email_available 
             | 
            PASS | |||||
| 
                 TestCalibreWebVisibilitys - test_user_visibility_sidebar 
             | 
            PASS | |||||
| TestCalibreHelper | 16 | 16 | 0 | 0 | 0 | Detail | 
| 
                 TestCalibreHelper - test_author_sort 
             | 
            PASS | |||||
| 
                 TestCalibreHelper - test_author_sort_comma 
             | 
            PASS | |||||
| 
                 TestCalibreHelper - test_author_sort_junior 
             | 
            PASS | |||||
| 
                 TestCalibreHelper - test_author_sort_oneword 
             | 
            PASS | |||||
| 
                 TestCalibreHelper - test_author_sort_roman 
             | 
            PASS | |||||
| 
                 TestCalibreHelper - test_check_Limit_Length 
             | 
            PASS | |||||
| 
                 TestCalibreHelper - test_check_char_replacement 
             | 
            PASS | |||||
| 
                 TestCalibreHelper - test_check_chinese_Characters 
             | 
            PASS | |||||
| 
                 TestCalibreHelper - test_check_deg_eur_replacement 
             | 
            PASS | |||||
| 
                 TestCalibreHelper - test_check_doubleS 
             | 
            PASS | |||||
| 
                 TestCalibreHelper - test_check_finish_Dot 
             | 
            PASS | |||||
| 
                 TestCalibreHelper - test_check_high23 
             | 
            PASS | |||||
| 
                 TestCalibreHelper - test_check_umlauts 
             | 
            PASS | |||||
| 
                 TestCalibreHelper - test_random_password 
             | 
            PASS | |||||
| 
                 TestCalibreHelper - test_split_authors 
             | 
            PASS | |||||
| 
                 TestCalibreHelper - test_whitespaces 
             | 
            PASS | |||||
| Total | 344 | 270 | 14 | 20 | 40 | |
| Program library | Installed Version | Test class | 
|---|---|---|
| Platform | Windows 10 10.0.19042 Intel64 Family 6 Model 165 Stepping 5, GenuineIntel AMD64 | Basic | 
| Python | 3.9.5 | Basic | 
| Babel | 2.9.1 | Basic | 
| backports-abc | 0.5 | Basic | 
| Flask | 1.1.4 | Basic | 
| Flask-Babel | 2.0.0 | Basic | 
| Flask-Login | 0.5.0 | Basic | 
| Flask-Principal | 0.4.0 | Basic | 
| greenlet | 1.1.0 | Basic | 
| iso-639 | 0.4.5 | Basic | 
| Jinja2 | 2.11.3 | Basic | 
| PyPDF3 | 1.0.3 | Basic | 
| pytz | 2021.1 | Basic | 
| requests | 2.24.0 | Basic | 
| SQLAlchemy | 1.4.15 | Basic | 
| tornado | 6.1 | Basic | 
| Unidecode | 1.2.0 | Basic | 
| Wand | 0.6.6 | Basic | 
| Werkzeug | 1.0.1 | Basic | 
| google-api-python-client | 2.4.0 | TestCliGdrivedb | 
| httplib2 | 0.19.1 | TestCliGdrivedb | 
| lxml | 4.6.3 | TestCliGdrivedb | 
| oauth2client | 4.1.3 | TestCliGdrivedb | 
| PyDrive2 | 1.8.2 | TestCliGdrivedb | 
| PyYAML | 5.4.1 | TestCliGdrivedb | 
| comicapi | 2.2.0 | TestEditAdditionalBooks | 
| lxml | 4.6.3 | TestEditAdditionalBooks | 
| rarfile | 4.0 | TestEditAdditionalBooks | 
| lxml | 4.6.3 | TestEditBooks | 
| google-api-python-client | 2.4.0 | TestEditBooksOnGdrive | 
| httplib2 | 0.19.1 | TestEditBooksOnGdrive | 
| lxml | 4.6.3 | TestEditBooksOnGdrive | 
| oauth2client | 4.1.3 | TestEditBooksOnGdrive | 
| PyDrive2 | 1.8.2 | TestEditBooksOnGdrive | 
| PyYAML | 5.4.1 | TestEditBooksOnGdrive | 
| google-api-python-client | 2.4.0 | TestSetupGdrive | 
| httplib2 | 0.19.1 | TestSetupGdrive | 
| oauth2client | 4.1.3 | TestSetupGdrive | 
| PyDrive2 | 1.8.2 | TestSetupGdrive | 
| PyYAML | 5.4.1 | TestSetupGdrive | 
| goodreads | 0.3.2 | TestGoodreads | 
| jsonschema | 3.2.0 | TestKoboSync | 
| Flask-SimpleLDAP | 1.4.0 | TestLdapLogin | 
| jsonschema | 3.2.0 | TestLdapLogin | 
| Flask-Dance | 5.0.0 | TestOAuthLogin | 
| SQLAlchemy-Utils | 0.37.3 | TestOAuthLogin | 
| lxml | 4.6.3 | TestUploadPDF |