Start Time: 2021-12-04 22:17:44
Stop Time: 2021-12-05 01:46:42
Duration: 2h 48 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 | 2 | 2 | 0 | 0 | 0 | Detail | 
| 
                 TestCoverEditBooks - test_invalid_jpg_hdd 
             | 
            PASS | |||||
| 
                 TestCoverEditBooks - test_upload_jpg 
             | 
            PASS | |||||
| TestDeleteDatabase | 1 | 1 | 0 | 0 | 0 | Detail | 
| 
                 TestDeleteDatabase - test_delete_books_in_database 
             | 
            PASS | |||||
| TestEbookConvertCalibre | 14 | 12 | 2 | 0 | 0 | Detail | 
| 
                 TestEbookConvertCalibre - test_convert_deactivate 
             | 
            PASS | |||||
| 
                 TestEbookConvertCalibre - test_convert_email 
             | 
            PASS | |||||
| 
                 TestEbookConvertCalibre - test_convert_failed_and_email 
             | 
            PASS | |||||
| 
                 TestEbookConvertCalibre - test_convert_only 
             | 
            PASS | |||||
| 
                 TestEbookConvertCalibre - test_convert_options 
             | 
            PASS | |||||
| 
                 TestEbookConvertCalibre - test_convert_parameter 
             | 
            PASS | |||||
| 
                 TestEbookConvertCalibre - test_convert_wrong_excecutable 
             | 
            PASS | |||||
| 
                 TestEbookConvertCalibre - test_convert_xss 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_ebook_convert.py", line 506, in test_convert_xss
    self.assertTrue(self.check_element_on_page((By.ID, "flash_success")))
AssertionError: False is not true
                     | 
        |||||
| 
                 TestEbookConvertCalibre - test_email_failed 
             | 
            PASS | |||||
| 
                 TestEbookConvertCalibre - test_email_only 
             | 
            PASS | |||||
| 
                 TestEbookConvertCalibre - test_kindle_send_not_configured 
             | 
            PASS | |||||
| 
                 TestEbookConvertCalibre - test_ssl_smtp_setup_error 
             | 
            PASS | |||||
| 
                 TestEbookConvertCalibre - test_starttls_smtp_setup_error 
             | 
            PASS | |||||
| 
                 TestEbookConvertCalibre - test_user_convert_xss 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_ebook_convert.py", line 538, in test_user_convert_xss
    self.assertTrue(self.check_element_on_page((By.ID, "flash_success")))
AssertionError: False is not true
                     | 
        |||||
| TestEbookConvertCalibreGDrive | 6 | 6 | 0 | 0 | 0 | Detail | 
| 
                 TestEbookConvertCalibreGDrive - test_convert_email 
             | 
            PASS | |||||
| 
                 TestEbookConvertCalibreGDrive - test_convert_failed_and_email 
             | 
            PASS | |||||
| 
                 TestEbookConvertCalibreGDrive - test_convert_only 
             | 
            PASS | |||||
| 
                 TestEbookConvertCalibreGDrive - test_convert_parameter 
             | 
            PASS | |||||
| 
                 TestEbookConvertCalibreGDrive - test_email_failed 
             | 
            PASS | |||||
| 
                 TestEbookConvertCalibreGDrive - test_email_only 
             | 
            PASS | |||||
| TestEbookConvertKepubify | 3 | 3 | 0 | 0 | 0 | Detail | 
| 
                 TestEbookConvertKepubify - test_convert_deactivate 
             | 
            PASS | |||||
| 
                 TestEbookConvertKepubify - test_convert_only 
             | 
            PASS | |||||
| 
                 TestEbookConvertKepubify - test_convert_wrong_excecutable 
             | 
            PASS | |||||
| TestEbookConvertGDriveKepubify | 3 | 3 | 0 | 0 | 0 | Detail | 
| 
                 TestEbookConvertGDriveKepubify - test_convert_deactivate 
             | 
            PASS | |||||
| 
                 TestEbookConvertGDriveKepubify - test_convert_only 
             | 
            PASS | |||||
| 
                 TestEbookConvertGDriveKepubify - test_convert_wrong_excecutable 
             | 
            PASS | |||||
| TestEditAdditionalBooks | 16 | 6 | 2 | 6 | 2 | Detail | 
| 
                 TestEditAdditionalBooks - test_change_upload_formats 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_additional_books.py", line 136, in test_change_upload_formats
    self.assertTrue(self.check_element_on_page((By.ID, 'edit_cancel')))
AssertionError: False is not true
                     | 
        |||||
| 
                 TestEditAdditionalBooks - test_delete_book 
             | 
            PASS | |||||
| 
                 TestEditAdditionalBooks - test_delete_role 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_additional_books.py", line 642, in test_delete_role
    self.assertTrue(self.delete_book_format(12, 'FB2'))
AssertionError: False is not true
                     | 
        |||||
| 
                 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 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_additional_books.py", line 654, in test_title_sort
    self.verify_order("search", order=order)
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 1324, in verify_order
    self.check_element_on_page((By.ID, key)).click()
AttributeError: 'bool' object has no attribute 'click'
                     | 
        |||||
| 
                 TestEditAdditionalBooks - test_upload_edit_role 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_additional_books.py", line 510, in test_upload_edit_role
    self.fill_basic_config({'config_uploading': 1})
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 356, in fill_basic_config
    cls._fill_basic_config(elements)
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 266, in _fill_basic_config
    WebDriverWait(cls.driver, 5).until(EC.presence_of_element_located((By.ID, "config_port")))
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/support/wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
                     | 
        |||||
| 
                 TestEditAdditionalBooks - test_upload_metadata_cbr 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_additional_books.py", line 55, in test_upload_metadata_cbr
    self.fill_basic_config({'config_uploading': 1})
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 356, in fill_basic_config
    cls._fill_basic_config(elements)
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 266, in _fill_basic_config
    WebDriverWait(cls.driver, 5).until(EC.presence_of_element_located((By.ID, "config_port")))
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/support/wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
                     | 
        |||||
| 
                 TestEditAdditionalBooks - test_upload_metadata_cbt 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_additional_books.py", line 92, in test_upload_metadata_cbt
    self.fill_basic_config({'config_uploading': 1})
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 356, in fill_basic_config
    cls._fill_basic_config(elements)
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 266, in _fill_basic_config
    WebDriverWait(cls.driver, 5).until(EC.presence_of_element_located((By.ID, "config_port")))
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/support/wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
                     | 
        |||||
| 
                 TestEditAdditionalBooks - test_writeonly_calibre_database 
             | 
            ||||||
