Import AITURK IDE 1.0.0-beta.1 from Hermes 63279301; preserve MIT license
This commit is contained in:
@@ -0,0 +1,109 @@
|
||||
"""Tests for /compress --preview/--dry-run/--aggressive flags and the
|
||||
/compact alias (PR #3243 salvage).
|
||||
|
||||
Covers the pure helpers in ``hermes_cli.partial_compress`` plus alias
|
||||
resolution in the command registry. The CLI and gateway surfaces both
|
||||
route through these helpers, so the flag semantics are pinned here once.
|
||||
"""
|
||||
|
||||
from hermes_cli.commands import COMMANDS, resolve_command
|
||||
from hermes_cli.partial_compress import (
|
||||
DEFAULT_KEEP_LAST,
|
||||
extract_compress_flags,
|
||||
parse_partial_compress_args,
|
||||
summarize_compress_preview,
|
||||
)
|
||||
|
||||
|
||||
def _history(n_pairs: int) -> list[dict[str, str]]:
|
||||
h: list[dict[str, str]] = []
|
||||
for i in range(n_pairs):
|
||||
h.append({"role": "user", "content": f"u{i}"})
|
||||
h.append({"role": "assistant", "content": f"a{i}"})
|
||||
return h
|
||||
|
||||
|
||||
# ── /compact alias resolution ─────────────────────────────────────────
|
||||
|
||||
|
||||
def test_compact_resolves_to_compress():
|
||||
cmd = resolve_command("compact")
|
||||
assert cmd is not None
|
||||
assert cmd.name == "compress"
|
||||
assert "compact" in cmd.aliases
|
||||
|
||||
|
||||
|
||||
|
||||
def test_compact_listed_in_flat_commands():
|
||||
assert "/compact" in COMMANDS
|
||||
assert "alias for /compress" in COMMANDS["/compact"]
|
||||
|
||||
|
||||
|
||||
|
||||
# ── extract_compress_flags ────────────────────────────────────────────
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def test_dry_run_is_preview():
|
||||
for form in ("--dry-run", "--dryrun", "--DRY-RUN"):
|
||||
_, preview, _ = extract_compress_flags(form)
|
||||
assert preview is True, form
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def test_flags_coexist_with_focus_topic():
|
||||
rest, preview, _ = extract_compress_flags("database schema --dry-run")
|
||||
assert rest == "database schema"
|
||||
assert preview is True
|
||||
partial, _, focus = parse_partial_compress_args(rest)
|
||||
assert partial is False and focus == "database schema"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# ── summarize_compress_preview ────────────────────────────────────────
|
||||
|
||||
|
||||
def test_preview_full_compress_counts():
|
||||
hist = _history(5)
|
||||
report = summarize_compress_preview(hist, False, DEFAULT_KEEP_LAST, None, 1234)
|
||||
assert report["head_count"] == 10
|
||||
assert report["tail_count"] == 0
|
||||
assert report["total"] == 10
|
||||
assert report["partial"] is False
|
||||
joined = "\n".join(report["lines"])
|
||||
assert "no changes made" in joined.lower()
|
||||
assert "10 of 10" in joined
|
||||
assert "1,234" in joined
|
||||
|
||||
|
||||
def test_preview_partial_boundary_counts():
|
||||
hist = _history(5)
|
||||
report = summarize_compress_preview(hist, True, 2, None, 999)
|
||||
# Keeping last 2 exchanges = 4 tail messages, 6 head messages.
|
||||
assert report["head_count"] == 6
|
||||
assert report["tail_count"] == 4
|
||||
assert report["partial"] is True
|
||||
joined = "\n".join(report["lines"])
|
||||
assert "last 2 exchange" in joined
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def test_preview_is_side_effect_free():
|
||||
hist = _history(4)
|
||||
before = [dict(m) for m in hist]
|
||||
summarize_compress_preview(hist, True, 1, None, 10)
|
||||
assert hist == before
|
||||
Reference in New Issue
Block a user