Import AITURK IDE 1.0.0-beta.1 from Hermes 63279301; preserve MIT license
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
"""Post-update reporting for unresolved SQLite WAL-reset risk."""
|
||||
|
||||
from pathlib import Path
|
||||
from types import SimpleNamespace
|
||||
|
||||
from hermes_cli import update_cmd
|
||||
|
||||
|
||||
def test_runtime_status_probes_running_venv_outside_checkout(tmp_path, monkeypatch):
|
||||
running_python = tmp_path / "venv312" / "bin" / "python"
|
||||
observed = []
|
||||
vulnerable = SimpleNamespace(wal_reset_vulnerable=True)
|
||||
monkeypatch.setattr("hermes_constants.project_venv_dir", lambda _root: None)
|
||||
monkeypatch.setattr(update_cmd.sys, "executable", str(running_python))
|
||||
monkeypatch.setattr(
|
||||
"hermes_cli.sqlite_runtime.probe_sqlite_runtime",
|
||||
lambda python: observed.append(Path(python)) or vulnerable,
|
||||
)
|
||||
|
||||
safe, info = update_cmd._post_update_sqlite_runtime_status()
|
||||
|
||||
assert observed == [running_python]
|
||||
assert safe is False
|
||||
assert info is vulnerable
|
||||
|
||||
|
||||
def test_summary_withholds_success_when_sqlite_remediation_failed(capsys, monkeypatch):
|
||||
monkeypatch.setattr(
|
||||
update_cmd,
|
||||
"_post_update_sqlite_runtime_status",
|
||||
lambda: (False, SimpleNamespace(sqlite_version_string="3.46.1")),
|
||||
raising=False,
|
||||
)
|
||||
monkeypatch.setattr(
|
||||
update_cmd,
|
||||
"_update_complete_message",
|
||||
lambda _version: "✓ Update complete! (v0.20.5)",
|
||||
)
|
||||
|
||||
complete = update_cmd._print_update_summary(
|
||||
node_failures=[],
|
||||
desktop_build_ok=True,
|
||||
pre_update_version="0.20.4",
|
||||
)
|
||||
|
||||
out = capsys.readouterr().out
|
||||
assert complete is False
|
||||
assert "Update complete" not in out
|
||||
assert "SQLite 3.46.1" in out
|
||||
assert "WAL-reset" in out
|
||||
assert "uv-managed Python" in out
|
||||
assert "hermes doctor" in out
|
||||
|
||||
|
||||
def test_current_checkout_completion_is_verified_before_success(capsys, monkeypatch):
|
||||
monkeypatch.setattr(
|
||||
update_cmd,
|
||||
"_post_update_sqlite_runtime_status",
|
||||
lambda: (False, SimpleNamespace(sqlite_version_string="3.46.1")),
|
||||
)
|
||||
|
||||
complete = update_cmd._print_verified_update_completion("✓ Already up to date!")
|
||||
|
||||
out = capsys.readouterr().out
|
||||
assert complete is False
|
||||
assert "Already up to date" not in out
|
||||
assert "SQLite 3.46.1" in out
|
||||
|
||||
|
||||
def test_current_checkout_repair_returns_verified_completion_result(monkeypatch):
|
||||
monkeypatch.setattr(update_cmd, "_update_node_dependencies", lambda: [])
|
||||
monkeypatch.setattr(update_cmd._m(), "_build_web_ui", lambda _path: None)
|
||||
monkeypatch.setattr(
|
||||
update_cmd,
|
||||
"_rebuild_desktop_after_update",
|
||||
lambda _dir, **_kwargs: True,
|
||||
)
|
||||
|
||||
complete = update_cmd._repair_node_deps_on_current_checkout(
|
||||
lambda _message: False
|
||||
)
|
||||
|
||||
assert complete is False
|
||||
Reference in New Issue
Block a user