feat: migrate Mac mini services into Reyna CLI
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
from pathlib import Path
|
||||
from types import SimpleNamespace
|
||||
|
||||
from typer.testing import CliRunner
|
||||
|
||||
from reyna_cli.cli import app
|
||||
|
||||
runner = CliRunner()
|
||||
|
||||
|
||||
def test_run_signed_python_invokes_bundle_with_python_and_forwards_args(tmp_path):
|
||||
from reyna_cli.signed_launcher import run_signed_python
|
||||
|
||||
executable = tmp_path / "ReynaCLIHost"
|
||||
executable.write_text("binary")
|
||||
calls = []
|
||||
|
||||
def fake_run(args, **kwargs):
|
||||
calls.append((args, kwargs))
|
||||
return SimpleNamespace(returncode=17)
|
||||
|
||||
result = run_signed_python(["local-services", "speech", "generate", "hello"], executable=executable, runner=fake_run)
|
||||
|
||||
assert result == 17
|
||||
assert calls == [(
|
||||
[str(executable), "--python", "local-services", "speech", "generate", "hello"],
|
||||
{"check": False},
|
||||
)]
|
||||
|
||||
|
||||
def test_run_signed_python_rejects_missing_bundle_executable(tmp_path):
|
||||
from reyna_cli.signed_launcher import SignedLauncherError, run_signed_python
|
||||
|
||||
try:
|
||||
run_signed_python(["doctor"], executable=tmp_path / "missing")
|
||||
except SignedLauncherError as exc:
|
||||
assert "signed Reyna CLI app executable" in str(exc)
|
||||
else:
|
||||
raise AssertionError("missing signed executable must fail")
|
||||
|
||||
|
||||
def test_signed_command_forwards_unknown_arguments(monkeypatch):
|
||||
from reyna_cli import signed_launcher
|
||||
|
||||
captured = {}
|
||||
|
||||
def fake_run(args):
|
||||
captured["args"] = args
|
||||
return 0
|
||||
|
||||
monkeypatch.setattr(signed_launcher, "run_signed_python", fake_run)
|
||||
|
||||
result = runner.invoke(app, ["signed", "local-services", "speech", "generate", "hello", "--voice", "Alex"])
|
||||
|
||||
assert result.exit_code == 0, result.stdout
|
||||
assert captured["args"] == ["local-services", "speech", "generate", "hello", "--voice", "Alex"]
|
||||
|
||||
|
||||
def test_signed_command_reports_missing_signed_bundle(monkeypatch):
|
||||
from reyna_cli import signed_launcher
|
||||
|
||||
def fake_run(args):
|
||||
raise signed_launcher.SignedLauncherError("signed Reyna CLI app executable is missing")
|
||||
|
||||
monkeypatch.setattr(signed_launcher, "run_signed_python", fake_run)
|
||||
|
||||
result = runner.invoke(app, ["signed", "doctor"])
|
||||
|
||||
assert result.exit_code == 1
|
||||
assert "signed Reyna CLI app executable is missing" in result.stdout
|
||||
Reference in New Issue
Block a user