45 lines
1.6 KiB
Python
45 lines
1.6 KiB
Python
from fastapi.testclient import TestClient
|
|
|
|
from app.core.config import get_settings
|
|
from app.main import create_app
|
|
|
|
|
|
def test_health_endpoint_returns_app_identity(monkeypatch) -> None:
|
|
# 健康检查只暴露服务身份,不触发Agent运行或数据库写入。
|
|
monkeypatch.setenv("SIGNALSCOUT_ENV", "test")
|
|
get_settings.cache_clear()
|
|
with TestClient(create_app()) as client:
|
|
response = client.get("/health")
|
|
get_settings.cache_clear()
|
|
|
|
assert response.status_code == 200
|
|
assert response.json()["status"] == "ok"
|
|
assert response.json()["app"] == "SignalScout"
|
|
|
|
|
|
def test_home_page_returns_dashboard_shell(monkeypatch) -> None:
|
|
# 根路径应该展示业务工作台,而不是返回接口404。
|
|
monkeypatch.setenv("SIGNALSCOUT_ENV", "test")
|
|
get_settings.cache_clear()
|
|
with TestClient(create_app()) as client:
|
|
response = client.get("/")
|
|
get_settings.cache_clear()
|
|
|
|
assert response.status_code == 200
|
|
assert "SignalScout" in response.text
|
|
assert "今日 AI 情报" in response.text
|
|
assert "采集今日情报" not in response.text
|
|
|
|
|
|
def test_manual_agent_run_endpoint_is_not_exposed(monkeypatch) -> None:
|
|
# Agent只通过后台调度器自动运行,HTTP API不提供手动启动入口。
|
|
monkeypatch.setenv("SIGNALSCOUT_ENV", "test")
|
|
get_settings.cache_clear()
|
|
with TestClient(create_app()) as client:
|
|
response = client.post("/agent/runs/daily")
|
|
stream_response = client.post("/agent/runs/daily/stream")
|
|
get_settings.cache_clear()
|
|
|
|
assert response.status_code == 404
|
|
assert stream_response.status_code == 404
|