mirror of
https://github.com/mistralai/mistral-vibe
synced 2026-04-25 17:14:55 +02:00
Co-authored-by: Bastien <bastien.baret@gmail.com> Co-authored-by: Laure Hugo <201583486+laure0303@users.noreply.github.com> Co-authored-by: Michel Thomazo <51709227+michelTho@users.noreply.github.com> Co-authored-by: Paul Cacheux <paul.cacheux@mistral.ai> Co-authored-by: Val <102326092+vdeva@users.noreply.github.com> Co-authored-by: Mistral Vibe <vibe@mistral.ai>
70 lines
3.0 KiB
Python
70 lines
3.0 KiB
Python
from __future__ import annotations
|
|
|
|
from vibe.cli.commands import Command, CommandRegistry
|
|
|
|
|
|
class TestCommandRegistry:
|
|
def test_get_command_name_returns_canonical_name_for_alias(self) -> None:
|
|
registry = CommandRegistry()
|
|
assert registry.get_command_name("/help") == "help"
|
|
assert registry.get_command_name("/config") == "config"
|
|
assert registry.get_command_name("/model") == "model"
|
|
assert registry.get_command_name("/clear") == "clear"
|
|
assert registry.get_command_name("/exit") == "exit"
|
|
assert registry.get_command_name("/data-retention") == "data-retention"
|
|
|
|
def test_get_command_name_normalizes_input(self) -> None:
|
|
registry = CommandRegistry()
|
|
assert registry.get_command_name(" /help ") == "help"
|
|
assert registry.get_command_name("/HELP") == "help"
|
|
|
|
def test_get_command_name_returns_none_for_unknown(self) -> None:
|
|
registry = CommandRegistry()
|
|
assert registry.get_command_name("/unknown") is None
|
|
assert registry.get_command_name("hello") is None
|
|
assert registry.get_command_name("") is None
|
|
|
|
def test_find_command_returns_command_when_alias_matches(self) -> None:
|
|
registry = CommandRegistry()
|
|
cmd = registry.find_command("/help")
|
|
assert cmd is not None
|
|
assert cmd.handler == "_show_help"
|
|
assert isinstance(cmd, Command)
|
|
|
|
def test_find_command_returns_none_when_no_match(self) -> None:
|
|
registry = CommandRegistry()
|
|
assert registry.find_command("/nonexistent") is None
|
|
|
|
def test_find_command_uses_get_command_name(self) -> None:
|
|
"""find_command and get_command_name stay in sync for same input."""
|
|
registry = CommandRegistry()
|
|
for alias in ["/help", "/config", "/clear", "/exit"]:
|
|
cmd_name = registry.get_command_name(alias)
|
|
cmd = registry.find_command(alias)
|
|
if cmd_name is None:
|
|
assert cmd is None
|
|
else:
|
|
assert cmd is not None
|
|
assert cmd_name in registry.commands
|
|
assert registry.commands[cmd_name] is cmd
|
|
|
|
def test_excluded_commands_not_in_registry(self) -> None:
|
|
registry = CommandRegistry(excluded_commands=["exit"])
|
|
assert registry.get_command_name("/exit") is None
|
|
assert registry.find_command("/exit") is None
|
|
assert registry.get_command_name("/help") == "help"
|
|
|
|
def test_resume_command_registration(self) -> None:
|
|
registry = CommandRegistry()
|
|
assert registry.get_command_name("/resume") == "resume"
|
|
assert registry.get_command_name("/continue") == "resume"
|
|
cmd = registry.find_command("/resume")
|
|
assert cmd is not None
|
|
assert cmd.handler == "_show_session_picker"
|
|
|
|
def test_data_retention_command_registration(self) -> None:
|
|
registry = CommandRegistry()
|
|
cmd = registry.find_command("/data-retention")
|
|
assert cmd is not None
|
|
assert cmd.handler == "_show_data_retention"
|