feat(stock): GET /api/stock/holidays endpoint (SP-10 task-watcher용)
holidays.json(list) 노출. task-watcher가 휴장일 판정에 조회. 인증 불필요. 주말은 task-watcher가 weekday로 별도 판정. Plan-B-Infra Phase 1. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -162,6 +162,17 @@ def get_indices():
|
|||||||
"""주요 지표(KOSPI 등) 실시간 크롤링 조회"""
|
"""주요 지표(KOSPI 등) 실시간 크롤링 조회"""
|
||||||
return fetch_major_indices()
|
return fetch_major_indices()
|
||||||
|
|
||||||
|
@app.get("/api/stock/holidays")
|
||||||
|
def get_holidays():
|
||||||
|
"""task-watcher가 조회하는 휴장일 목록. holidays.json(list) 노출 (인증 불필요)."""
|
||||||
|
try:
|
||||||
|
with open(_HOLIDAYS_PATH, encoding="utf-8") as f:
|
||||||
|
data = json.load(f)
|
||||||
|
holidays = data if isinstance(data, list) else []
|
||||||
|
except (OSError, ValueError):
|
||||||
|
holidays = []
|
||||||
|
return {"holidays": holidays}
|
||||||
|
|
||||||
@app.post("/api/stock/scrap")
|
@app.post("/api/stock/scrap")
|
||||||
def trigger_scrap():
|
def trigger_scrap():
|
||||||
"""수동 스크랩 트리거"""
|
"""수동 스크랩 트리거"""
|
||||||
|
|||||||
22
stock/app/test_holidays_endpoint.py
Normal file
22
stock/app/test_holidays_endpoint.py
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
"""GET /api/stock/holidays — task-watcher 휴장일 조회용."""
|
||||||
|
from fastapi.testclient import TestClient
|
||||||
|
from app.main import app
|
||||||
|
|
||||||
|
client = TestClient(app)
|
||||||
|
|
||||||
|
|
||||||
|
def test_holidays_returns_list():
|
||||||
|
r = client.get("/api/stock/holidays")
|
||||||
|
assert r.status_code == 200
|
||||||
|
data = r.json()
|
||||||
|
assert "holidays" in data
|
||||||
|
assert isinstance(data["holidays"], list)
|
||||||
|
|
||||||
|
|
||||||
|
def test_holidays_entries_are_iso_dates():
|
||||||
|
r = client.get("/api/stock/holidays")
|
||||||
|
holidays = r.json()["holidays"]
|
||||||
|
if holidays:
|
||||||
|
import datetime as dt
|
||||||
|
for h in holidays[:5]:
|
||||||
|
dt.date.fromisoformat(h) # raise 안 하면 통과
|
||||||
Reference in New Issue
Block a user