Co-authored-by: Albert Jiang <aj@mistral.ai> Co-authored-by: Clément Drouin <clement.drouin@mistral.ai> Co-authored-by: Laure Hugo <201583486+laure0303@users.noreply.github.com> Co-authored-by: Mathias Gesbert <mathias.gesbert@mistral.ai> Co-authored-by: Mert Unsal <mert.unsal@mistral.ai> Co-authored-by: Michel Thomazo <51709227+michelTho@users.noreply.github.com> Co-authored-by: Paul VEZIA <166131032+le-codeur-rapide@users.noreply.github.com> Co-authored-by: Pierre Rossinès <pierre.rossines@mistral.ai> Co-authored-by: Quentin <quentin.torroba@mistral.ai> Co-authored-by: Mistral Vibe <vibe@mistral.ai>
69 lines
2.5 KiB
Python
69 lines
2.5 KiB
Python
from __future__ import annotations
|
|
|
|
import argparse
|
|
|
|
from vibe.cli.cli import get_initial_agent_name
|
|
from vibe.core.agents.models import BuiltinAgentName
|
|
from vibe.core.config import VibeConfig
|
|
|
|
|
|
def _make_args(
|
|
*, agent: str | None, prompt: str | None, auto_approve: bool = False
|
|
) -> argparse.Namespace:
|
|
return argparse.Namespace(agent=agent, prompt=prompt, auto_approve=auto_approve)
|
|
|
|
|
|
def test_uses_args_agent_when_provided() -> None:
|
|
config = VibeConfig.model_construct(default_agent=BuiltinAgentName.PLAN)
|
|
args = _make_args(agent="accept-edits", prompt=None)
|
|
|
|
assert get_initial_agent_name(args, config) == "accept-edits"
|
|
|
|
|
|
def test_falls_back_to_config_default_agent_when_args_agent_is_none() -> None:
|
|
config = VibeConfig.model_construct(default_agent=BuiltinAgentName.PLAN)
|
|
args = _make_args(agent=None, prompt=None)
|
|
|
|
assert get_initial_agent_name(args, config) == BuiltinAgentName.PLAN
|
|
|
|
|
|
def test_defaults_to_default_when_unset_in_config_and_args() -> None:
|
|
config = VibeConfig.model_construct()
|
|
args = _make_args(agent=None, prompt=None)
|
|
|
|
assert get_initial_agent_name(args, config) == BuiltinAgentName.DEFAULT
|
|
|
|
|
|
def test_programmatic_mode_falls_back_to_default_agent() -> None:
|
|
config = VibeConfig.model_construct(default_agent=BuiltinAgentName.DEFAULT)
|
|
args = _make_args(agent=None, prompt="hello")
|
|
|
|
assert get_initial_agent_name(args, config) == BuiltinAgentName.DEFAULT
|
|
|
|
|
|
def test_programmatic_mode_uses_config_default_agent_when_args_agent_is_none() -> None:
|
|
config = VibeConfig.model_construct(default_agent=BuiltinAgentName.PLAN)
|
|
args = _make_args(agent=None, prompt="hello")
|
|
|
|
assert get_initial_agent_name(args, config) == BuiltinAgentName.PLAN
|
|
|
|
|
|
def test_programmatic_mode_keeps_explicit_agent_arg() -> None:
|
|
config = VibeConfig.model_construct(default_agent=BuiltinAgentName.DEFAULT)
|
|
args = _make_args(agent="accept-edits", prompt="hello")
|
|
|
|
assert get_initial_agent_name(args, config) == "accept-edits"
|
|
|
|
|
|
def test_auto_approve_flag_keeps_config_default_agent() -> None:
|
|
config = VibeConfig.model_construct(default_agent=BuiltinAgentName.PLAN)
|
|
args = _make_args(agent=None, prompt="hello", auto_approve=True)
|
|
|
|
assert get_initial_agent_name(args, config) == BuiltinAgentName.PLAN
|
|
|
|
|
|
def test_auto_approve_flag_keeps_explicit_agent_arg() -> None:
|
|
config = VibeConfig.model_construct(default_agent=BuiltinAgentName.PLAN)
|
|
args = _make_args(agent="lean", prompt="hello", auto_approve=True)
|
|
|
|
assert get_initial_agent_name(args, config) == BuiltinAgentName.LEAN
|