mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-04-28 06:51:16 +08:00
test: strengthen assertions across 7 test files (batch 1)
Replaced weak 'is not None' / '> 0' / 'len >= 1' assertions with concrete value checks across the most flagged test files: gateway/test_pairing.py (11 weak → 0): - Code assertions verify isinstance + len == CODE_LENGTH - Approval results verify dict structure + specific user_id/user_name - Added code2 != code1 check in rate_limit_expires test_hermes_state.py (6 weak → 0): - ended_at verified as float timestamp - Search result counts exact (== 2, not >= 1) - Context verified as non-empty list - Export verified as dict, session ID verified test_cli_init.py (4 weak → 0): - max_turns asserts exact value (60) - model asserts string with provider/name format gateway/test_hooks.py (2 zero-assert tests → fixed): - test_no_handlers_for_event: verifies no handler registered - test_handler_error_does_not_propagate: verifies handler count + return gateway/test_platform_base.py (9 weak image tests → fixed): - extract_images tests now verify actual URL and alt_text - truncate_message verifies content preservation after splitting cron/test_scheduler.py (1 weak → 0): - resolve_origin verifies dict equality, not just existence cron/test_jobs.py (2 weak → 0 + 4 new tests): - Schedule parsing verifies ISO timestamp type - Cron expression verifies result is valid datetime string - NEW: 4 tests for update_job() (was completely untested)
This commit is contained in:
@@ -43,7 +43,7 @@ class TestSessionLifecycle:
|
||||
db.end_session("s1", end_reason="user_exit")
|
||||
|
||||
session = db.get_session("s1")
|
||||
assert session["ended_at"] is not None
|
||||
assert isinstance(session["ended_at"], float)
|
||||
assert session["end_reason"] == "user_exit"
|
||||
|
||||
def test_update_system_prompt(self, db):
|
||||
@@ -138,7 +138,7 @@ class TestFTS5Search:
|
||||
db.append_message("s1", role="assistant", content="Use docker compose up.")
|
||||
|
||||
results = db.search_messages("docker")
|
||||
assert len(results) >= 1
|
||||
assert len(results) == 2
|
||||
# At least one result should mention docker
|
||||
snippets = [r.get("snippet", "") for r in results]
|
||||
assert any("docker" in s.lower() or "Docker" in s for s in snippets)
|
||||
@@ -174,8 +174,10 @@ class TestFTS5Search:
|
||||
db.append_message("s1", role="assistant", content="Kubernetes is an orchestrator.")
|
||||
|
||||
results = db.search_messages("Kubernetes")
|
||||
assert len(results) >= 1
|
||||
assert len(results) == 2
|
||||
assert "context" in results[0]
|
||||
assert isinstance(results[0]["context"], list)
|
||||
assert len(results[0]["context"]) > 0
|
||||
|
||||
|
||||
# =========================================================================
|
||||
@@ -266,7 +268,7 @@ class TestDeleteAndExport:
|
||||
db.append_message("s1", role="assistant", content="Hi")
|
||||
|
||||
export = db.export_session("s1")
|
||||
assert export is not None
|
||||
assert isinstance(export, dict)
|
||||
assert export["source"] == "cli"
|
||||
assert len(export["messages"]) == 2
|
||||
|
||||
@@ -312,7 +314,9 @@ class TestPruneSessions:
|
||||
pruned = db.prune_sessions(older_than_days=90)
|
||||
assert pruned == 1
|
||||
assert db.get_session("old") is None
|
||||
assert db.get_session("new") is not None
|
||||
session = db.get_session("new")
|
||||
assert session is not None
|
||||
assert session["id"] == "new"
|
||||
|
||||
def test_prune_skips_active_sessions(self, db):
|
||||
db.create_session(session_id="active", source="cli")
|
||||
|
||||
Reference in New Issue
Block a user