@@ -0,0 +1,44 @@
|
||||
# retoor <retoor@molodetz.nl>
|
||||
|
||||
import argparse
|
||||
|
||||
from devplacepy.cli import nodes as cli
|
||||
from devplacepy.database import get_table
|
||||
from devplacepy.database import nodes as store
|
||||
from devplacepy.utils import generate_uid
|
||||
|
||||
|
||||
def parser():
|
||||
root = argparse.ArgumentParser()
|
||||
cli.register_nodes(root.add_subparsers(dest="command"))
|
||||
return root
|
||||
|
||||
|
||||
def device(local_db):
|
||||
row, _ = store.create_device(generate_uid(), "cli", "native")
|
||||
return row["uid"]
|
||||
|
||||
|
||||
def test_suspend_and_unsuspend(local_db, capsys):
|
||||
uid = device(local_db)
|
||||
args = parser().parse_args(["nodes", "suspend", uid, "--minutes", "5"])
|
||||
args.func(args)
|
||||
assert store.effective_status(get_table("node_devices").find_one(uid=uid)) == "suspended"
|
||||
args = parser().parse_args(["nodes", "unsuspend", uid])
|
||||
args.func(args)
|
||||
assert store.effective_status(get_table("node_devices").find_one(uid=uid)) == "active"
|
||||
|
||||
|
||||
def test_clear_is_a_dry_run_without_force(local_db, capsys):
|
||||
get_table("node_events").insert({"uid": generate_uid(), "kind": "x", "detail": "", "created_at": "2026-01-01T00:00:00+00:00"})
|
||||
before = store.clear_ephemeral(dry_run=True)["node_events"]
|
||||
args = parser().parse_args(["nodes", "clear"])
|
||||
args.func(args)
|
||||
assert "pass --force" in capsys.readouterr().out
|
||||
assert store.clear_ephemeral(dry_run=True)["node_events"] == before
|
||||
|
||||
|
||||
def test_prune_dry_run_reports_counts(local_db, capsys):
|
||||
args = parser().parse_args(["nodes", "prune", "--dry-run"])
|
||||
args.func(args)
|
||||
assert "would remove" in capsys.readouterr().out
|
||||
Reference in New Issue
Block a user