From e3e137ca5018c96db5900ff0b56babb70eb96ec5 Mon Sep 17 00:00:00 2001 From: ElQuimm <50202052+ElQuimm@users.noreply.github.com> Date: Thu, 22 Oct 2020 16:31:25 +0200 Subject: [PATCH 01/14] updated italian message.po --- cps/translations/it/LC_MESSAGES/messages.po | 74 ++++++++++----------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/cps/translations/it/LC_MESSAGES/messages.po b/cps/translations/it/LC_MESSAGES/messages.po index 0e10d6c4..5d03b849 100644 --- a/cps/translations/it/LC_MESSAGES/messages.po +++ b/cps/translations/it/LC_MESSAGES/messages.po @@ -351,7 +351,7 @@ msgstr "Ho aggiunto il formato %(ext)s al libro %(book)s" #: cps/editbooks.py:673 msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier" -msgstr "" +msgstr "Gli identificatori non tengono conto delle lettere maiuscole o minuscole, sovrascrivo l'identificatore precedente" #: cps/editbooks.py:710 msgid "Metadata successfully updated" @@ -733,11 +733,11 @@ msgstr "Mostra l'opzione per la selezione dei libri più popolari" #: cps/ub.py:74 msgid "Downloaded Books" -msgstr "" +msgstr "Libri scaricati" #: cps/ub.py:76 msgid "Show Downloaded Books" -msgstr "" +msgstr "Mostra l'opzione per la visualizzazione dei libri scaricati" #: cps/templates/index.xml:24 cps/ub.py:79 cps/web.py:639 msgid "Top Rated Books" @@ -844,11 +844,11 @@ msgstr "Mostra l'opzione per la selezione dei libri archiviati" #: cps/ub.py:120 msgid "Books List" -msgstr "" +msgstr "Elenco libri" #: cps/ub.py:122 msgid "Show Books List" -msgstr "" +msgstr "Mostra l'opzione per visualizzare i libri sottoforma di elenco" #: cps/updater.py:295 cps/updater.py:306 cps/updater.py:407 cps/updater.py:421 msgid "Unexpected data while reading update information" @@ -915,7 +915,7 @@ msgstr "I libri più richiesti" #: cps/web.py:748 #, python-format msgid "Downloaded books by %(user)s" -msgstr "" +msgstr "Libri scaricati da %(user)s" #: cps/web.py:762 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" @@ -973,7 +973,7 @@ msgstr "Cerca" #: cps/web.py:998 msgid "Books list" -msgstr "" +msgstr "Elenco dei libri" #: cps/web.py:1136 msgid "Ratings list" @@ -1109,11 +1109,11 @@ msgstr "Non ho trovato il convertitore %(tool)s di libri di Calibre" #: cps/tasks/convert.py:127 #, python-format msgid "%(format)s format not found on disk" -msgstr "" +msgstr "Non ho trovato il formato %(format)s nel disco" #: cps/tasks/convert.py:130 msgid "Ebook converter failed with unknown error" -msgstr "" +msgstr "La conversione del libro è terminata con un errore sconosciuto" #: cps/tasks/convert.py:140 #, python-format @@ -1123,7 +1123,7 @@ msgstr "Si è verificato un errore con il convertitore Kepubify: %(error)s" #: cps/tasks/convert.py:164 #, python-format msgid "Converted file not found or more than one file in folder %(folder)s" -msgstr "Non ho trovato il file convertito o più di un file nella cartella %(folder)s" +msgstr "Non ho trovato il file convertito o ci sono più di un file nella cartella %(folder)s" #: cps/tasks/convert.py:187 #, python-format @@ -1133,7 +1133,7 @@ msgstr "Errore nel convertitore: %(error)s" #: cps/tasks/convert.py:212 #, python-format msgid "Calibre failed with error: %(error)s" -msgstr "" +msgstr "Si è verificato un errore con Calibre: %(error)s" #: cps/templates/admin.html:9 msgid "Users" @@ -1537,27 +1537,27 @@ msgstr "Nessun risultato! Prova con un altro criterio di ricerca." #: cps/templates/book_table.html:10 cps/templates/book_table.html:52 msgid "This Field is Required" -msgstr "" +msgstr "Questo campo è obbligatorio" #: cps/templates/book_table.html:23 msgid "Merge selected books" -msgstr "" +msgstr "Unisci i libri selezionati" #: cps/templates/book_table.html:24 msgid "Remove Selections" -msgstr "" +msgstr "Rimuovi le selezioni" #: cps/templates/book_table.html:30 msgid "Update Title Sort automatically" -msgstr "" +msgstr "Aggiorna l'ordinamento dei titoli automaticamente" #: cps/templates/book_table.html:34 msgid "Update Author Sort automatically" -msgstr "" +msgstr "Aggiorna l'ordinamento degli autori automaticamente" #: cps/templates/book_table.html:46 msgid "Enter Title" -msgstr "" +msgstr "Indica il titolo" #: cps/templates/book_table.html:46 cps/templates/config_view_edit.html:23 #: cps/templates/shelf_edit.html:7 @@ -1566,51 +1566,51 @@ msgstr "Titolo" #: cps/templates/book_table.html:47 msgid "Enter Title Sort" -msgstr "" +msgstr "Indica l'ordinamento del titolo" #: cps/templates/book_table.html:47 msgid "Title Sort" -msgstr "" +msgstr "Ordinamento del titolo" #: cps/templates/book_table.html:48 msgid "Enter Author Sort" -msgstr "" +msgstr "Indica l'ordinamento dell'autore" #: cps/templates/book_table.html:48 msgid "Author Sort" -msgstr "" +msgstr "Ordinamento dell'autore" #: cps/templates/book_table.html:49 msgid "Enter Authors" -msgstr "" +msgstr "Indica gli autori" #: cps/templates/book_table.html:50 msgid "Enter Categories" -msgstr "" +msgstr "Indica le categorie" #: cps/templates/book_table.html:51 msgid "Enter Series" -msgstr "" +msgstr "Indica le serie" #: cps/templates/book_table.html:52 msgid "Enter title" -msgstr "" +msgstr "Indica il titolo" #: cps/templates/book_table.html:52 msgid "Series Index" -msgstr "" +msgstr "Indice delle serie" #: cps/templates/book_table.html:53 msgid "Enter Languages" -msgstr "" +msgstr "Indica le lingue" #: cps/templates/book_table.html:54 msgid "Publishing Date" -msgstr "" +msgstr "Data di pubblicazione" #: cps/templates/book_table.html:55 msgid "Enter Publishers" -msgstr "" +msgstr "Indica gli editori" #: cps/templates/book_table.html:70 cps/templates/modal_dialogs.html:46 msgid "Are you really sure?" @@ -1618,15 +1618,15 @@ msgstr "Sei davvero sicuro?" #: cps/templates/book_table.html:74 msgid "Books with Title will be merged from:" -msgstr "" +msgstr "I libri con il titolo vengono uniti da:" #: cps/templates/book_table.html:78 msgid "Into Book with Title:" -msgstr "" +msgstr "Nel libro con il titolo:" #: cps/templates/book_table.html:83 msgid "Merge" -msgstr "" +msgstr "Unisci" #: cps/templates/config_edit.html:12 msgid "Library Configuration" @@ -1638,7 +1638,7 @@ msgstr "Posizione del database di Calibre" #: cps/templates/config_edit.html:28 msgid "Use Google Drive?" -msgstr "Utilizzo Google Drive?" +msgstr "Utilizza Google Drive" #: cps/templates/config_edit.html:34 msgid "Google Drive config problem" @@ -1718,7 +1718,7 @@ msgstr "Ulteriori opzioni" #: cps/templates/config_edit.html:165 msgid "Enable Uploads" -msgstr "Abilita il caricamento" +msgstr "Abilita l'upload /il caricamento" #: cps/templates/config_edit.html:169 msgid "Allowed Upload Fileformats" @@ -2307,7 +2307,7 @@ msgstr "Seleziona i valori personali consentiti/negati per le colonne dell'utent #: cps/templates/modal_dialogs.html:15 msgid "Enter Tag" -msgstr "Digita categorie" +msgstr "Indica le categorie" #: cps/templates/modal_dialogs.html:24 msgid "Add View Restriction" @@ -2315,7 +2315,7 @@ msgstr "Aggiungi restrizioni di visualizzazione" #: cps/templates/modal_dialogs.html:50 msgid "This book format will be permanently erased from database" -msgstr "" +msgstr "Questo formato di libro viene rimosso definitivamente dal database" #: cps/templates/modal_dialogs.html:51 msgid "This book will be permanently erased from database" @@ -2475,7 +2475,7 @@ msgstr "Il link scadrà tra 10 minuti." #: cps/templates/search.html:5 msgid "No Results Found" -msgstr "Nessun risultato" +msgstr "Nessun risultato trovato" #: cps/templates/search.html:6 msgid "Search Term:" From 627c2adf080910dea6f01d45676cb06f134412fd Mon Sep 17 00:00:00 2001 From: vagra Date: Mon, 26 Oct 2020 22:56:58 +0800 Subject: [PATCH 02/14] SImple Chinese translation updated. --- .../zh_Hans_CN/LC_MESSAGES/messages.po | 64 +++++++++---------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po index 4bf9c39b..6ddc8e94 100644 --- a/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po +++ b/cps/translations/zh_Hans_CN/LC_MESSAGES/messages.po @@ -734,11 +734,11 @@ msgstr "显示热门书籍" #: cps/ub.py:74 msgid "Downloaded Books" -msgstr "" +msgstr "下载历史" #: cps/ub.py:76 msgid "Show Downloaded Books" -msgstr "" +msgstr "显示下载过的书籍" #: cps/templates/index.xml:24 cps/ub.py:79 cps/web.py:639 msgid "Top Rated Books" @@ -845,11 +845,11 @@ msgstr "显示归档书籍" #: cps/ub.py:120 msgid "Books List" -msgstr "" +msgstr "书籍列表" #: cps/ub.py:122 msgid "Show Books List" -msgstr "" +msgstr "显示书籍列表" #: cps/updater.py:295 cps/updater.py:306 cps/updater.py:407 cps/updater.py:421 msgid "Unexpected data while reading update information" @@ -916,7 +916,7 @@ msgstr "热门书籍(最多下载)" #: cps/web.py:748 #, python-format msgid "Downloaded books by %(user)s" -msgstr "" +msgstr "%(user)s 下载过的书籍" #: cps/web.py:762 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" @@ -974,7 +974,7 @@ msgstr "搜索" #: cps/web.py:998 msgid "Books list" -msgstr "" +msgstr "书籍列表" #: cps/web.py:1136 msgid "Ratings list" @@ -1110,11 +1110,11 @@ msgstr "Calibre 电子书转换器%(tool)s没有发现" #: cps/tasks/convert.py:127 #, python-format msgid "%(format)s format not found on disk" -msgstr "" +msgstr "硬盘上找不到 %(format)s 格式" #: cps/tasks/convert.py:130 msgid "Ebook converter failed with unknown error" -msgstr "" +msgstr "发生未知错误,书籍转换失败" #: cps/tasks/convert.py:140 #, python-format @@ -1134,7 +1134,7 @@ msgstr "电子书转换器失败: %(error)s" #: cps/tasks/convert.py:212 #, python-format msgid "Calibre failed with error: %(error)s" -msgstr "" +msgstr "Calibre 运行失败,错误信息:%(error)s" #: cps/templates/admin.html:9 msgid "Users" @@ -1538,80 +1538,80 @@ msgstr "无搜索结果!请尝试另一个关键字。" #: cps/templates/book_table.html:10 cps/templates/book_table.html:52 msgid "This Field is Required" -msgstr "" +msgstr "此栏必须填写" #: cps/templates/book_table.html:23 msgid "Merge selected books" -msgstr "" +msgstr "合并选中的书籍" #: cps/templates/book_table.html:24 msgid "Remove Selections" -msgstr "" +msgstr "删除选中的书籍" #: cps/templates/book_table.html:30 msgid "Update Title Sort automatically" -msgstr "" +msgstr "自动更新书名排序" #: cps/templates/book_table.html:34 msgid "Update Author Sort automatically" -msgstr "" +msgstr "自动更新作者排序" #: cps/templates/book_table.html:46 msgid "Enter Title" -msgstr "" +msgstr "输入书名" #: cps/templates/book_table.html:46 cps/templates/config_view_edit.html:23 #: cps/templates/shelf_edit.html:7 msgid "Title" -msgstr "名称" +msgstr "书名" #: cps/templates/book_table.html:47 msgid "Enter Title Sort" -msgstr "" +msgstr "输入书名排序" #: cps/templates/book_table.html:47 msgid "Title Sort" -msgstr "" +msgstr "书名排序" #: cps/templates/book_table.html:48 msgid "Enter Author Sort" -msgstr "" +msgstr "输入作者排序" #: cps/templates/book_table.html:48 msgid "Author Sort" -msgstr "" +msgstr "作者排序" #: cps/templates/book_table.html:49 msgid "Enter Authors" -msgstr "" +msgstr "输入作者" #: cps/templates/book_table.html:50 msgid "Enter Categories" -msgstr "" +msgstr "输入分类" #: cps/templates/book_table.html:51 msgid "Enter Series" -msgstr "" +msgstr "输入丛书" #: cps/templates/book_table.html:52 msgid "Enter title" -msgstr "" +msgstr "输入书名" #: cps/templates/book_table.html:52 msgid "Series Index" -msgstr "" +msgstr "丛书编号" #: cps/templates/book_table.html:53 msgid "Enter Languages" -msgstr "" +msgstr "输入语言" #: cps/templates/book_table.html:54 msgid "Publishing Date" -msgstr "" +msgstr "出版日期" #: cps/templates/book_table.html:55 msgid "Enter Publishers" -msgstr "" +msgstr "输入出版社" #: cps/templates/book_table.html:70 cps/templates/modal_dialogs.html:46 msgid "Are you really sure?" @@ -1619,15 +1619,15 @@ msgstr "您真的确认?" #: cps/templates/book_table.html:74 msgid "Books with Title will be merged from:" -msgstr "" +msgstr "这本书籍将被合并:" #: cps/templates/book_table.html:78 msgid "Into Book with Title:" -msgstr "" +msgstr "合并到这本书籍:" #: cps/templates/book_table.html:83 msgid "Merge" -msgstr "" +msgstr "合并" #: cps/templates/config_edit.html:12 msgid "Library Configuration" @@ -2316,7 +2316,7 @@ msgstr "添加显示或隐藏书籍的值" #: cps/templates/modal_dialogs.html:50 msgid "This book format will be permanently erased from database" -msgstr "" +msgstr "此书籍格式将从数据库中永久删除" #: cps/templates/modal_dialogs.html:51 msgid "This book will be permanently erased from database" From 19b2a334e4b3f473cef9cc44b53b4c0c833ea020 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Tue, 27 Oct 2020 11:06:43 +0100 Subject: [PATCH 03/14] Remove unused imports --- cps/config_sql.py | 1 - cps/converter.py | 1 - cps/editbooks.py | 1 - cps/helper.py | 2 +- cps/jinjia.py | 1 - cps/kobo.py | 2 +- cps/tasks/convert.py | 2 +- cps/web.py | 2 +- 8 files changed, 4 insertions(+), 8 deletions(-) diff --git a/cps/config_sql.py b/cps/config_sql.py index d5c7b213..9dcb4528 100644 --- a/cps/config_sql.py +++ b/cps/config_sql.py @@ -19,7 +19,6 @@ from __future__ import division, print_function, unicode_literals import os -import json import sys from sqlalchemy import exc, Column, String, Integer, SmallInteger, Boolean, BLOB, JSON diff --git a/cps/converter.py b/cps/converter.py index 01a6fbc7..2ff73666 100644 --- a/cps/converter.py +++ b/cps/converter.py @@ -19,7 +19,6 @@ from __future__ import division, print_function, unicode_literals import os import re -import sys from flask_babel import gettext as _ from . import config, logger diff --git a/cps/editbooks.py b/cps/editbooks.py index 7f7764e5..323b0fb9 100644 --- a/cps/editbooks.py +++ b/cps/editbooks.py @@ -27,7 +27,6 @@ import json from shutil import copyfile from uuid import uuid4 -from babel import Locale as LC from flask import Blueprint, request, flash, redirect, url_for, abort, Markup, Response from flask_babel import gettext as _ from flask_login import current_user, login_required diff --git a/cps/helper.py b/cps/helper.py index 82d0b232..c0972687 100644 --- a/cps/helper.py +++ b/cps/helper.py @@ -35,7 +35,7 @@ from babel.units import format_unit from flask import send_from_directory, make_response, redirect, abort, url_for from flask_babel import gettext as _ from flask_login import current_user -from sqlalchemy.sql.expression import true, false, and_, text, func +from sqlalchemy.sql.expression import true, false, and_, text from werkzeug.datastructures import Headers from werkzeug.security import generate_password_hash from . import calibre_db diff --git a/cps/jinjia.py b/cps/jinjia.py index abe1ba15..ebb53a30 100644 --- a/cps/jinjia.py +++ b/cps/jinjia.py @@ -25,7 +25,6 @@ from __future__ import division, print_function, unicode_literals import datetime import mimetypes -import re from babel.dates import format_date from flask import Blueprint, request, url_for diff --git a/cps/kobo.py b/cps/kobo.py index a6dfc3f6..7a05ea5d 100644 --- a/cps/kobo.py +++ b/cps/kobo.py @@ -39,7 +39,7 @@ from flask import ( redirect, abort ) -from flask_login import current_user, login_required +from flask_login import current_user from werkzeug.datastructures import Headers from sqlalchemy import func from sqlalchemy.sql.expression import and_, or_ diff --git a/cps/tasks/convert.py b/cps/tasks/convert.py index b60d4976..659c6e9c 100644 --- a/cps/tasks/convert.py +++ b/cps/tasks/convert.py @@ -8,7 +8,7 @@ from shutil import copyfile from sqlalchemy.exc import SQLAlchemyError -from cps.services.worker import CalibreTask, STAT_FINISH_SUCCESS +from cps.services.worker import CalibreTask from cps import calibre_db, db from cps import logger, config from cps.subproc_wrapper import process_open diff --git a/cps/web.py b/cps/web.py index aa1cac1a..45ae99ea 100644 --- a/cps/web.py +++ b/cps/web.py @@ -41,7 +41,7 @@ from flask_login import login_user, logout_user, login_required, current_user, c from sqlalchemy.exc import IntegrityError, InvalidRequestError, OperationalError from sqlalchemy.sql.expression import text, func, true, false, not_, and_, or_ from sqlalchemy.orm.attributes import flag_modified -from werkzeug.exceptions import default_exceptions, InternalServerError +from werkzeug.exceptions import default_exceptions from sqlalchemy.sql.functions import coalesce from .services.worker import WorkerThread From fa82745f64bbaaca71c913c151447407a72e6677 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Tue, 27 Oct 2020 19:26:04 +0100 Subject: [PATCH 04/14] Put import_ldap_users behind a login --- cps/web.py | 1 + 1 file changed, 1 insertion(+) diff --git a/cps/web.py b/cps/web.py index aa1cac1a..758a2313 100644 --- a/cps/web.py +++ b/cps/web.py @@ -307,6 +307,7 @@ def before_request(): @app.route('/import_ldap_users') +@login_required def import_ldap_users(): showtext = {} try: From d2617322c6b1214e261cf013102c41ed45885f41 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Tue, 27 Oct 2020 19:39:11 +0100 Subject: [PATCH 05/14] Negate a condition - removes two levels of indentation - makes it clear that if the wrong tokens are provided nothing will happen - remove a useless nested function --- cps/gdrive.py | 64 +++++++++++++++++++++++++-------------------------- 1 file changed, 31 insertions(+), 33 deletions(-) diff --git a/cps/gdrive.py b/cps/gdrive.py index 74a45061..584c90cf 100644 --- a/cps/gdrive.py +++ b/cps/gdrive.py @@ -123,38 +123,36 @@ def revoke_watch_gdrive(): @gdrive.route("/gdrive/watch/callback", methods=['GET', 'POST']) def on_received_watch_confirmation(): + if request.headers.get('X-Goog-Channel-Token') != gdrive_watch_callback_token \ + or request.headers.get('X-Goog-Resource-State') != 'change' \ + or not request.data: + return redirect(url_for('admin.configuration')) + log.debug('%r', request.headers) - if request.headers.get('X-Goog-Channel-Token') == gdrive_watch_callback_token \ - and request.headers.get('X-Goog-Resource-State') == 'change' \ - and request.data: - - data = request.data - - def updateMetaData(): - log.info('Change received from gdrive') - log.debug('%r', data) - try: - j = json.loads(data) - log.info('Getting change details') - response = gdriveutils.getChangeById(gdriveutils.Gdrive.Instance().drive, j['id']) - log.debug('%r', response) - if response: - if sys.version_info < (3, 0): - dbpath = os.path.join(config.config_calibre_dir, "metadata.db") - else: - dbpath = os.path.join(config.config_calibre_dir, "metadata.db").encode() - if not response['deleted'] and response['file']['title'] == 'metadata.db' \ - and response['file']['md5Checksum'] != hashlib.md5(dbpath): - tmpDir = tempfile.gettempdir() - log.info('Database file updated') - copyfile(dbpath, os.path.join(tmpDir, "metadata.db_" + str(current_milli_time()))) - log.info('Backing up existing and downloading updated metadata.db') - gdriveutils.downloadFile(None, "metadata.db", os.path.join(tmpDir, "tmp_metadata.db")) - log.info('Setting up new DB') - # prevent error on windows, as os.rename does on exisiting files - move(os.path.join(tmpDir, "tmp_metadata.db"), dbpath) - calibre_db.reconnect_db(config, ub.app_DB_path) - except Exception as e: - log.exception(e) - updateMetaData() + log.debug('%r', request.data) + log.info('Change received from gdrive') + + try: + j = json.loads(request.data) + log.info('Getting change details') + response = gdriveutils.getChangeById(gdriveutils.Gdrive.Instance().drive, j['id']) + log.debug('%r', response) + if response: + if sys.version_info < (3, 0): + dbpath = os.path.join(config.config_calibre_dir, "metadata.db") + else: + dbpath = os.path.join(config.config_calibre_dir, "metadata.db").encode() + if not response['deleted'] and response['file']['title'] == 'metadata.db' \ + and response['file']['md5Checksum'] != hashlib.md5(dbpath): + tmpDir = tempfile.gettempdir() + log.info('Database file updated') + copyfile(dbpath, os.path.join(tmpDir, "metadata.db_" + str(current_milli_time()))) + log.info('Backing up existing and downloading updated metadata.db') + gdriveutils.downloadFile(None, "metadata.db", os.path.join(tmpDir, "tmp_metadata.db")) + log.info('Setting up new DB') + # prevent error on windows, as os.rename does on exisiting files + move(os.path.join(tmpDir, "tmp_metadata.db"), dbpath) + calibre_db.reconnect_db(config, ub.app_DB_path) + except Exception as e: + log.exception(e) return '' From 72a2fc49f88d1ce11372c25a67905b4234fd79be Mon Sep 17 00:00:00 2001 From: Ozzie Isaacs Date: Wed, 28 Oct 2020 20:23:19 +0100 Subject: [PATCH 06/14] Update Windows testresults --- test/Calibre-Web TestSummary_Windows.html | 2119 +++++++-------------- 1 file changed, 636 insertions(+), 1483 deletions(-) diff --git a/test/Calibre-Web TestSummary_Windows.html b/test/Calibre-Web TestSummary_Windows.html index ca18b279..aa7931f2 100644 --- a/test/Calibre-Web TestSummary_Windows.html +++ b/test/Calibre-Web TestSummary_Windows.html @@ -37,20 +37,20 @@
-

Start Time: 2020-10-13 18:18:13

+

Start Time: 2020-10-27 20:21:32

-

Stop Time: 2020-10-13 20:20:18

+

Stop Time: 2020-10-27 22:48:11

-

Duration: 1h 31 min

+

Duration: 1h 55 min

@@ -234,118 +234,82 @@ - - _ErrorHolder - 3 - 0 + + TestCli + 7 + 6 0 - 3 0 + 1 - Detail + Detail - + -
setUpClass (test_cli)
+
TestCli - test_already_started
- -
- ERROR -
- - - + PASS + + + + + + +
TestCli - test_bind_to_single_interface
+ PASS - + -
tearDownClass (test_ebook_convert_gdrive)
+
TestCli - test_cli_SSL_files
- -
- ERROR -
- - - + PASS + + + + + + +
TestCli - test_cli_different_folder
+ + PASS + + + + + + +
TestCli - test_cli_different_settings_database
+ PASS - + -
tearDownClass (test_goodreads)
+
TestCli - test_cli_gdrive_location
- ERROR + SKIP
-