feat: add telegram /model and /reasoning overrides (#147)
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
from takopi.model import ResumeToken
|
||||
from takopi.runners.claude import ClaudeRunner
|
||||
from takopi.runners.codex import CodexRunner
|
||||
from takopi.runners.opencode import OpenCodeRunner, OpenCodeStreamState
|
||||
from takopi.runners.pi import ENGINE as PI_ENGINE, PiRunner, PiStreamState
|
||||
from takopi.runners.run_options import EngineRunOptions, apply_run_options
|
||||
|
||||
|
||||
def test_codex_run_options_override_model_and_reasoning() -> None:
|
||||
runner = CodexRunner(codex_cmd="codex", extra_args=["-c", "notify=[]"])
|
||||
state = runner.new_state("hi", None)
|
||||
with apply_run_options(EngineRunOptions(model="gpt-4.1-mini", reasoning="low")):
|
||||
args = runner.build_args("hi", None, state=state)
|
||||
|
||||
assert args == [
|
||||
"-c",
|
||||
"notify=[]",
|
||||
"--model",
|
||||
"gpt-4.1-mini",
|
||||
"-c",
|
||||
"model_reasoning_effort=low",
|
||||
"exec",
|
||||
"--json",
|
||||
"--skip-git-repo-check",
|
||||
"--color=never",
|
||||
"-",
|
||||
]
|
||||
|
||||
|
||||
def test_claude_run_options_override_model() -> None:
|
||||
runner = ClaudeRunner(claude_cmd="claude", model="claude-sonnet")
|
||||
with apply_run_options(EngineRunOptions(model="claude-opus")):
|
||||
args = runner.build_args("hi", None, state=None)
|
||||
|
||||
assert "--model" in args
|
||||
model_idx = args.index("--model") + 1
|
||||
assert args[model_idx] == "claude-opus"
|
||||
|
||||
|
||||
def test_opencode_run_options_override_model() -> None:
|
||||
runner = OpenCodeRunner(opencode_cmd="opencode", model="claude-sonnet")
|
||||
state = OpenCodeStreamState()
|
||||
with apply_run_options(EngineRunOptions(model="gpt-4o-mini")):
|
||||
args = runner.build_args("hi", None, state=state)
|
||||
|
||||
assert "--model" in args
|
||||
model_idx = args.index("--model") + 1
|
||||
assert args[model_idx] == "gpt-4o-mini"
|
||||
|
||||
|
||||
def test_pi_run_options_override_model() -> None:
|
||||
runner = PiRunner(extra_args=[], model="pi-default", provider=None)
|
||||
state = PiStreamState(resume=ResumeToken(engine=PI_ENGINE, value="sess.jsonl"))
|
||||
with apply_run_options(EngineRunOptions(model="pi-override")):
|
||||
args = runner.build_args("hi", None, state=state)
|
||||
|
||||
assert "--model" in args
|
||||
model_idx = args.index("--model") + 1
|
||||
assert args[model_idx] == "pi-override"
|
||||
Reference in New Issue
Block a user