90d2cf8326
- jarvisChat/JarvisChat/jarvischat → cAIc/cAIc/caic (branded/lower) - JARVISCHAT_ env vars → CAIC_ - jc- script/config prefix → caic- - jarvis_rag → caic_rag - jarvischat.db / volumes → caic.db / caic_* - AMQP vhost/user jarvischat → caic - Syslog, loggers, docstrings all updated - 47 files, zero stale references, 148 tests pass
60 lines
1.6 KiB
Python
60 lines
1.6 KiB
Python
import os
|
|
from pathlib import Path
|
|
|
|
from fastapi.testclient import TestClient
|
|
|
|
import app
|
|
import db
|
|
from security import SESSIONS, PIN_ATTEMPTS
|
|
|
|
|
|
def make_admin_client(tmp_path: Path) -> tuple[TestClient, dict[str, str]]:
|
|
os.environ["CAIC_ADMIN_PIN"] = "1234"
|
|
db.DB_PATH = tmp_path / "caic-settings.db"
|
|
SESSIONS.clear()
|
|
PIN_ATTEMPTS.clear()
|
|
db.init_db()
|
|
|
|
client = TestClient(app.app)
|
|
login = client.post(
|
|
"/api/auth/login",
|
|
json={"pin": "1234"},
|
|
headers={"Origin": "http://testserver"},
|
|
)
|
|
assert login.status_code == 200
|
|
sid = login.json()["session_id"]
|
|
headers = {"X-Session-ID": sid, "Origin": "http://testserver"}
|
|
return client, headers
|
|
|
|
|
|
def test_settings_allow_known_keys(tmp_path: Path):
|
|
client, headers = make_admin_client(tmp_path)
|
|
try:
|
|
resp = client.put(
|
|
"/api/settings",
|
|
json={
|
|
"profile_enabled": "false",
|
|
"search_enabled": "true",
|
|
"memory_enabled": "false",
|
|
"default_model": "llama3.1:latest",
|
|
},
|
|
headers=headers,
|
|
)
|
|
assert resp.status_code == 200
|
|
finally:
|
|
client.close()
|
|
|
|
|
|
def test_settings_reject_unknown_keys(tmp_path: Path):
|
|
client, headers = make_admin_client(tmp_path)
|
|
try:
|
|
resp = client.put(
|
|
"/api/settings",
|
|
json={"admin_pin_hash": "oops"},
|
|
headers=headers,
|
|
)
|
|
assert resp.status_code == 400
|
|
assert "Unknown setting key" in resp.json().get("detail", "")
|
|
finally:
|
|
client.close()
|