Turn CWA off unless CWA_ENABLED is true
CWA_ENABLED now defaults to false. If a CWA variable is set while CWA is off, the start log has a warning that names it. On the Settings page, the alert about INGEST_DIR moves to Book Downloads and shows with CWA on or off. The Uploads to CWA card moves below Book Downloads.
This commit is contained in:
@@ -40,7 +40,7 @@ def library(isolated, monkeypatch):
|
||||
monkeypatch.setattr(orchestrator, "_find_book", Mock(return_value=None))
|
||||
|
||||
|
||||
@pytest.mark.parametrize("enabled", [False, True])
|
||||
@pytest.mark.parametrize("enabled", [None, False, True])
|
||||
def test_app_starts_without_any_cwa_configuration(tmp_path, enabled):
|
||||
env = {
|
||||
**os.environ,
|
||||
@@ -51,7 +51,14 @@ def test_app_starts_without_any_cwa_configuration(tmp_path, enabled):
|
||||
"URL_BASE": "",
|
||||
"CWA_ENABLED": str(enabled),
|
||||
}
|
||||
for name in ("INGEST_DIR", "CWA_URL", "CWA_DB_PATH", "CALIBRE_DB_PATH"):
|
||||
# CWA is off unless CWA_ENABLED turns it on.
|
||||
for name in (
|
||||
"INGEST_DIR",
|
||||
"CWA_URL",
|
||||
"CWA_DB_PATH",
|
||||
"CALIBRE_DB_PATH",
|
||||
*(["CWA_ENABLED"] if enabled is None else []),
|
||||
):
|
||||
env.pop(name, None)
|
||||
result = subprocess.run(
|
||||
[
|
||||
@@ -60,6 +67,7 @@ def test_app_starts_without_any_cwa_configuration(tmp_path, enabled):
|
||||
"from bindery.web import app; "
|
||||
"client = app.test_client(); "
|
||||
"assert client.get('/api/health').status_code == 200; "
|
||||
f"assert client.get('/api/config').json['cwa_enabled'] is {bool(enabled)}; "
|
||||
"settings = client.get('/api/settings').json; "
|
||||
"assert settings['pause_uploads'] is True; "
|
||||
"assert settings['ingest_available'] is False; "
|
||||
@@ -73,9 +81,9 @@ def test_app_starts_without_any_cwa_configuration(tmp_path, enabled):
|
||||
)
|
||||
assert result.returncode == 0, result.stderr
|
||||
assert "ERROR" not in result.stderr
|
||||
# Bindery names what is missing, until the user says that there is no CWA.
|
||||
for text in ("WARNING", "INGEST_DIR is not set", "CWA_URL and CALIBRE_DB_PATH are not set", "CWA_ENABLED=false"):
|
||||
assert (text in result.stderr) is enabled
|
||||
# Bindery names what is missing only for a user who turned CWA on.
|
||||
for text in ("WARNING", "INGEST_DIR is not set", "CWA_URL and CALIBRE_DB_PATH are not set", "remove CWA_ENABLED"):
|
||||
assert (text in result.stderr) is bool(enabled)
|
||||
if not enabled:
|
||||
assert "CWA" not in result.stderr and "INGEST" not in result.stderr
|
||||
|
||||
@@ -134,7 +142,7 @@ def test_cwa_off_shows_in_the_config_and_refuses_cwa_logins(client, monkeypatch,
|
||||
monkeypatch.setattr(config, "CWA_DB_PATH", "/cwa/app.db")
|
||||
response = client.get("/api/stories")
|
||||
assert response.status_code == 503
|
||||
assert response.json["error"].startswith("AUTH_METHOD=cwa needs CWA, but CWA_ENABLED is false.")
|
||||
assert response.json["error"].startswith("AUTH_METHOD=cwa needs CWA_ENABLED=true.")
|
||||
|
||||
|
||||
def test_without_cwa_the_download_template_uses_the_story_id(client, cwa_off):
|
||||
|
||||
Reference in New Issue
Block a user