feat: 添加 mycodex 入口,支持 OpenAI Codex CLI
- 在 launcher 中注册 codex 后端,兼容 ~/.codex/sessions 日期嵌套目录 - 解析 session_meta.payload.cwd 过滤当前目录会话 - 添加 myagents codex 子命令与 mycodex 独立入口、补全及 Makefile 链接 - 更新 pyproject.toml 控制台脚本与 README 文档 - 补充 codex 相关单元测试,45 tests passed
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
"""Tests for standalone myclaude / mykimi entrypoints."""
|
||||
"""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, kimi_cli
|
||||
from myagents.entrypoints import claude_cli, codex_cli, kimi_cli
|
||||
|
||||
|
||||
class TestMyclaudeEntrypoint:
|
||||
@@ -73,3 +73,36 @@ class TestMykimiEntrypoint:
|
||||
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), "resume", "abc123"])
|
||||
assert result.exit_code == 0
|
||||
assert "resume" in mock_run.call_args[0][0]
|
||||
assert "abc123" in mock_run.call_args[0][0]
|
||||
|
||||
Reference in New Issue
Block a user