修复手动搜索调度时区

This commit is contained in:
Codex
2026-07-09 00:29:51 +08:00
parent 9bba3fedfd
commit ad91eecf7f
2 changed files with 45 additions and 2 deletions
+43
View File
@@ -1,4 +1,5 @@
from datetime import datetime
from zoneinfo import ZoneInfo
from fastapi.testclient import TestClient
from sqlalchemy import create_engine
@@ -78,6 +79,48 @@ def test_manual_agent_run_endpoint_starts_background_job(monkeypatch) -> None:
assert started == ["test"]
def test_manual_agent_run_endpoint_uses_scheduler_when_available(monkeypatch) -> None:
# 生产环境手动搜索投递到常驻调度器,避免HTTP请求承载长时间联网搜索。
monkeypatch.setenv("SIGNALSCOUT_ENV", "test")
get_settings.cache_clear()
engine = create_engine(
"sqlite:///:memory:",
connect_args={"check_same_thread": False},
poolclass=StaticPool,
future=True,
)
TestingSessionLocal = sessionmaker(bind=engine, autoflush=False, autocommit=False, future=True)
Base.metadata.create_all(engine)
scheduled = []
class FakeScheduler:
running = True
timezone = ZoneInfo("Asia/Shanghai")
def add_job(self, *args, **kwargs):
scheduled.append(kwargs)
def override_get_db():
# 调度器路径同样使用内存库检查运行中状态。
db = TestingSessionLocal()
try:
yield db
finally:
db.close()
app = create_app()
app.state.scheduler = FakeScheduler()
app.dependency_overrides[get_db] = override_get_db
with TestClient(app) as client:
response = client.post("/agent/runs/daily")
get_settings.cache_clear()
assert response.status_code == 200
assert response.json()["status"] == "started"
assert scheduled[0]["trigger"] == "date"
assert scheduled[0]["run_date"].tzinfo is not None
def test_dashboard_returns_news_and_github_signals_separately(monkeypatch) -> None:
# 仪表盘接口直接返回分组后的业务数据,前端不再用标题或来源名自行猜测分类。
monkeypatch.setenv("SIGNALSCOUT_ENV", "test")