".format(self.domain)
+
# Baseclass for representing settings in app.db with email server settings and Calibre database settings
# (application settings)
@@ -555,7 +555,7 @@ def migrate_Database():
conn.execute("ALTER TABLE Settings ADD column `config_use_google_drive` INTEGER DEFAULT 0")
conn.execute("ALTER TABLE Settings ADD column `config_google_drive_folder` String DEFAULT ''")
conn.execute("ALTER TABLE Settings ADD column `config_google_drive_watch_changes_response` String DEFAULT ''")
- session.commit()
+ session.commit()
try:
session.query(exists().where(Settings.config_columns_to_ignore)).scalar()
except exc.OperationalError:
diff --git a/cps/web.py b/cps/web.py
index f6720fea..0a52947e 100644
--- a/cps/web.py
+++ b/cps/web.py
@@ -1072,7 +1072,7 @@ def get_publishers_json():
json_dumps = json.dumps([dict(name=r.name.replace('|',',')) for r in entries])
return json_dumps
-
+
@app.route("/get_tags_json", methods=['GET', 'POST'])
@login_required_if_no_ano
def get_tags_json():
@@ -1192,8 +1192,8 @@ def get_update_status():
r = requests.get(repository_url + '/git/commits/' + commit['object']['sha'])
r.raise_for_status()
update_data = r.json()
- except requests.exceptions.HTTPError as ex:
- status['error'] = _(u'HTTP Error') + ' ' + str(ex)
+ except requests.exceptions.HTTPError as e:
+ status['error'] = _(u'HTTP Error') + ' ' + str(e)
except requests.exceptions.ConnectionError:
status['error'] = _(u'Connection error')
except requests.exceptions.Timeout:
diff --git a/cps/worker.py b/cps/worker.py
index 91794642..3dd7a68c 100644
--- a/cps/worker.py
+++ b/cps/worker.py
@@ -108,7 +108,7 @@ class emailbase():
self.transferSize = len(strg)
lock.release()
for i in range(0, self.transferSize, chunksize):
- if type(strg) == bytes:
+ if isinstance(strg, bytes):
self.sock.send((strg[i:i+chunksize]))
else:
self.sock.send((strg[i:i + chunksize]).encode('utf-8'))
@@ -455,6 +455,8 @@ class WorkerThread(threading.Thread):
except (smtplib.SMTPException) as e:
if hasattr(e, "smtp_error"):
text = e.smtp_error.replace("\n",'. ')
+ elif hasattr(e, "message"):
+ text = e.message
else:
text = ''
self._handleError(u'Error sending email: ' + text)
@@ -501,10 +503,13 @@ class StderrLogger(object):
self.logger = web.app.logger
def write(self, message):
- if message == '\n':
- self.logger.debug(self.buffer)
- print(self.buffer)
- self.buffer = ''
- else:
- self.buffer += message
+ try:
+ if message == '\n':
+ self.logger.debug(self.buffer)
+ print(self.buffer)
+ self.buffer = ''
+ else:
+ self.buffer += message
+ except:
+ pass
diff --git a/test/Calibre-Web TestSummary.html b/test/Calibre-Web TestSummary.html
index 358b7b0e..eb381c0a 100644
--- a/test/Calibre-Web TestSummary.html
+++ b/test/Calibre-Web TestSummary.html
@@ -30,15 +30,15 @@
@@ -95,99 +95,195 @@
Skip |
View |
-
- test_helper.calibre_helper |
- 13 |
- 10 |
- 1 |
- 1 |
- 1 |
+
+ test_opds_feed.test_opds_feed |
+ 16 |
+ 0 |
+ 0 |
+ 0 |
+ 16 |
- Detail
+ Detail
|
-
+
- test_author_sort
- |
- PASS |
-
-
-
- test_author_sort_comma
+ test_opds
|
-
+
- |
-
+
- test_author_sort_junior
- |
- PASS |
-
-
-
- test_author_sort_oneword
- |
- PASS |
-
-
-
- test_author_sort_roman
- |
- PASS |
-
-
-
- test_check_Limit_Length
- |
- PASS |
-
-
-
- test_check_char_replacement
- |
- PASS |
-
-
-
- test_check_chinese_Characters
+ test_opds_author
|
-
+
- |
+
+
+
+ test_opds_calibre_companion
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_opds_cover
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_opds_download_book
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_opds_guest_user
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_opds_hot
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_opds_language
+ |
+
+
+
+
+
+
@@ -196,7 +292,7 @@ AssertionError: 'Zhi Yi' != u'Zhi Yik'
|
- test_check_degEUR_replacement
+ test_opds_non_admin
|
@@ -217,25 +313,3715 @@ AssertionError: 'Zhi Yi' != u'Zhi Yik'
|
-
+
+
+ test_opds_paging
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_opds_publisher
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_opds_random
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_opds_read_unread
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_opds_search
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_opds_series
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_opds_shelf_access
+ |
+
+
+
+
+
+
+
+ |
+
+
+ test_register.test_register |
+ 4 |
+ 0 |
+ 0 |
+ 0 |
+ 4 |
+
+ Detail
+ |
+
+
+
+ test_login_with_password
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_registering_user
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_registering_user_fail
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_resend_password
+ |
+
+
+
+
+
+
+
+ |
+
+
+ test_email_ssl.test_SSL_Python27 |
+ 4 |
+ 4 |
+ 0 |
+ 0 |
+ 0 |
+
+ Detail
+ |
+
+
+
+ test_SSL_None_setup_error
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_SSL_STARTTLS_setup_error
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_SSL_only
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_logging_email
+ |
+
+
+
+
+
+
+
+ |
+
+
+ test_email_ssl.test_SSL_Python36 |
+ 4 |
+ 3 |
+ 1 |
+ 0 |
+ 0 |
+
+ Detail
+ |
+
+
+
+ test_SSL_None_setup_error
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_SSL_STARTTLS_setup_error
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_SSL_only
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_logging_email
+ |
+
+
+
+
+
+
+
+ |
+
+
+ test_logging.test_logging_Python27 |
+ 5 |
+ 3 |
+ 1 |
+ 0 |
+ 1 |
+
+ Detail
+ |
+
+
+
+ test_debug_log
+ |
+ PASS |
+
+
+
+ test_failed_login
+ |
+ PASS |
+
+
+
+ test_failed_register
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_logfile_change
+ |
+ PASS |
+
+
+
+ test_logfile_recover
+ |
+
+
+
+
+
+
+
+ |
+
+
+ test_logging.test_logging_Python36 |
+ 5 |
+ 2 |
+ 1 |
+ 1 |
+ 1 |
+
+ Detail
+ |
+
+
+
+ test_debug_log
+ |
+ PASS |
+
+
+
+ test_failed_login
+ |
+ PASS |
+
+
+
+ test_failed_register
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_logfile_change
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_logfile_recover
+ |
+
+
+
+
+
+
+
+ |
+
+
+ test_edit_books_gdrive.test_edit_books_gdrive |
+ 22 |
+ 0 |
+ 0 |
+ 0 |
+ 22 |
+
+ Detail
+ |
+
+
+
+ test_database_errors
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_delete_book
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_delete_format
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_edit_author
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_edit_category
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_edit_comments
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_edit_custom_bool
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_edit_custom_rating
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_edit_custom_single_select
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_edit_custom_text
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_edit_language
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_edit_publisher
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_edit_publishing_date
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_edit_rating
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_edit_series
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_edit_title
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_typeahead_author
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_typeahead_language
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_typeahead_publisher
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_typeahead_series
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_typeahead_tag
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_upload_cover_hdd
+ |
+
+
+
+
+
+
+
+ |
+
+
+ test_anonymous.test_anonymous_Python27 |
+ 1 |
+ 0 |
+ 0 |
+ 0 |
+ 1 |
+
+ Detail
+ |
+
+
+
+ test_anonymous_user
+ |
+
+
+
+
+
+
+
+ |
+
+
+ test_anonymous.test_anonymous_Python36 |
+ 1 |
+ 0 |
+ 0 |
+ 0 |
+ 1 |
+
+ Detail
+ |
+
+
+
+ test_anonymous_user
+ |
+
+
+
+
+
+
+
+ |
+
+
+ unittest.loader.ModuleImportFailure |
+ 1 |
+ 0 |
+ 0 |
+ 1 |
+ 0 |
+
+ Detail
+ |
+
+
+
+ test
+ |
+
+
+
+
+
+
+
+ |
+
+
+ test_user_template.test_user_template_Python27 |
+ 15 |
+ 12 |
+ 0 |
+ 0 |
+ 3 |
+
+ Detail
+ |
+
+
+
+ test_author_user_template
+ |
+ PASS |
+
+
+
+ test_best_user_template
+ |
+ PASS |
+
+
+
+ test_category_user_template
+ |
+ PASS |
+
+
+
+ test_detail_random_user_template
+ |
+ PASS |
+
+
+
+ test_hot_user_template
+ |
+ PASS |
+
+
+
+ test_language_user_template
+ |
+ PASS |
+
+
+
+ test_limit_book_languages
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_mature_content_settings
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_publisher_user_template
+ |
+ PASS |
+
+
+
+ test_random_user_template
+ |
+ PASS |
+
+
+
+ test_read_user_template
+ |
+ PASS |
+
+
+
+ test_recent_user_template
+ |
+ PASS |
+
+
+
+ test_series_user_template
+ |
+ PASS |
+
+
+
+ test_sorted_user_template
+ |
+ PASS |
+
+
+
+ test_ui_language_settings
+ |
+
+
+
+
+
+
+
+ |
+
+
+ test_user_template.test_user_template_Python36 |
+ 15 |
+ 12 |
+ 0 |
+ 0 |
+ 3 |
+
+ Detail
+ |
+
+
+
+ test_author_user_template
+ |
+ PASS |
+
+
+
+ test_best_user_template
+ |
+ PASS |
+
+
+
+ test_category_user_template
+ |
+ PASS |
+
+
+
+ test_detail_random_user_template
+ |
+ PASS |
+
+
+
+ test_hot_user_template
+ |
+ PASS |
+
+
+
+ test_language_user_template
+ |
+ PASS |
+
+
+
+ test_limit_book_languages
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_mature_content_settings
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_publisher_user_template
+ |
+ PASS |
+
+
+
+ test_random_user_template
+ |
+ PASS |
+
+
+
+ test_read_user_template
+ |
+ PASS |
+
+
+
+ test_recent_user_template
+ |
+ PASS |
+
+
+
+ test_series_user_template
+ |
+ PASS |
+
+
+
+ test_sorted_user_template
+ |
+ PASS |
+
+
+
+ test_ui_language_settings
+ |
+
+
+
+
+
+
+
+ |
+
+
+ test_updater.test_updater |
+ 1 |
+ 0 |
+ 0 |
+ 0 |
+ 1 |
+
+ Detail
+ |
+
+
+
+ test_updater
+ |
+
+
+
+
+
+
+
+ |
+
+
+ test_cli.test_cli_Python27 |
+ 6 |
+ 5 |
+ 0 |
+ 0 |
+ 1 |
+
+ Detail
+ |
+
+
+
+ test_already_started
+ |
+ PASS |
+
+
+
+ test_cli_SSL_files
+ |
+ PASS |
+
+
+
+ test_cli_different_folder
+ |
+ PASS |
+
+
+
+ test_cli_different_settings_database
+ |
+ PASS |
+
+
+
+ test_cli_gdrive_location
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_environ_port_setting
+ |
+ PASS |
+
+
+ test_cli.test_cli_Python36 |
+ 6 |
+ 5 |
+ 0 |
+ 0 |
+ 1 |
+
+ Detail
+ |
+
+
+
+ test_already_started
+ |
+ PASS |
+
+
+
+ test_cli_SSL_files
+ |
+ PASS |
+
+
+
+ test_cli_different_folder
+ |
+ PASS |
+
+
+
+ test_cli_different_settings_database
+ |
+ PASS |
+
+
+
+ test_cli_gdrive_location
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_environ_port_setting
+ |
+ PASS |
+
+
+ test_shelf.test_shelf_Python27 |
+ 7 |
+ 6 |
+ 1 |
+ 0 |
+ 0 |
+
+ Detail
+ |
+
+
+
+ test_delete_book_of_shelf
+ |
+ PASS |
+
+
+
+ test_private_shelf
+ |
+ PASS |
+
+
+
+ test_public_private_shelf
+ |
+ PASS |
+
+
+
+ test_public_shelf
+ |
+ PASS |
+
+
+
+ test_rename_shelf
+ |
+ PASS |
+
+
+
+ test_shelf_database_change
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_shelf_long_name
+ |
+ PASS |
+
+
+ test_shelf.test_shelf_Python36 |
+ 7 |
+ 6 |
+ 1 |
+ 0 |
+ 0 |
+
+ Detail
+ |
+
+
+
+ test_delete_book_of_shelf
+ |
+ PASS |
+
+
+
+ test_private_shelf
+ |
+ PASS |
+
+
+
+ test_public_private_shelf
+ |
+ PASS |
+
+
+
+ test_public_shelf
+ |
+ PASS |
+
+
+
+ test_rename_shelf
+ |
+ PASS |
+
+
+
+ test_shelf_database_change
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_shelf_long_name
+ |
+ PASS |
+
+
+ test_login.test_login_Python27 |
+ 7 |
+ 7 |
+ 0 |
+ 0 |
+ 0 |
+
+ Detail
+ |
+
+
+
+ test_login_capital_letters_user_unicode_password_passwort
+ |
+ PASS |
+
+
+
+ test_login_delete_admin
+ |
+ PASS |
+
+
+
+ test_login_empty_password
+ |
+ PASS |
+
+
+
+ test_login_locale_select
+ |
+ PASS |
+
+
+
+ test_login_protected
+ |
+ PASS |
+
+
+
+ test_login_unicode_user_space_end_passwort
+ |
+ PASS |
+
+
+
+ test_login_user_with_space_passwort_end_space
+ |
+ PASS |
+
+
+ test_login.test_login_Python36 |
+ 7 |
+ 7 |
+ 0 |
+ 0 |
+ 0 |
+
+ Detail
+ |
+
+
+
+ test_login_capital_letters_user_unicode_password_passwort
+ |
+ PASS |
+
+
+
+ test_login_delete_admin
+ |
+ PASS |
+
+
+
+ test_login_empty_password
+ |
+ PASS |
+
+
+
+ test_login_locale_select
+ |
+ PASS |
+
+
+
+ test_login_protected
+ |
+ PASS |
+
+
+
+ test_login_unicode_user_space_end_passwort
+ |
+ PASS |
+
+
+
+ test_login_user_with_space_passwort_end_space
+ |
+ PASS |
+
+
+ test_ebook_convert.test_ebook_convert_Python27 |
+ 11 |
+ 10 |
+ 1 |
+ 0 |
+ 0 |
+
+ Detail
+ |
+
+
+
+ test_SSL_smtp_setup_error
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_STARTTLS_smtp_setup_error
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_convert_deactivate
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_convert_email
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_convert_failed_and_email
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_convert_only
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_convert_parameter
+ |
+ PASS |
+
+
+
+ test_convert_wrong_excecutable
+ |
+ PASS |
+
+
+
+ test_email_failed
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_email_only
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_kindle_send_not_configured
+ |
+ PASS |
+
+
+ test_ebook_convert.test_ebook_convert_Python36 |
+ 11 |
+ 10 |
+ 1 |
+ 0 |
+ 0 |
+
+ Detail
+ |
+
+
+
+ test_SSL_smtp_setup_error
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_STARTTLS_smtp_setup_error
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_convert_deactivate
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_convert_email
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_convert_failed_and_email
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_convert_only
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_convert_parameter
+ |
+ PASS |
+
+
+
+ test_convert_wrong_excecutable
+ |
+ PASS |
+
+
+
+ test_email_failed
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_email_only
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_kindle_send_not_configured
+ |
+ PASS |
+
+
+ test_visiblilitys.calibre_web_visibilitys_Python27 |
+ 17 |
+ 17 |
+ 0 |
+ 0 |
+ 0 |
+
+ Detail
+ |
+
+
+
+ test_about
+ |
+ PASS |
+
+
+
+ test_admin_SMTP_Settings
+ |
+ PASS |
+
+
+
+ test_admin_add_user
+ |
+ PASS |
+
+
+
+ test_admin_change_password
+ |
+ PASS |
+
+
+
+ test_admin_change_visibility_authors
+ |
+ PASS |
+
+
+
+ test_admin_change_visibility_category
+ |
+ PASS |
+
+
+
+ test_admin_change_visibility_hot
+ |
+ PASS |
+
+
+
+ test_admin_change_visibility_language
+ |
+ PASS |
+
+
+
+ test_admin_change_visibility_publisher
+ |
+ PASS |
+
+
+
+ test_admin_change_visibility_rated
+ |
+ PASS |
+
+
+
+ test_admin_change_visibility_read
+ |
+ PASS |
+
+
+
+ test_admin_change_visibility_series
+ |
+ PASS |
+
+
+
+ test_admin_change_visibility_sorted
+ |
+ PASS |
+
+
+
+ test_checked_logged_in
+ |
+ PASS |
+
+
+
+ test_random_books_available
+ |
+ PASS |
+
+
+
+ test_user_email_available
+ |
+ PASS |
+
+
+
+ test_user_visibility_sidebar
+ |
+ PASS |
+
+
+ test_visiblilitys.calibre_web_visibilitys_Python36 |
+ 17 |
+ 17 |
+ 0 |
+ 0 |
+ 0 |
+
+ Detail
+ |
+
+
+
+ test_about
+ |
+ PASS |
+
+
+
+ test_admin_SMTP_Settings
+ |
+ PASS |
+
+
+
+ test_admin_add_user
+ |
+ PASS |
+
+
+
+ test_admin_change_password
+ |
+ PASS |
+
+
+
+ test_admin_change_visibility_authors
+ |
+ PASS |
+
+
+
+ test_admin_change_visibility_category
+ |
+ PASS |
+
+
+
+ test_admin_change_visibility_hot
+ |
+ PASS |
+
+
+
+ test_admin_change_visibility_language
+ |
+ PASS |
+
+
+
+ test_admin_change_visibility_publisher
+ |
+ PASS |
+
+
+
+ test_admin_change_visibility_rated
+ |
+ PASS |
+
+
+
+ test_admin_change_visibility_read
+ |
+ PASS |
+
+
+
+ test_admin_change_visibility_series
+ |
+ PASS |
+
+
+
+ test_admin_change_visibility_sorted
+ |
+ PASS |
+
+
+
+ test_checked_logged_in
+ |
+ PASS |
+
+
+
+ test_random_books_available
+ |
+ PASS |
+
+
+
+ test_user_email_available
+ |
+ PASS |
+
+
+
+ test_user_visibility_sidebar
+ |
+ PASS |
+
+
+ test_edit_books.test_edit_books_Python27 |
+ 23 |
+ 11 |
+ 1 |
+ 0 |
+ 11 |
+
+ Detail
+ |
+
+
+
+ test_database_errors
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_delete_book
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_delete_format
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_edit_author
+ |
+ PASS |
+
+
+
+ test_edit_category
+ |
+ PASS |
+
+
+
+ test_edit_comments
+ |
+ PASS |
+
+
+
+ test_edit_custom_bool
+ |
+ PASS |
+
+
+
+ test_edit_custom_rating
+ |
+ PASS |
+
+
+
+ test_edit_custom_single_select
+ |
+ PASS |
+
+
+
+ test_edit_custom_text
+ |
+ PASS |
+
+
+
+ test_edit_language
+ |
+ PASS |
+
+
+
+ test_edit_publisher
+ |
+ PASS |
+
+
+
+ test_edit_publishing_date
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_edit_rating
+ |
+ PASS |
+
+
+
+ test_edit_series
+ |
+ PASS |
+
+
+
+ test_edit_title
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_rename_uppercase_lowercase
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_typeahead_author
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_typeahead_language
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_typeahead_publisher
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_typeahead_series
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_typeahead_tag
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_upload_cover_hdd
+ |
+
+
+
+
+
+
+
+ |
+
+
+ test_edit_books.test_edit_books_Python36 |
+ 23 |
+ 11 |
+ 1 |
+ 0 |
+ 11 |
+
+ Detail
+ |
+
+
+
+ test_database_errors
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_delete_book
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_delete_format
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_edit_author
+ |
+ PASS |
+
+
+
+ test_edit_category
+ |
+ PASS |
+
+
+
+ test_edit_comments
+ |
+ PASS |
+
+
+
+ test_edit_custom_bool
+ |
+ PASS |
+
+
+
+ test_edit_custom_rating
+ |
+ PASS |
+
+
+
+ test_edit_custom_single_select
+ |
+ PASS |
+
+
+
+ test_edit_custom_text
+ |
+ PASS |
+
+
+
+ test_edit_language
+ |
+ PASS |
+
+
+
+ test_edit_publisher
+ |
+ PASS |
+
+
+
+ test_edit_publishing_date
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_edit_rating
+ |
+ PASS |
+
+
+
+ test_edit_series
+ |
+ PASS |
+
+
+
+ test_edit_title
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_rename_uppercase_lowercase
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_typeahead_author
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_typeahead_language
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_typeahead_publisher
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_typeahead_series
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_typeahead_tag
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_upload_cover_hdd
+ |
+
+
+
+
+
+
+
+ |
+
+
+ test_email_STARTTLS.test_STARTTLS_Python27 |
+ 2 |
+ 2 |
+ 0 |
+ 0 |
+ 0 |
+
+ Detail
+ |
+
+
+
+ test_STARTTLS
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_STARTTLS_SSL_setup_error
+ |
+
+
+
+
+
+
+
+ |
+
+
+ test_email_STARTTLS.test_STARTTLS_Python36 |
+ 2 |
+ 2 |
+ 0 |
+ 0 |
+ 0 |
+
+ Detail
+ |
+
+
+
+ test_STARTTLS
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+ test_STARTTLS_SSL_setup_error
+ |
+
+
+
+
+
+
+
+ |
+
+
+ test_helper.calibre_helper |
+ 13 |
+ 13 |
+ 0 |
+ 0 |
+ 0 |
+
+ Detail
+ |
+
+
+
+ test_author_sort
+ |
+ PASS |
+
+
+
+ test_author_sort_comma
+ |
+ PASS |
+
+
+
+ test_author_sort_junior
+ |
+ PASS |
+
+
+
+ test_author_sort_oneword
+ |
+ PASS |
+
+
+
+ test_author_sort_roman
+ |
+ PASS |
+
+
+
+ test_check_Limit_Length
+ |
+ PASS |
+
+
+
+ test_check_char_replacement
+ |
+ PASS |
+
+
+
+ test_check_chinese_Characters
+ |
+ PASS |
+
+
+
+ test_check_degEUR_replacement
+ |
+ PASS |
+
+
test_check_doubleS
|
PASS |
-
+
test_check_finish_Dot
|
PASS |
-
+
test_check_high23
|
PASS |
-
+
test_check_umlauts
|
@@ -244,17 +4030,17 @@ AssertionError: 'Zhi Yi' != u'Zhi Yik'
Total |
- 13 |
- 10 |
- 1 |
- 1 |
- 1 |
+ 253 |
+ 165 |
+ 9 |
+ 2 |
+ 77 |
|