plano/cli/test/test_init.py
2026-01-16 16:27:39 -08:00

59 lines
1.7 KiB
Python

from click.testing import CliRunner
from planoai.init_cmd import init
def test_init_clean_writes_empty_config(tmp_path, monkeypatch):
monkeypatch.chdir(tmp_path)
runner = CliRunner()
result = runner.invoke(init, ["--clean"])
assert result.exit_code == 0, result.output
config_path = tmp_path / "config.yaml"
assert config_path.exists()
assert config_path.read_text(encoding="utf-8") == "\n"
def test_init_template_builtin_writes_config_and_env(tmp_path, monkeypatch):
monkeypatch.chdir(tmp_path)
runner = CliRunner()
result = runner.invoke(
init, ["--template", "use_cases/claude_code_router", "--yes"]
)
assert result.exit_code == 0, result.output
config_path = tmp_path / "config.yaml"
assert config_path.exists()
config_text = config_path.read_text(encoding="utf-8")
assert "llm_providers:" in config_text
env_path = tmp_path / ".env"
assert env_path.exists()
env_text = env_path.read_text(encoding="utf-8")
assert "OPENAI_API_KEY=" in env_text
assert "ANTHROPIC_API_KEY=" in env_text
def test_init_refuses_overwrite_without_force(tmp_path, monkeypatch):
monkeypatch.chdir(tmp_path)
(tmp_path / "config.yaml").write_text("hello", encoding="utf-8")
runner = CliRunner()
result = runner.invoke(init, ["--clean"])
assert result.exit_code != 0
assert "Refusing to overwrite" in result.output
def test_init_force_overwrites(tmp_path, monkeypatch):
monkeypatch.chdir(tmp_path)
(tmp_path / "config.yaml").write_text("hello", encoding="utf-8")
runner = CliRunner()
result = runner.invoke(init, ["--clean", "--force"])
assert result.exit_code == 0, result.output
assert (tmp_path / "config.yaml").read_text(encoding="utf-8") == "\n"