diff --git a/scripts/live/analista.py b/scripts/live/analista.py index 4ddbfd7..2fcbe0c 100644 --- a/scripts/live/analista.py +++ b/scripts/live/analista.py @@ -73,7 +73,8 @@ def invia(con, g: date, voce: dict, analisi: str, stato: str, motivi: list[str], def scrivi(con, g: date, modello: str, secco: bool = False, verbose: bool = True, telegram: bool = True) -> str: voce = J.costruisci(con, g) - J.salva(con, voce) # le sezioni misurate prima, cosi' il modello le legge + if not secco: # --secco: stampa e NON salva (#34) — niente scrittura + J.salva(con, voce) # le sezioni misurate prima, cosi' il modello le legge pagina = J.rendi_markdown(con, voce) st = storico(con, g) prompt = A.costruisci_prompt(pagina, st) diff --git a/tests/test_analista.py b/tests/test_analista.py index be6760d..d24eec5 100644 --- a/tests/test_analista.py +++ b/tests/test_analista.py @@ -210,6 +210,21 @@ def test_l_agente_non_tocca_la_nota(db, monkeypatch, tmp_path): assert r["analisi"].startswith("Analisi valida") and r["analisi_stato"] == "ok" +def test_secco_stampa_e_non_salva(db, monkeypatch, tmp_path, capsys): + """#34: prima del fix `J.salva()` veniva chiamato comunque, prima del controllo su + `secco` — un giro "a secco" scriveva lo stesso le sezioni misurate nel DB.""" + import analista as CLI + monkeypatch.setattr(A, "interroga", lambda *a, **k: ("Analisi che non deve finire nel DB.", None)) + monkeypatch.setattr(J, "JOURNAL_DIR", tmp_path) + g = date(2026, 8, 21) + assert db.execute("SELECT COUNT(*) c FROM journal").fetchone()["c"] == 0 # DB vuoto in partenza + stato = CLI.scrivi(db, g, modello="finto", secco=True, verbose=False, telegram=False) + assert stato == "ok" + capsys.readouterr() # non e' l'oggetto del test + assert db.execute("SELECT COUNT(*) c FROM journal").fetchone()["c"] == 0 # DB ANCORA vuoto + assert not (tmp_path / f"{g}.md").exists() # scrivi_file non chiamato + + def test_se_il_modello_non_risponde_l_analisi_di_IERI_non_resta_in_pagina(db, monkeypatch, tmp_path): """Il guasto peggiore: una pagina che mostra l'analisi del giorno prima come se fosse di oggi.""" import analista as CLI