Files
myagents/tests/test_entrypoints.py
T
Zhengshou Lai c07b132f6d feat(mycodex): 对齐 resume options,支持 -r/--resume/--continue/--last/--all
- 新增 _translate_codex_extra,将 -r/--resume 映射为 codex resume

- --continue 映射为 codex continue,--last/--all 映射为 resume --last/--all

- 更新 help 文案与 README 用法示例

- 补充 5 个 codex resume option 单元测试,50 tests passed
2026-07-07 09:05:09 +08:00

108 lines
4.0 KiB
Python

"""Tests for standalone myclaude / mykimi / mycodex entrypoints."""
from pathlib import Path
from unittest.mock import MagicMock, patch
from click.testing import CliRunner
from myagents.entrypoints import claude_cli, codex_cli, kimi_cli
class TestMyclaudeEntrypoint:
"""``myclaude`` standalone entrypoint."""
def test_runs_claude(self) -> None:
runner = CliRunner()
with (
patch("myagents.launcher.shutil.which", return_value="/usr/bin/claude"),
patch("myagents.launcher.subprocess.run") as mock_run,
):
mock_run.return_value = MagicMock(returncode=0)
result = runner.invoke(claude_cli, [])
assert result.exit_code == 0
assert mock_run.call_args[0][0] == [
"/usr/bin/claude",
"--dangerously-skip-permissions",
]
def test_version_shows_myclaude(self) -> None:
runner = CliRunner()
result = runner.invoke(claude_cli, ["--version"])
assert result.exit_code == 0
assert "myclaude" in result.output
def test_passthrough(self, tmp_path: Path) -> None:
runner = CliRunner()
with (
patch("myagents.launcher.shutil.which", return_value="/usr/bin/claude"),
patch("myagents.launcher.subprocess.run") as mock_run,
):
mock_run.return_value = MagicMock(returncode=0)
result = runner.invoke(claude_cli, ["--cwd", str(tmp_path), "--resume"])
assert result.exit_code == 0
assert "--resume" in mock_run.call_args[0][0]
class TestMykimiEntrypoint:
"""``mykimi`` standalone entrypoint."""
def test_runs_kimi(self) -> None:
runner = CliRunner()
with (
patch("myagents.launcher.shutil.which", return_value="/usr/bin/kimi"),
patch("myagents.launcher.subprocess.run") as mock_run,
):
mock_run.return_value = MagicMock(returncode=0)
result = runner.invoke(kimi_cli, [])
assert result.exit_code == 0
assert mock_run.call_args[0][0] == ["/usr/bin/kimi"]
def test_version_shows_mykimi(self) -> None:
runner = CliRunner()
result = runner.invoke(kimi_cli, ["--version"])
assert result.exit_code == 0
assert "mykimi" in result.output
def test_passthrough(self, tmp_path: Path) -> None:
runner = CliRunner()
with (
patch("myagents.launcher.shutil.which", return_value="/usr/bin/kimi"),
patch("myagents.launcher.subprocess.run") as mock_run,
):
mock_run.return_value = MagicMock(returncode=0)
result = runner.invoke(kimi_cli, ["--cwd", str(tmp_path), "--resume"])
assert result.exit_code == 0
assert "--resume" in mock_run.call_args[0][0]
class TestMycodexEntrypoint:
"""``mycodex`` standalone entrypoint."""
def test_runs_codex(self) -> None:
runner = CliRunner()
with (
patch("myagents.launcher.shutil.which", return_value="/usr/bin/codex"),
patch("myagents.launcher.subprocess.run") as mock_run,
):
mock_run.return_value = MagicMock(returncode=0)
result = runner.invoke(codex_cli, [])
assert result.exit_code == 0
assert mock_run.call_args[0][0] == ["/usr/bin/codex"]
def test_version_shows_mycodex(self) -> None:
runner = CliRunner()
result = runner.invoke(codex_cli, ["--version"])
assert result.exit_code == 0
assert "mycodex" in result.output
def test_passthrough(self, tmp_path: Path) -> None:
runner = CliRunner()
with (
patch("myagents.launcher.shutil.which", return_value="/usr/bin/codex"),
patch("myagents.launcher.subprocess.run") as mock_run,
):
mock_run.return_value = MagicMock(returncode=0)
result = runner.invoke(codex_cli, ["--cwd", str(tmp_path), "-r", "abc123"])
assert result.exit_code == 0
assert mock_run.call_args[0][0] == ["/usr/bin/codex", "resume", "abc123"]