feat(lotto): POST /api/lotto/purchase/bulk — 결정카드 원클릭 기록
This commit is contained in:
53
lotto/tests/test_bulk_purchase.py
Normal file
53
lotto/tests/test_bulk_purchase.py
Normal file
@@ -0,0 +1,53 @@
|
||||
import sys, os
|
||||
sys.path.insert(0, os.path.join(os.path.dirname(__file__), ".."))
|
||||
|
||||
import pytest
|
||||
from app import db
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def setup_db(tmp_path, monkeypatch):
|
||||
test_db = tmp_path / "test.db"
|
||||
monkeypatch.setattr(db, "DB_PATH", str(test_db))
|
||||
db.init_db()
|
||||
yield
|
||||
|
||||
|
||||
def _seed_briefing(drw=1153):
|
||||
picks = {
|
||||
"core": [{"numbers": [1, 2, 3, 4, 5, 6], "risk_tag": "안정", "reason": "x"}] * 5,
|
||||
"bonus": [{"numbers": [7, 8, 9, 10, 11, 12], "risk_tag": "균형", "reason": "x"}] * 5,
|
||||
"extended": [{"numbers": [13, 14, 15, 16, 17, 18], "risk_tag": "공격", "reason": "x"}] * 5,
|
||||
"pool": [{"numbers": [19, 20, 21, 22, 23, 24], "risk_tag": "안정", "reason": "x"}] * 5,
|
||||
}
|
||||
db.save_briefing({
|
||||
"draw_no": drw, "picks": picks,
|
||||
"narrative": {"headline": "h", "summary_3lines": ["a", "b", "c"]},
|
||||
"confidence": 70, "model": "test",
|
||||
})
|
||||
|
||||
|
||||
def test_bulk_core_inserts_5():
|
||||
_seed_briefing()
|
||||
r = db.bulk_insert_purchases_from_briefing(1153, "core", 5000)
|
||||
assert r["ok"] and r["sets"] == 5
|
||||
rows = db.get_purchases(draw_no=1153)
|
||||
assert len(rows) == 5
|
||||
assert all(row["source_strategy"] == "curator_core" for row in rows)
|
||||
|
||||
|
||||
def test_bulk_full_inserts_20():
|
||||
_seed_briefing()
|
||||
r = db.bulk_insert_purchases_from_briefing(1153, "full", 20000)
|
||||
assert r["ok"] and r["sets"] == 20
|
||||
|
||||
|
||||
def test_bulk_unknown_tier_mode():
|
||||
_seed_briefing()
|
||||
r = db.bulk_insert_purchases_from_briefing(1153, "garbage", 1000)
|
||||
assert r["ok"] is False and "garbage" in r["reason"]
|
||||
|
||||
|
||||
def test_bulk_no_briefing():
|
||||
r = db.bulk_insert_purchases_from_briefing(9999, "core", 5000)
|
||||
assert r["ok"] is False and "not found" in r["reason"]
|
||||
Reference in New Issue
Block a user