| 
                 TestEditAdditionalBooks - test_writeonly_path 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_additional_books.py", line 240, in test_writeonly_path
    self.fill_basic_config({'config_rarfile_location': unrar_path()})
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 356, in fill_basic_config
    cls._fill_basic_config(elements)
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 266, in _fill_basic_config
    WebDriverWait(cls.driver, 5).until(EC.presence_of_element_located((By.ID, "config_port")))
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/support/wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
                     | 
        |||||
| 
                 TestEditAdditionalBooks - test_xss_author_edit 
             | 
            SKIP | |||||
| 
                 TestEditAdditionalBooks - test_xss_comment_edit 
             | 
            PASS | |||||
| 
                 TestEditAdditionalBooks - test_xss_custom_comment_edit 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_additional_books.py", line 718, in test_xss_custom_comment_edit
    self.assertEqual(0, len(values['cust_columns']))
KeyError: 'cust_columns'
                     | 
        |||||
| _ErrorHolder | 1 | 0 | 0 | 1 | 0 | Detail | 
| 
                 tearDownClass (test_edit_additional_books) 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_additional_books.py", line 41, in tearDownClass
    cls.stop_calibre_web()
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 444, in stop_calibre_web
    cls.driver.find_element_by_id('admin_stop').click()
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 360, in find_element_by_id
    return self.find_element(by=By.ID, value=id_)
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 976, in find_element
    return self.execute(Command.FIND_ELEMENT, {
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/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"]
                     | 
        |||||
| TestEditBooks | 35 | 14 | 1 | 19 | 1 | Detail | 
| 
                 TestEditBooks - test_download_book 
             | 
            PASS | |||||
| 
                 TestEditBooks - test_edit_author 
             | 
            PASS | |||||
| 
                 TestEditBooks - test_edit_category 
             | 
            PASS | |||||
| 
                 TestEditBooks - test_edit_comments 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_books.py", line 443, in test_edit_comments
    self.assertEqual(len(self.adv_search({u'comment': u'mirä 人'})), 1)
AssertionError: 0 != 1
                     | 
        |||||
| 
                 TestEditBooks - test_edit_custom_bool 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_books.py", line 452, in test_edit_custom_bool
    self.assertEqual(len(self.adv_search({u'custom_column_3': u'Yes'})), 0)
TypeError: object of type 'bool' has no len()
                     | 
        |||||
| 
                 TestEditBooks - test_edit_custom_categories 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_books.py", line 543, in test_edit_custom_categories
    self.assertEqual(len(self.adv_search({u'custom_column_6': u'人 Ü'})), 0)
TypeError: object of type 'bool' has no len()
                     | 
        |||||
| 
                 TestEditBooks - test_edit_custom_comment 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_books.py", line 526, in test_edit_custom_comment
    self.assertEqual(len(self.adv_search({u'custom_column_5': u'人1 Ä'})), 0)
TypeError: object of type 'bool' has no len()
                     | 
        |||||
| 
                 TestEditBooks - test_edit_custom_date 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_books.py", line 592, in test_edit_custom_date
    self.assertEqual(len(self.adv_search({u'custom_column_2_start': u'16/7/2015'})), 0)
TypeError: object of type 'bool' has no len()
                     | 
        |||||
| 
                 TestEditBooks - test_edit_custom_float 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_books.py", line 560, in test_edit_custom_float
    self.assertEqual(len(self.adv_search({u'custom_column_8': u'-2.5'})), 0)
TypeError: object of type 'bool' has no len()
                     | 
        |||||
| 
                 TestEditBooks - test_edit_custom_int 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_books.py", line 576, in test_edit_custom_int
    self.assertEqual(len(self.adv_search({u'custom_column_4': u'0'})), 0)
TypeError: object of type 'bool' has no len()
                     | 
        |||||
| 
                 TestEditBooks - test_edit_custom_rating 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_books.py", line 467, in test_edit_custom_rating
    self.assertEqual(len(self.adv_search({u'custom_column_1': u'3'})), 0)
TypeError: object of type 'bool' has no len()
                     | 
        |||||
| 
                 TestEditBooks - test_edit_custom_single_select 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_books.py", line 493, in test_edit_custom_single_select
    self.assertEqual(len(self.adv_search({u'custom_column_9': u'人物'})), 0)
TypeError: object of type 'bool' has no len()
                     | 
        |||||
| 
                 TestEditBooks - test_edit_custom_text 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_books.py", line 509, in test_edit_custom_text
    self.assertEqual(len(self.adv_search({u'custom_column_10': u'人 Ä'})), 0)
TypeError: object of type 'bool' has no len()
                     | 
        |||||
| 
                 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 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_books.py", line 73, in test_edit_title
    self.assertEqual(u'O0ü 执', values['title'])
KeyError: 'title'
                     | 
        |||||
| 
                 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 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_books.py", line 1022, in test_upload_book_cbr
    self.check_element_on_page((By.ID, 'edit_cancel')).click()
AttributeError: 'bool' object has no attribute 'click'
                     | 
        |||||
| 
                 TestEditBooks - test_upload_book_cbt 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_books.py", line 987, in test_upload_book_cbt
    self.fill_basic_config({'config_uploading':1})
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 356, in fill_basic_config
    cls._fill_basic_config(elements)
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 266, in _fill_basic_config
    WebDriverWait(cls.driver, 5).until(EC.presence_of_element_located((By.ID, "config_port")))
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/support/wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
                     | 
        |||||
| 
                 TestEditBooks - test_upload_book_cbz 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_books.py", line 961, in test_upload_book_cbz
    self.fill_basic_config({'config_uploading':1})
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 356, in fill_basic_config
    cls._fill_basic_config(elements)
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 266, in _fill_basic_config
    WebDriverWait(cls.driver, 5).until(EC.presence_of_element_located((By.ID, "config_port")))
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/support/wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
                     | 
        |||||
| 
                 TestEditBooks - test_upload_book_epub 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_books.py", line 922, in test_upload_book_epub
    self.fill_basic_config({'config_uploading':1})
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 356, in fill_basic_config
    cls._fill_basic_config(elements)
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 266, in _fill_basic_config
    WebDriverWait(cls.driver, 5).until(EC.presence_of_element_located((By.ID, "config_port")))
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/support/wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
                     | 
        |||||
| 
                 TestEditBooks - test_upload_book_fb2 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_books.py", line 844, in test_upload_book_fb2
    self.fill_basic_config({'config_uploading':1})
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 356, in fill_basic_config
    cls._fill_basic_config(elements)
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 266, in _fill_basic_config
    WebDriverWait(cls.driver, 5).until(EC.presence_of_element_located((By.ID, "config_port")))
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/support/wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
                     | 
        |||||
| 
                 TestEditBooks - test_upload_book_lit 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_books.py", line 870, in test_upload_book_lit
    self.fill_basic_config({'config_uploading':1})
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 356, in fill_basic_config
    cls._fill_basic_config(elements)
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 266, in _fill_basic_config
    WebDriverWait(cls.driver, 5).until(EC.presence_of_element_located((By.ID, "config_port")))
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/support/wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
                     | 
        |||||
| 
                 TestEditBooks - test_upload_book_mobi 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_books.py", line 896, in test_upload_book_mobi
    self.fill_basic_config({'config_uploading':1})
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 356, in fill_basic_config
    cls._fill_basic_config(elements)
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 266, in _fill_basic_config
    WebDriverWait(cls.driver, 5).until(EC.presence_of_element_located((By.ID, "config_port")))
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/support/wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
                     | 
        |||||
| 
                 TestEditBooks - test_upload_book_pdf 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_books.py", line 818, in test_upload_book_pdf
    self.fill_basic_config({'config_uploading':1})
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 356, in fill_basic_config
    cls._fill_basic_config(elements)
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 266, in _fill_basic_config
    WebDriverWait(cls.driver, 5).until(EC.presence_of_element_located((By.ID, "config_port")))
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/support/wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
                     | 
        |||||
| 
                 TestEditBooks - test_upload_cover_hdd 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_books.py", line 769, in test_upload_cover_hdd
    self.fill_basic_config({'config_uploading': 1})
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 356, in fill_basic_config
    cls._fill_basic_config(elements)
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 266, in _fill_basic_config
    WebDriverWait(cls.driver, 5).until(EC.presence_of_element_located((By.ID, "config_port")))
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/support/wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
                     | 
        |||||
| TestEditBooksList | 18 | 14 | 3 | 1 | 0 | Detail | 
| 
                 TestEditBooksList - test_bookslist_edit_author 
             | 
            PASS | |||||
| 
                 TestEditBooksList - test_bookslist_edit_categories 
             | 
            PASS | |||||
| 
                 TestEditBooksList - test_bookslist_edit_comment 
             | 
            PASS | |||||
| 
                 TestEditBooksList - test_bookslist_edit_cust_category 
             | 
            PASS | |||||
| 
                 TestEditBooksList - test_bookslist_edit_cust_comment 
             | 
            PASS | |||||
| 
                 TestEditBooksList - test_bookslist_edit_cust_enum 
             | 
            PASS | |||||
| 
                 TestEditBooksList - test_bookslist_edit_cust_float 
             | 
            PASS | |||||
| 
                 TestEditBooksList - test_bookslist_edit_cust_int 
             | 
            PASS | |||||
| 
                 TestEditBooksList - test_bookslist_edit_cust_ratings 
             | 
            PASS | |||||
| 
                 TestEditBooksList - test_bookslist_edit_cust_text 
             | 
            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 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_books_list.py", line 73, in test_bookslist_edit_title
    bl = self.get_books_list(-1)
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 1827, in get_books_list
    element_text = "+" if "glyphicon-plus" in click_element.find_elements_by_xpath("./span")[0].get_attribute('class') else ""
IndexError: list index out of range
                     | 
        |||||
| 
                 TestEditBooksList - test_list_visibility 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_books_list.py", line 287, in test_list_visibility
    self.assertEqual(17, len(bl['column_elements']))
AssertionError: 17 != 20
                     | 
        |||||
| 
                 TestEditBooksList - test_restricted_rights 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_books_list.py", line 326, in test_restricted_rights
    self.assertFalse('Delete' in bl['table'][0])
AssertionError: True is not false
                     | 
        |||||
| 
                 TestEditBooksList - test_search_books_list 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_books_list.py", line 63, in test_search_books_list
    self.assertEqual(9, len(bl['table']))
AssertionError: 9 != 10
                     | 
        |||||
| TestEditBooksOnGdrive | 20 | 9 | 2 | 9 | 0 | Detail | 
| 
                 TestEditBooksOnGdrive - test_download_book 
             | 
            PASS | |||||
| 
                 TestEditBooksOnGdrive - test_edit_author 
             | 
            PASS | |||||
| 
                 TestEditBooksOnGdrive - test_edit_category 
             | 
            PASS | |||||
| 
                 TestEditBooksOnGdrive - test_edit_comments 
             | 
            PASS | |||||
| 
                 TestEditBooksOnGdrive - test_edit_custom_bool 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_ebooks_gdrive.py", line 652, in test_edit_custom_bool
    self.assertEqual(len(self.adv_search({u'custom_column_3': u'Yes'})), 1)
AssertionError: 0 != 1
                     | 
        |||||
| 
                 TestEditBooksOnGdrive - test_edit_custom_categories 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_ebooks_gdrive.py", line 714, in test_edit_custom_categories
    self.assertEqual(len(self.adv_search({u'custom_column_6': u'人 Ü'})), 0)
TypeError: object of type 'bool' has no len()
                     | 
        |||||
| 
                 TestEditBooksOnGdrive - test_edit_custom_float 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_ebooks_gdrive.py", line 732, in test_edit_custom_float
    self.assertEqual(len(self.adv_search({u'custom_column_8': u'-2.5'})), 0)
TypeError: object of type 'bool' has no len()
                     | 
        |||||
| 
                 TestEditBooksOnGdrive - test_edit_custom_int 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_ebooks_gdrive.py", line 748, in test_edit_custom_int
    self.assertEqual(len(self.adv_search({u'custom_column_4': u'0'})), 0)
TypeError: object of type 'bool' has no len()
                     | 
        |||||
| 
                 TestEditBooksOnGdrive - test_edit_custom_rating 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_ebooks_gdrive.py", line 661, in test_edit_custom_rating
    self.assertEqual(len(self.adv_search({u'custom_column_1': u'3'})), 0)
TypeError: object of type 'bool' has no len()
                     | 
        |||||
| 
                 TestEditBooksOnGdrive - test_edit_custom_single_select 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_ebooks_gdrive.py", line 681, in test_edit_custom_single_select
    self.assertEqual(len(self.adv_search({u'custom_column_9': u'人物'})), 0)
TypeError: object of type 'bool' has no len()
                     | 
        |||||
| 
                 TestEditBooksOnGdrive - test_edit_custom_text 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_ebooks_gdrive.py", line 697, in test_edit_custom_text
    self.assertEqual(len(self.adv_search({u'custom_column_10': u'人 Ä'})), 0)
TypeError: object of type 'bool' has no len()
                     | 
        |||||
| 
                 TestEditBooksOnGdrive - test_edit_language 
             | 
            PASS | |||||
| 
                 TestEditBooksOnGdrive - test_edit_publisher 
             | 
            PASS | |||||
| 
                 TestEditBooksOnGdrive - test_edit_rating 
             | 
            PASS | |||||
| 
                 TestEditBooksOnGdrive - test_edit_series 
             | 
            PASS | |||||
| 
                 TestEditBooksOnGdrive - test_edit_title 
             | 
            PASS | |||||
| 
                 TestEditBooksOnGdrive - test_upload_book_epub 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_ebooks_gdrive.py", line 850, in test_upload_book_epub
    self.check_element_on_page((By.ID, 'edit_cancel')).click()
AttributeError: 'bool' object has no attribute 'click'
                     | 
        |||||
| 
                 TestEditBooksOnGdrive - test_upload_book_lit 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_ebooks_gdrive.py", line 815, in test_upload_book_lit
    self.fill_basic_config({'config_uploading':1})
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 356, in fill_basic_config
    cls._fill_basic_config(elements)
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 266, in _fill_basic_config
    WebDriverWait(cls.driver, 5).until(EC.presence_of_element_located((By.ID, "config_port")))
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/support/wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
                     | 
        |||||
| 
                 TestEditBooksOnGdrive - test_upload_cover_hdd 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_ebooks_gdrive.py", line 763, in test_upload_cover_hdd
    self.fill_basic_config({'config_uploading': 1})
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 356, in fill_basic_config
    cls._fill_basic_config(elements)
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 266, in _fill_basic_config
    WebDriverWait(cls.driver, 5).until(EC.presence_of_element_located((By.ID, "config_port")))
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/support/wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
                     | 
        |||||
| 
                 TestEditBooksOnGdrive - test_watch_metadata 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_edit_ebooks_gdrive.py", line 901, in test_watch_metadata
    self.assertTrue(button)
AssertionError: False is not true
                     | 
        |||||
| TestSTARTTLS | 3 | 3 | 0 | 0 | 0 | Detail | 
| 
                 TestSTARTTLS - test_STARTTLS 
             | 
            PASS | |||||
| 
                 TestSTARTTLS - test_STARTTLS_SSL_setup_error 
             | 
            PASS | |||||
| 
                 TestSTARTTLS - test_STARTTLS_resend_password 
             | 
            PASS | |||||
| TestSSL | 7 | 5 | 0 | 2 | 0 | Detail | 
| 
                 TestSSL - test_SSL_None_setup_error 
             | 
            PASS | |||||
| 
                 TestSSL - test_SSL_STARTTLS_setup_error 
             | 
            PASS | |||||
| 
                 TestSSL - test_SSL_logging_email 
             | 
            PASS | |||||
| 
                 TestSSL - test_SSL_non_admin_user 
             | 
            PASS | |||||
| 
                 TestSSL - test_SSL_only 
             | 
            PASS | |||||
| 
                 TestSSL - test_email_limit 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_email_ssl.py", line 147, in test_email_limit
    self.check_element_on_page((By.ID, 'edit_cancel')).click()
AttributeError: 'bool' object has no attribute 'click'
                     | 
        |||||
| 
                 TestSSL - test_filepicker_two_file 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_email_ssl.py", line 217, in test_filepicker_two_file
    accordions[0].click()
IndexError: list index out of range
                     | 
        |||||
| TestBookDatabase | 1 | 1 | 0 | 0 | 0 | Detail | 
| 
                 TestBookDatabase - test_invalid_book_path 
             | 
            PASS | |||||
| TestErrorReadColumn | 1 | 1 | 0 | 0 | 0 | Detail | 
| 
                 TestErrorReadColumn - test_invalid_custom_column 
             | 
            PASS | |||||
| TestFilePicker | 1 | 1 | 0 | 0 | 0 | Detail | 
| 
                 TestFilePicker - test_filepicker_limited_file 
             | 
            PASS | |||||
| 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 | 11 | 2 | 9 | 0 | 0 | Detail | 
| 
                 TestKoboSync - test_book_download 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 584, in test_book_download
    data = self.inital_sync()
  File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 111, in inital_sync
    self.assertEqual(r.json(), {})
AssertionError: {'Benefits': {}} != {}
- {'Benefits': {}}
+ {}
                     | 
        |||||
| 
                 TestKoboSync - test_kobo_about 
             | 
            PASS | |||||
| 
                 TestKoboSync - test_kobo_sync_selected_shelfs 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 603, in test_kobo_sync_selected_shelfs
    data = self.inital_sync()
  File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 111, in inital_sync
    self.assertEqual(r.json(), {})
AssertionError: {'Benefits': {}} != {}
- {'Benefits': {}}
+ {}
                     | 
        |||||
| 
                 TestKoboSync - test_kobo_upload_book 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 653, in test_kobo_upload_book
    self.inital_sync()
  File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 111, in inital_sync
    self.assertEqual(r.json(), {})
AssertionError: {'Benefits': {}} != {}
- {'Benefits': {}}
+ {}
                     | 
        |||||
| 
                 TestKoboSync - test_shelves_add_remove_books 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 448, in test_shelves_add_remove_books
    self.inital_sync()
  File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 111, in inital_sync
    self.assertEqual(r.json(), {})
AssertionError: {'Benefits': {}} != {}
- {'Benefits': {}}
+ {}
                     | 
        |||||
| 
                 TestKoboSync - test_sync_changed_book 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 278, in test_sync_changed_book
    self.inital_sync()
  File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 111, in inital_sync
    self.assertEqual(r.json(), {})
AssertionError: {'Benefits': {}} != {}
- {'Benefits': {}}
+ {}
                     | 
        |||||
| 
                 TestKoboSync - test_sync_invalid 
             | 
            PASS | |||||
| 
                 TestKoboSync - test_sync_reading_state 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 515, in test_sync_reading_state
    self.inital_sync()
  File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 111, in inital_sync
    self.assertEqual(r.json(), {})
AssertionError: {'Benefits': {}} != {}
- {'Benefits': {}}
+ {}
                     | 
        |||||
| 
                 TestKoboSync - test_sync_shelf 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 297, in test_sync_shelf
    self.inital_sync()
  File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 111, in inital_sync
    self.assertEqual(r.json(), {})
AssertionError: {'Benefits': {}} != {}
- {'Benefits': {}}
+ {}
                     | 
        |||||
| 
                 TestKoboSync - test_sync_unchanged 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 243, in test_sync_unchanged
    self.inital_sync()
  File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 111, in inital_sync
    self.assertEqual(r.json(), {})
AssertionError: {'Benefits': {}} != {}
- {'Benefits': {}}
+ {}
                     | 
        |||||
| 
                 TestKoboSync - test_sync_upload 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 257, in test_sync_upload
    self.inital_sync()
  File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 111, in inital_sync
    self.assertEqual(r.json(), {})
AssertionError: {'Benefits': {}} != {}
- {'Benefits': {}}
+ {}
                     | 
        |||||
| TestKoboSyncBig | 5 | 1 | 4 | 0 | 0 | Detail | 
| 
                 TestKoboSyncBig - test_kobo_sync_multi_user 
             | 
            PASS | |||||
| 
                 TestKoboSyncBig - test_kobo_sync_selected_shelfs 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync_big.py", line 260, in test_kobo_sync_selected_shelfs
    self.inital_sync()
  File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync_big.py", line 103, in inital_sync
    self.assertEqual(r.json(), {})
AssertionError: {'Benefits': {}} != {}
- {'Benefits': {}}
+ {}
                     | 
        |||||
| 
                 TestKoboSyncBig - test_sync_changed_book 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync_big.py", line 164, in test_sync_changed_book
    self.inital_sync()
  File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync_big.py", line 103, in inital_sync
    self.assertEqual(r.json(), {})
AssertionError: {'Benefits': {}} != {}
- {'Benefits': {}}
+ {}
                     | 
        |||||
| 
                 TestKoboSyncBig - test_sync_reading_state 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync_big.py", line 237, in test_sync_reading_state
    self.inital_sync()
  File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync_big.py", line 103, in inital_sync
    self.assertEqual(r.json(), {})
AssertionError: {'Benefits': {}} != {}
- {'Benefits': {}}
+ {}
                     | 
        |||||
| 
                 TestKoboSyncBig - test_sync_shelf 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync_big.py", line 193, in test_sync_shelf
    self.inital_sync()
  File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync_big.py", line 103, in inital_sync
    self.assertEqual(r.json(), {})
AssertionError: {'Benefits': {}} != {}
- {'Benefits': {}}
+ {}
                     | 
        |||||
| TestLdapLogin | 13 | 13 | 0 | 0 | 0 | Detail | 
| 
                 TestLdapLogin - test_LDAP_SSL 
             | 
            PASS | |||||
| 
                 TestLdapLogin - test_LDAP_SSL_CERTIFICATE 
             | 
            PASS | |||||
| 
                 TestLdapLogin - test_LDAP_STARTTLS 
             | 
            PASS | |||||
| 
                 TestLdapLogin - test_LDAP_fallback_Login 
             | 
            PASS | |||||
| 
                 TestLdapLogin - test_LDAP_import 
             | 
            PASS | |||||
| 
                 TestLdapLogin - test_LDAP_import_memberfield 
             | 
            PASS | |||||
| 
                 TestLdapLogin - test_LDAP_login 
             | 
            PASS | |||||
| 
                 TestLdapLogin - test_invalid_LDAP 
             | 
            PASS | |||||
| 
                 TestLdapLogin - test_ldap_about 
             | 
            PASS | |||||
| 
                 TestLdapLogin - test_ldap_authentication 
             | 
            PASS | |||||
| 
                 TestLdapLogin - test_ldap_kobo_sync 
             | 
            PASS | |||||
| 
                 TestLdapLogin - test_ldap_opds_anonymous 
             | 
            PASS | |||||
| 
                 TestLdapLogin - test_ldap_opds_download_book 
             | 
            PASS | |||||
| TestCalibreWebListOrders | 8 | 8 | 0 | 0 | 0 | Detail | 
| 
                 TestCalibreWebListOrders - test_author_sort 
             | 
            PASS | |||||
| 
                 TestCalibreWebListOrders - test_download_sort 
             | 
            PASS | |||||
| 
                 TestCalibreWebListOrders - test_format_sort 
             | 
            PASS | |||||
| 
                 TestCalibreWebListOrders - test_lang_sort 
             | 
            PASS | |||||
| 
                 TestCalibreWebListOrders - test_publisher_sort 
             | 
            PASS | |||||
| 
                 TestCalibreWebListOrders - test_ratings_sort 
             | 
            PASS | |||||
| 
                 TestCalibreWebListOrders - test_series_sort 
             | 
            PASS | |||||
| 
                 TestCalibreWebListOrders - test_tags_sort 
             | 
            PASS | |||||
| TestLogging | 9 | 8 | 0 | 0 | 1 | Detail | 
| 
                 TestLogging - test_access_log_recover 
             | 
            PASS | |||||
| 
                 TestLogging - test_debug_log 
             | 
            PASS | |||||
| 
                 TestLogging - test_debuginfo_download 
             | 
            PASS | |||||
| 
                 TestLogging - test_failed_login 
             | 
            PASS | |||||
| 
                 TestLogging - test_failed_register 
             | 
            ||||||
| 
                 TestLogging - test_logbook_download 
             | 
            PASS | |||||
| 
                 TestLogging - test_logfile_change 
             | 
            PASS | |||||
| 
                 TestLogging - test_logfile_recover 
             | 
            PASS | |||||
| 
                 TestLogging - test_logviewer 
             | 
            PASS | |||||
| TestLogin | 15 | 15 | 0 | 0 | 0 | Detail | 
| 
                 TestLogin - test_digest_login 
             | 
            PASS | |||||
| 
                 TestLogin - test_login_capital_letters_user_unicode_password 
             | 
            PASS | |||||
| 
                 TestLogin - test_login_cookie_steal 
             | 
            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 
             | 
            PASS | |||||
| 
                 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 | 22 | 1 | 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 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_opds_feed.py", line 574, in test_opds_search
    self.assertEqual(200, r.status_code)
AssertionError: 200 != 500
                     | 
        |||||
| 
                 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 | 0 | 0 | 1 | 0 | Detail | 
| 
                 TestUploadPDF - test_upload_invalid_pdf 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_pdf_metadata.py", line 129, in test_upload_invalid_pdf
    self.check_uploaded_pdf({'author': "Mani Mücks",
  File "/home/ozzie/Development/calibre-web-test/test/test_pdf_metadata.py", line 59, in check_uploaded_pdf
    self.check_element_on_page((By.ID, 'edit_cancel')).click()
AttributeError: 'bool' object has no attribute 'click'
                     | 
        |||||
| TestReader | 5 | 4 | 0 | 1 | 0 | Detail | 
| 
                 TestReader - test_comic_reader 
             | 
            PASS | |||||
| 
                 TestReader - test_epub_reader 
             | 
            PASS | |||||
| 
                 TestReader - test_pdf_reader 
             | 
            PASS | |||||
| 
                 TestReader - test_sound_listener 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_reader.py", line 230, in test_sound_listener
    self.sound_test('music.flac', 'Unknown - music', '0:02')
  File "/home/ozzie/Development/calibre-web-test/test/test_reader.py", line 191, in sound_test
    self.check_element_on_page((By.ID, 'edit_cancel')).click()
AttributeError: 'bool' object has no attribute 'click'
                     | 
        |||||
| 
                 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 | |||||
| TestReverseProxy | 3 | 3 | 0 | 0 | 0 | Detail | 
| 
                 TestReverseProxy - test_logout 
             | 
            PASS | |||||
| 
                 TestReverseProxy - test_move_page 
             | 
            PASS | |||||
| 
                 TestReverseProxy - test_reverse_about 
             | 
            PASS | |||||
| TestShelf | 26 | 1 | 10 | 14 | 1 | Detail | 
| 
                 TestShelf - test_add_shelf_from_search 
             | 
            PASS | |||||
| 
                 TestShelf - test_adv_search_shelf 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_shelf.py", line 466, in test_adv_search_shelf
    self.assertEqual(len(self.adv_search({u'include_shelf': u'Search', 'book_title': 'book'})), 2)
AssertionError: 0 != 2
                     | 
        |||||
| 
                 TestShelf - test_adv_search_shelf 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_shelf.py", line 44, in tearDown
    self.login('admin','admin123')
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 84, in login
    WebDriverWait(cls.driver, 5).until(EC.presence_of_element_located((By.ID, "username")))
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/support/wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
                     | 
        |||||
| 
                 TestShelf - test_arrange_shelf 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_shelf.py", line 252, in test_arrange_shelf
    self.assertTrue(self.check_element_on_page((By.ID, "flash_success")))
AssertionError: False is not true
                     | 
        |||||
| 
                 TestShelf - test_arrange_shelf 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_shelf.py", line 44, in tearDown
    self.login('admin','admin123')
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 84, in login
    WebDriverWait(cls.driver, 5).until(EC.presence_of_element_located((By.ID, "username")))
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/support/wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
                     | 
        |||||
| 
                 TestShelf - test_create_public_shelf 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_shelf.py", line 146, in test_create_public_shelf
    self.create_user('invalid', {'edit_shelf_role': 0, 'password': '1234', 'email': 'bac@b.com'})
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 976, in create_user
    return cls.change_user(config)
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 1030, in change_user
    ele = cls.driver.find_element_by_id(checkbox)
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 360, in find_element_by_id
    return self.find_element(by=By.ID, value=id_)
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 976, in find_element
    return self.execute(Command.FIND_ELEMENT, {
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/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="edit_shelf_role"]
                     | 
        |||||
| 
                 TestShelf - test_create_public_shelf 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_shelf.py", line 44, in tearDown
    self.login('admin','admin123')
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 84, in login
    WebDriverWait(cls.driver, 5).until(EC.presence_of_element_located((By.ID, "username")))
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/support/wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
                     | 
        |||||
| 
                 TestShelf - test_delete_book_of_shelf 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_shelf.py", line 237, in test_delete_book_of_shelf
    self.assertTrue(self.check_element_on_page((By.ID, "flash_success")))
AssertionError: False is not true
                     | 
        |||||
| 
                 TestShelf - test_delete_book_of_shelf 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_shelf.py", line 44, in tearDown
    self.login('admin','admin123')
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 84, in login
    WebDriverWait(cls.driver, 5).until(EC.presence_of_element_located((By.ID, "username")))
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/support/wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
                     | 
        |||||
| 
                 TestShelf - test_private_shelf 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_shelf.py", line 57, in test_private_shelf
    self.assertTrue(self.check_element_on_page((By.ID, "flash_success")))
AssertionError: False is not true
                     | 
        |||||
| 
                 TestShelf - test_private_shelf 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_shelf.py", line 44, in tearDown
    self.login('admin','admin123')
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 84, in login
    WebDriverWait(cls.driver, 5).until(EC.presence_of_element_located((By.ID, "username")))
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/support/wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
                     | 
        |||||
| 
                 TestShelf - test_public_private_shelf 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_shelf.py", line 295, in test_public_private_shelf
    self.assertTrue(self.check_element_on_page((By.ID, "flash_success")))
AssertionError: False is not true
                     | 
        |||||
| 
                 TestShelf - test_public_private_shelf 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_shelf.py", line 44, in tearDown
    self.login('admin','admin123')
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 84, in login
    WebDriverWait(cls.driver, 5).until(EC.presence_of_element_located((By.ID, "username")))
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/support/wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
                     | 
        |||||
| 
                 TestShelf - test_public_shelf 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_shelf.py", line 95, in test_public_shelf
    self.assertTrue(self.check_element_on_page((By.ID, "flash_success")))
AssertionError: False is not true
                     | 
        |||||
| 
                 TestShelf - test_public_shelf 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_shelf.py", line 44, in tearDown
    self.login('admin','admin123')
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 84, in login
    WebDriverWait(cls.driver, 5).until(EC.presence_of_element_located((By.ID, "username")))
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/support/wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
                     | 
        |||||
| 
                 TestShelf - test_rename_shelf 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_shelf.py", line 168, in test_rename_shelf
    self.assertTrue(self.check_element_on_page((By.ID, "flash_success")))
AssertionError: False is not true
                     | 
        |||||
| 
                 TestShelf - test_rename_shelf 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_shelf.py", line 44, in tearDown
    self.login('admin','admin123')
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 84, in login
    WebDriverWait(cls.driver, 5).until(EC.presence_of_element_located((By.ID, "username")))
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/support/wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
                     | 
        |||||
| 
                 TestShelf - test_shelf_action_non_shelf_edit_role 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_shelf.py", line 334, in test_shelf_action_non_shelf_edit_role
    self.assertTrue(self.check_element_on_page((By.ID, "flash_success")))
AssertionError: False is not true
                     | 
        |||||
| 
                 TestShelf - test_shelf_action_non_shelf_edit_role 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_shelf.py", line 44, in tearDown
    self.login('admin','admin123')
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 84, in login
    WebDriverWait(cls.driver, 5).until(EC.presence_of_element_located((By.ID, "username")))
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/support/wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
                     | 
        |||||
| 
                 TestShelf - test_shelf_anonymous 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_shelf.py", line 391, in test_shelf_anonymous
    self.fill_basic_config({'config_anonbrowse': 1})
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 356, in fill_basic_config
    cls._fill_basic_config(elements)
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 266, in _fill_basic_config
    WebDriverWait(cls.driver, 5).until(EC.presence_of_element_located((By.ID, "config_port")))
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/support/wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
                     | 
        |||||
| 
                 TestShelf - test_shelf_anonymous 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_shelf.py", line 44, in tearDown
    self.login('admin','admin123')
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 84, in login
    WebDriverWait(cls.driver, 5).until(EC.presence_of_element_located((By.ID, "username")))
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/support/wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
                     | 
        |||||
| 
                 TestShelf - test_shelf_database_change 
             | 
            ||||||
| 
                 TestShelf - test_shelf_long_name 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_shelf.py", line 328, in test_shelf_long_name
    self.assertTrue(self.check_element_on_page((By.ID, "flash_success")))
AssertionError: False is not true
                     | 
        |||||
| 
                 TestShelf - test_shelf_long_name 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_shelf.py", line 44, in tearDown
    self.login('admin','admin123')
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 84, in login
    WebDriverWait(cls.driver, 5).until(EC.presence_of_element_located((By.ID, "username")))
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/support/wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
                     | 
        |||||
| 
                 TestShelf - test_xss_shelf 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_shelf.py", line 479, in test_xss_shelf
    self.assertTrue(self.check_element_on_page((By.ID, "flash_success")))
AssertionError: False is not true
                     | 
        |||||
| 
                 TestShelf - test_xss_shelf 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_shelf.py", line 44, in tearDown
    self.login('admin','admin123')
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 84, in login
    WebDriverWait(cls.driver, 5).until(EC.presence_of_element_located((By.ID, "username")))
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/support/wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
                     | 
        |||||
| TestUpdater | 9 | 8 | 0 | 0 | 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 
             | 
            PASS | |||||
| 
                 TestUpdater - test_perform_update_stable_errors 
             | 
            PASS | |||||
| 
                 TestUpdater - test_perform_update_timeout 
             | 
            ||||||
| 
                 TestUpdater - test_reconnect_database 
             | 
            PASS | |||||
| 
                 TestUpdater - test_update_write_protect 
             | 
            PASS | |||||
| TestUploadEPubs | 2 | 0 | 0 | 2 | 0 | Detail | 
| 
                 TestUploadEPubs - test_upload_epub_duplicate 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_upload_epubs.py", line 82, in test_upload_epub_duplicate
    self.check_element_on_page((By.ID, 'edit_cancel')).click()
AttributeError: 'bool' object has no attribute 'click'
                     | 
        |||||
| 
                 TestUploadEPubs - test_upload_epub_lang 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_upload_epubs.py", line 110, in test_upload_epub_lang
    self.change_visibility_me({'locale': "Italiano"})
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 887, in change_visibility_me
    select = Select(cls.driver.find_element_by_id(key))
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 360, in find_element_by_id
    return self.find_element(by=By.ID, value=id_)
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 976, in find_element
    return self.execute(Command.FIND_ELEMENT, {
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/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="locale"]
                     | 
        |||||
| 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 | 20 | 4 | 10 | 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 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_visiblilitys.py", line 755, in test_allow_columns
    self.assertEqual(len(self.adv_search({'book_title': 'Buchtitel'})), 1)
AssertionError: 0 != 1
                     | 
        |||||
| 
                 TestCalibreWebVisibilitys - test_allow_tags 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_visiblilitys.py", line 586, in test_allow_tags
    self.assertTrue(self.check_element_on_page((By.ID, "flash_success")))
AssertionError: False is not true
                     | 
        |||||
| 
                 TestCalibreWebVisibilitys - test_archive_books 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_visiblilitys.py", line 943, in test_archive_books
    self.assertIsNotNone(details['archived'])
AssertionError: unexpectedly None
                     | 
        |||||
| 
                 TestCalibreWebVisibilitys - test_authors_max_settings 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_visiblilitys.py", line 911, in test_authors_max_settings
    self.assertEqual(len(list_element[1][10]['author']), 4)
IndexError: list index out of range
                     | 
        |||||
| 
                 TestCalibreWebVisibilitys - test_change_title 
             | 
            PASS | |||||
| 
                 TestCalibreWebVisibilitys - test_checked_logged_in 
             | 
            PASS | |||||
| 
                 TestCalibreWebVisibilitys - test_hide_custom_column 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_visiblilitys.py", line 852, in test_hide_custom_column
    self.check_element_on_page((By.ID, "edit_book")).click()
AttributeError: 'bool' object has no attribute 'click'
                     | 
        |||||
| 
                 TestCalibreWebVisibilitys - test_link_column_to_read_status 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_visiblilitys.py", line 786, in test_link_column_to_read_status
    self.check_element_on_page((By.ID, "edit_book")).click()
AttributeError: 'bool' object has no attribute 'click'
                     | 
        |||||
| 
                 TestCalibreWebVisibilitys - test_random_books_available 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_visiblilitys.py", line 89, in test_random_books_available
    list_element[0].click()
IndexError: list index out of range
                     | 
        |||||
| 
                 TestCalibreWebVisibilitys - test_request_link_column_to_read_status 
             | 
            PASS | |||||
| 
                 TestCalibreWebVisibilitys - test_restrict_columns 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_visiblilitys.py", line 669, in test_restrict_columns
    self.assertEqual(len(restricts), 0)
AssertionError: 1 != 0
                     | 
        |||||
| 
                 TestCalibreWebVisibilitys - test_restrict_tags 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_visiblilitys.py", line 514, in test_restrict_tags
    self.assertEqual(len(elements['include_tags']), 1)
TypeError: 'bool' object is not subscriptable
                     | 
        |||||
| 
                 TestCalibreWebVisibilitys - test_save_views_recent 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_visiblilitys.py", line 991, in test_save_views_recent
    self.check_element_on_page((By.ID, "desc")).click()
AttributeError: 'bool' object has no attribute 'click'
                     | 
        |||||
| 
                 TestCalibreWebVisibilitys - test_search_functions 
             | 
            PASS | |||||
| 
                 TestCalibreWebVisibilitys - test_search_order 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_visiblilitys.py", line 474, in test_search_order
    self.search('book')
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 1991, in search
    field.send_keys(term)
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webelement.py", line 477, in send_keys
    self._execute(Command.SEND_KEYS_TO_ELEMENT,
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webelement.py", line 633, in _execute
    return self._parent.execute(command, params)
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementNotInteractableException: Message: Element <input id="query" class="form-control" name="query" type="text"> is not reachable by keyboard
                     | 
        |||||
| 
                 TestCalibreWebVisibilitys - test_search_string 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_visiblilitys.py", line 469, in test_search_string
    self.search('Hallo')
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 1991, in search
    field.send_keys(term)
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webelement.py", line 477, in send_keys
    self._execute(Command.SEND_KEYS_TO_ELEMENT,
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webelement.py", line 633, in _execute
    return self._parent.execute(command, params)
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementNotInteractableException: Message: Element <input id="query" class="form-control" name="query" type="text"> is not reachable by keyboard
                     | 
        |||||
| 
                 TestCalibreWebVisibilitys - test_user_email_available 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_visiblilitys.py", line 101, in test_user_email_available
    self.driver.find_element_by_id("top_user").click()
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webelement.py", line 80, in click
    self._execute(Command.CLICK_ELEMENT)
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webelement.py", line 633, in _execute
    return self._parent.execute(command, params)
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementClickInterceptedException: Message: Element <a id="top_user" href="/me"> is not clickable at point (2414,25) because another element <div id="restrictModal" class="modal fade in"> obscures it
                     | 
        |||||
| 
                 TestCalibreWebVisibilitys - test_user_visibility_sidebar 
             | 
            
                
                
                Traceback (most recent call last):
  File "/home/ozzie/Development/calibre-web-test/test/test_visiblilitys.py", line 118, in test_user_visibility_sidebar
    self.change_user({'show_32': 0})
  File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 1032, in change_user
    ele.click()
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webelement.py", line 80, in click
    self._execute(Command.CLICK_ELEMENT)
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webelement.py", line 633, in _execute
    return self._parent.execute(command, params)
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementClickInterceptedException: Message: Element <input id="show_32" name="show_32" type="checkbox"> is not clickable at point (486,766) because another element <div id="restrictModal" class="modal fade in"> obscures it
                     | 
        |||||
| 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 | 391 | 281 | 38 | 66 | 6 | |
| Program library | Installed Version | Test class | 
|---|---|---|
| Platform | Linux 5.13.0-22-generic #22~20.04.1-Ubuntu SMP Tue Nov 9 15:07:24 UTC 2021 x86_64 x86_64 | Basic | 
| Python | 3.8.10 | Basic | 
| Babel | 2.9.0 | Basic | 
| backports-abc | 0.5 | Basic | 
| Flask | 1.1.2 | Basic | 
| Flask-Babel | 1.0.0 | Basic | 
| Flask-Login | 0.5.0 | Basic | 
| Flask-Principal | 0.4.0 | Basic | 
| Flask-WTF | 1.0.0 | Basic | 
| greenlet | 1.1.2 | Basic | 
| httplib2 | 0.14.0 | Basic | 
| iso-639 | 0.4.5 | Basic | 
| Jinja2 | 2.11.2 | Basic | 
| lxml | 4.6.3 | Basic | 
| natsort | 7.1.0 | Basic | 
| pyasn1 | 0.4.8 | Basic | 
| PyPDF3 | 1.0.5 | Basic | 
| pytz | 2019.3 | Basic | 
| PyYAML | 5.3.1 | Basic | 
| requests | 2.22.0 | Basic | 
| six | 1.14.0 | Basic | 
| SQLAlchemy | 1.4.27 | Basic | 
| tornado | 6.1 | Basic | 
| Unidecode | 1.1.1 | Basic | 
| Wand | 0.6.7 | Basic | 
| Werkzeug | 1.0.1 | Basic | 
| google-api-python-client | 2.32.0 | TestCliGdrivedb | 
| httplib2 | 0.20.2 | TestCliGdrivedb | 
| oauth2client | 4.1.3 | TestCliGdrivedb | 
| PyDrive2 | 1.10.0 | TestCliGdrivedb | 
| PyYAML | 5.3.1 | TestCliGdrivedb | 
| google-api-python-client | 2.32.0 | TestEbookConvertCalibreGDrive | 
| httplib2 | 0.20.2 | TestEbookConvertCalibreGDrive | 
| oauth2client | 4.1.3 | TestEbookConvertCalibreGDrive | 
| PyDrive2 | 1.10.0 | TestEbookConvertCalibreGDrive | 
| PyYAML | 5.3.1 | TestEbookConvertCalibreGDrive | 
| google-api-python-client | 2.32.0 | TestEbookConvertGDriveKepubify | 
| httplib2 | 0.20.2 | TestEbookConvertGDriveKepubify | 
| oauth2client | 4.1.3 | TestEbookConvertGDriveKepubify | 
| PyDrive2 | 1.10.0 | TestEbookConvertGDriveKepubify | 
| PyYAML | 5.3.1 | TestEbookConvertGDriveKepubify | 
| comicapi | 2.2.0 | TestEditAdditionalBooks | 
| rarfile | 4.0 | TestEditAdditionalBooks | 
| google-api-python-client | 2.32.0 | TestEditBooksOnGdrive | 
| httplib2 | 0.20.2 | TestEditBooksOnGdrive | 
| oauth2client | 4.1.3 | TestEditBooksOnGdrive | 
| PyDrive2 | 1.10.0 | TestEditBooksOnGdrive | 
| PyYAML | 5.3.1 | TestEditBooksOnGdrive | 
| google-api-python-client | 2.32.0 | TestSetupGdrive | 
| httplib2 | 0.20.2 | TestSetupGdrive | 
| oauth2client | 4.1.3 | TestSetupGdrive | 
| PyDrive2 | 1.10.0 | TestSetupGdrive | 
| PyYAML | 5.3.1 | TestSetupGdrive | 
| goodreads | 0.3.2 | TestGoodreads | 
| python-Levenshtein | 0.12.2 | TestGoodreads | 
| jsonschema | 4.2.1 | TestKoboSync | 
| jsonschema | 4.2.1 | TestKoboSyncBig | 
| Flask-SimpleLDAP | 1.4.0 | TestLdapLogin | 
| jsonschema | 4.2.1 | TestLdapLogin | 
| python-ldap | 3.4.0 | TestLdapLogin | 
| Flask-Dance | 5.1.0 | TestOAuthLogin | 
| SQLAlchemy-Utils | 0.37.9 | TestOAuthLogin |