feat: introduce runner protocol and normalized event model (#7)
This commit is contained in:
+17
-11
@@ -2,46 +2,52 @@ from __future__ import annotations
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
from takopi import onboarding
|
||||
from takopi import engines, onboarding
|
||||
|
||||
|
||||
def test_check_setup_marks_missing_codex(monkeypatch, tmp_path: Path) -> None:
|
||||
monkeypatch.setattr(onboarding.shutil, "which", lambda _name: None)
|
||||
backend = engines.get_backend("codex")
|
||||
monkeypatch.setattr(engines.shutil, "which", lambda _name: None)
|
||||
monkeypatch.setattr(
|
||||
onboarding,
|
||||
"load_telegram_config",
|
||||
lambda: ({"bot_token": "token", "chat_id": 123}, tmp_path / "takopi.toml"),
|
||||
)
|
||||
|
||||
result = onboarding.check_setup()
|
||||
result = onboarding.check_setup(backend)
|
||||
|
||||
assert result.missing_codex is True
|
||||
assert result.missing_or_invalid_config is False
|
||||
titles = {issue.title for issue in result.issues}
|
||||
assert "Install the Codex CLI" in titles
|
||||
assert "Create a config" not in titles
|
||||
assert result.ok is False
|
||||
|
||||
|
||||
def test_check_setup_marks_missing_config(monkeypatch) -> None:
|
||||
monkeypatch.setattr(onboarding.shutil, "which", lambda _name: "/usr/bin/codex")
|
||||
backend = engines.get_backend("codex")
|
||||
monkeypatch.setattr(engines.shutil, "which", lambda _name: "/usr/bin/codex")
|
||||
|
||||
def _raise() -> None:
|
||||
raise onboarding.ConfigError("Missing config file")
|
||||
|
||||
monkeypatch.setattr(onboarding, "load_telegram_config", _raise)
|
||||
|
||||
result = onboarding.check_setup()
|
||||
result = onboarding.check_setup(backend)
|
||||
|
||||
assert result.missing_or_invalid_config is True
|
||||
titles = {issue.title for issue in result.issues}
|
||||
assert "Create a config" in titles
|
||||
assert result.config_path == onboarding.HOME_CONFIG_PATH
|
||||
|
||||
|
||||
def test_check_setup_marks_invalid_chat_id(monkeypatch, tmp_path: Path) -> None:
|
||||
monkeypatch.setattr(onboarding.shutil, "which", lambda _name: "/usr/bin/codex")
|
||||
backend = engines.get_backend("codex")
|
||||
monkeypatch.setattr(engines.shutil, "which", lambda _name: "/usr/bin/codex")
|
||||
monkeypatch.setattr(
|
||||
onboarding,
|
||||
"load_telegram_config",
|
||||
lambda: ({"bot_token": "token", "chat_id": "123"}, tmp_path / "takopi.toml"),
|
||||
)
|
||||
|
||||
result = onboarding.check_setup()
|
||||
result = onboarding.check_setup(backend)
|
||||
|
||||
assert result.missing_or_invalid_config is True
|
||||
titles = {issue.title for issue in result.issues}
|
||||
assert "Create a config" in titles
|
||||
|
||||
Reference in New Issue
Block a user