ouroboros/tests/test_cli_entrypoint.py
Ouroboros defb5f65b2 core: cli/headless/llm/launcher/registry follow-on adjustments
Supporting adjustments to the CLI client, headless patch-artifact writer, LLM
client, launcher skill-seeding, and tool registry/context for the changes in
this release.
2026-06-11 16:10:51 +03:00

53 lines
1.5 KiB
Python

from __future__ import annotations
import json
import sys
from types import SimpleNamespace
def test_server_subcommand_sanitizes_argv(monkeypatch):
from ouroboros import cli
seen = {}
class FakeServer:
@staticmethod
def main():
seen["argv"] = list(sys.argv)
return 0
monkeypatch.setitem(sys.modules, "server", FakeServer)
monkeypatch.setattr(sys, "argv", ["ouroboros", "server", "--host", "127.0.0.1", "--port", "9000"])
result = cli._server_command(SimpleNamespace(host="127.0.0.1", port=9000, no_ui=True))
assert result == 0
assert seen["argv"] == ["ouroboros"]
assert json.loads(__import__("os").environ["OUROBOROS_SERVER_REEXEC_ARGV_JSON"]) == [
"-m",
"ouroboros.cli",
"server",
"--host",
"127.0.0.1",
"--port",
"9000",
]
assert sys.argv == ["ouroboros", "server", "--host", "127.0.0.1", "--port", "9000"]
def test_settings_context_mode_posts_owner_endpoint(monkeypatch):
from ouroboros import cli
seen = {}
class FakeClient:
def request(self, method, path, body=None):
seen["request"] = (method, path, body)
return {"ok": True, "context_mode": body["mode"]}
monkeypatch.setattr(cli, "_client", lambda _args, **_kwargs: FakeClient())
result = cli._owner_context_mode_command(SimpleNamespace(mode="low"))
assert result == 0
assert seen["request"] == ("POST", "/api/owner/context-mode", {"mode": "low"})