Import AITURK IDE 1.0.0-beta.1 from Hermes 63279301; preserve MIT license
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
"""Regression tests: -z/--oneshot must honor -s/--skills (#31548, #65119).
|
||||
|
||||
The oneshot path builds its AIAgent directly (bypassing HermesCLI), so the
|
||||
--skills preload has to be forwarded explicitly and injected via
|
||||
``ephemeral_system_prompt``. These tests pin the forwarding contract and the
|
||||
partial-success semantics shared with normal CLI chat.
|
||||
"""
|
||||
|
||||
import pytest
|
||||
|
||||
from hermes_cli.oneshot import _build_preloaded_skills_prompt, _normalize_skills
|
||||
|
||||
|
||||
class TestNormalizeSkills:
|
||||
def test_none_and_empty(self):
|
||||
assert _normalize_skills(None) == []
|
||||
assert _normalize_skills("") == []
|
||||
assert _normalize_skills([]) == []
|
||||
|
||||
def test_comma_separated_string(self):
|
||||
assert _normalize_skills("a,b") == ["a", "b"]
|
||||
|
||||
def test_repeated_flags_deduped_order_preserved(self):
|
||||
assert _normalize_skills(["b", "a", "b"]) == ["b", "a"]
|
||||
|
||||
|
||||
class TestBuildPreloadedSkillsPrompt:
|
||||
def test_no_skills_returns_none(self):
|
||||
assert _build_preloaded_skills_prompt(None) is None
|
||||
|
||||
def test_all_missing_raises(self, monkeypatch):
|
||||
import agent.skill_commands as sc
|
||||
|
||||
monkeypatch.setattr(
|
||||
sc, "build_preloaded_skills_prompt",
|
||||
lambda parsed, **kw: ("", [], list(parsed)),
|
||||
)
|
||||
with pytest.raises(ValueError, match="Unknown skill"):
|
||||
_build_preloaded_skills_prompt("not-a-skill")
|
||||
|
||||
def test_partial_success_returns_prompt(self, monkeypatch):
|
||||
import agent.skill_commands as sc
|
||||
|
||||
monkeypatch.setattr(
|
||||
sc, "build_preloaded_skills_prompt",
|
||||
lambda parsed, **kw: ("PROMPT", ["good"], ["bad"]),
|
||||
)
|
||||
assert _build_preloaded_skills_prompt(["good", "bad"]) == "PROMPT"
|
||||
|
||||
def test_loaded_prompt_returned(self, monkeypatch):
|
||||
import agent.skill_commands as sc
|
||||
|
||||
monkeypatch.setattr(
|
||||
sc, "build_preloaded_skills_prompt",
|
||||
lambda parsed, **kw: ("SKILL CONTENT", ["s"], []),
|
||||
)
|
||||
assert _build_preloaded_skills_prompt("s") == "SKILL CONTENT"
|
||||
Reference in New Issue
Block a user