mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-05-29 06:31:32 +00:00
test(cron): guard schedule-required description text on CRONJOB_SCHEMA
This commit is contained in:
parent
51013268cf
commit
556bf7c5c1
1 changed files with 41 additions and 0 deletions
41
tests/cron/test_cronjob_schema.py
Normal file
41
tests/cron/test_cronjob_schema.py
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
"""Tests for the cronjob tool schema shape.
|
||||
|
||||
Guards the description text that flags ``schedule`` (and ``prompt``) as
|
||||
REQUIRED for ``action=create`` — the load-bearing fix for description-driven
|
||||
models (e.g. Grok) that omit schedule when the schema only lists ``action``
|
||||
in ``required[]``. See issue #32427 / PR #32448.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
|
||||
def test_cronjob_schema_action_description_flags_create_requirements():
|
||||
"""`action` description must state schedule + prompt are required for create."""
|
||||
from tools.cronjob_tools import CRONJOB_SCHEMA
|
||||
|
||||
action_desc = CRONJOB_SCHEMA["parameters"]["properties"]["action"]["description"]
|
||||
assert "action=create" in action_desc
|
||||
assert "schedule" in action_desc
|
||||
assert "REQUIRED" in action_desc
|
||||
|
||||
|
||||
def test_cronjob_schema_schedule_description_flags_required_for_create():
|
||||
"""`schedule` description must explicitly state REQUIRED for action=create."""
|
||||
from tools.cronjob_tools import CRONJOB_SCHEMA
|
||||
|
||||
schedule_desc = CRONJOB_SCHEMA["parameters"]["properties"]["schedule"]["description"]
|
||||
assert "REQUIRED" in schedule_desc
|
||||
assert "action=create" in schedule_desc
|
||||
|
||||
|
||||
def test_cronjob_schema_required_array_unchanged():
|
||||
"""`required[]` stays minimal — `action` only.
|
||||
|
||||
The schema intentionally does NOT promote schedule/prompt into the
|
||||
top-level required array because they're only mandatory for
|
||||
action=create, not for list/remove/pause/etc. The description text
|
||||
carries the conditional requirement instead.
|
||||
"""
|
||||
from tools.cronjob_tools import CRONJOB_SCHEMA
|
||||
|
||||
assert CRONJOB_SCHEMA["parameters"]["required"] == ["action"]
|
||||
Loading…
Add table
Add a link
Reference in a new issue