Saved presets keep URL and model per stage so detect can switch to Ollama without re-entering settings or sending plaintext to OpenRouter. Co-authored-by: Cursor <cursoragent@cursor.com>
37 lines
1.3 KiB
Python
37 lines
1.3 KiB
Python
"""Local trusted-zone URL tests. No database."""
|
|
from __future__ import annotations
|
|
|
|
import os
|
|
import sys
|
|
import tempfile
|
|
from pathlib import Path
|
|
|
|
ROOT = Path(__file__).resolve().parents[1]
|
|
sys.path.insert(0, str(ROOT))
|
|
os.environ.setdefault("KANSHO_PROVIDER_KEY", "")
|
|
os.environ.setdefault("KANSHO_DETECT_PROVIDER_KEY", "")
|
|
Path(tempfile.gettempdir()).mkdir(parents=True, exist_ok=True)
|
|
|
|
from providers import is_local_url
|
|
|
|
|
|
def expect(ok: bool, message: str) -> None:
|
|
if not ok:
|
|
raise SystemExit(f"FAIL: {message}")
|
|
print(f"OK {message}")
|
|
|
|
|
|
def main() -> None:
|
|
expect(is_local_url("http://127.0.0.1:11434/v1/chat/completions"), "loopback is local")
|
|
expect(is_local_url("http://localhost:11434/v1/chat/completions"), "localhost is local")
|
|
expect(is_local_url("http://192.168.2.144:11434/v1/chat/completions"), "RFC1918 Ollama host is local")
|
|
expect(is_local_url("http://10.0.0.8:11434/v1/chat/completions"), "10/8 is local")
|
|
expect(is_local_url("http://ollama:11434/v1/chat/completions"), "compose hostname ollama is local")
|
|
expect(not is_local_url("https://openrouter.ai/api/v1/chat/completions"), "OpenRouter is not local")
|
|
expect(not is_local_url("https://8.8.8.8/v1/chat/completions"), "public IP is not local")
|
|
print("local url tests passed.")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|