feat(stock): holdings intel API (intel/history/run)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-31 22:12:28 +09:00
parent 789785fe3a
commit 7d7064ae93
2 changed files with 64 additions and 1 deletions

View File

@@ -0,0 +1,42 @@
import os
import sys
import tempfile
from fastapi.testclient import TestClient
def _client(monkeypatch):
# Add web-backend root to sys.path so _shared can be imported by main.py
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
from app import db
monkeypatch.setattr(db, "DB_PATH", os.path.join(tempfile.mkdtemp(), "stock.db"))
db.init_db()
from app.main import app
return TestClient(app)
def test_holdings_intel_endpoint(monkeypatch):
client = _client(monkeypatch)
r = client.get("/api/stock/holdings/intel")
assert r.status_code == 200
body = r.json()
assert "holdings" in body and "portfolio_health" in body
def test_holdings_intel_history_endpoint(monkeypatch):
client = _client(monkeypatch)
r = client.get("/api/stock/holdings/intel/history?ticker=005930")
assert r.status_code == 200
body = r.json()
assert body["ticker"] == "005930"
assert "history" in body
assert isinstance(body["history"], list)
def test_holdings_intel_run_endpoint(monkeypatch):
client = _client(monkeypatch)
r = client.post("/api/stock/holdings/intel/run")
assert r.status_code == 200
body = r.json()
assert body["ok"] is True
assert body["queued"] is True