test: B8 收敛——sqlite 测试 DDL 单一事实源 _ddl.py(10 文件 45 处手写 DDL 清零)+localtime 时区收敛(B5 评审 P3-4, utcnow 边界修复)+测试内遗留建表清理, 196 绿; docs 同步 B8 完成状态

This commit is contained in:
2026-09-06 23:37:03 +08:00
parent e7bd8880e2
commit c6ad0885d3
12 changed files with 62 additions and 515 deletions
+4 -83
View File
@@ -7,8 +7,9 @@ sqlite StaticPool 内存库;名单阈值边界用可控 threshold 值驱动(
from datetime import datetime
import pytest
from sqlalchemy import create_engine, text
from sqlalchemy.pool import StaticPool
from sqlalchemy import text
from _ddl import create_sqlite_engine
from app.repository.core_ro import CoreReadOnlyRepository
from app.repository.risk_repository import RiskRepository
@@ -32,88 +33,8 @@ class FakePublisher:
@pytest.fixture()
def env():
engine = create_engine(
"sqlite://",
poolclass=StaticPool,
connect_args={"check_same_thread": False},
)
engine = create_sqlite_engine() # DDL 单一事实源(B4 评审 P3-12)
with engine.begin() as conn:
conn.execute(
text(
"""
CREATE TABLE risk_aml_list (
id INTEGER PRIMARY KEY AUTOINCREMENT,
list_id VARCHAR(64), list_type VARCHAR(16), full_name VARCHAR(128),
match_threshold REAL, source VARCHAR(64), list_version VARCHAR(16),
effective_date DATE, is_active TINYINT DEFAULT 1,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)
"""
)
)
conn.execute(
text(
"""
CREATE TABLE core_customer (
customer_id VARCHAR(64) PRIMARY KEY, display_name VARCHAR(128),
age INTEGER, occupation VARCHAR(64), open_date DATE, is_active TINYINT DEFAULT 1
)
"""
)
)
conn.execute(
text(
"""
CREATE TABLE core_customer_risk (
customer_id VARCHAR(64), risk_code VARCHAR(8), evaluated_at TIMESTAMP
)
"""
)
)
conn.execute(
text(
"""
CREATE TABLE risk_alert (
alert_id VARCHAR(64) PRIMARY KEY, trace_id VARCHAR(64),
customer_id VARCHAR(64), trade_id VARCHAR(64), alert_type VARCHAR(16),
triggered_rules TEXT, risk_score INTEGER,
status VARCHAR(24) DEFAULT 'pending_review', payload TEXT,
handler_id VARCHAR(64), handler_result VARCHAR(64),
handler_comment VARCHAR(512),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, handled_at TIMESTAMP
)
"""
)
)
conn.execute(
text(
"""
CREATE TABLE audit_log (
id INTEGER PRIMARY KEY, trace_id VARCHAR(64), event_type VARCHAR(64),
agent_type VARCHAR(16), actor_id VARCHAR(64), customer_id VARCHAR(64),
rule_id VARCHAR(64), input_summary TEXT, decision VARCHAR(64),
risk_score INTEGER, handler_id VARCHAR(64), handler_result VARCHAR(64),
handler_comment VARCHAR(512), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)
"""
)
)
conn.execute(
text(
"""
CREATE TABLE customer_profile_l3 (
customer_id VARCHAR(64) PRIMARY KEY,
monitor_tier VARCHAR(16) NOT NULL,
risk_score INTEGER,
score_dimensions TEXT,
monitor_tags TEXT,
last_alert_id VARCHAR(64),
computed_at TIMESTAMP NOT NULL,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)
"""
)
)
# 名单:默认阈值 0.85 两行、严格 1.0 一行、行阈值覆盖(0.5/0.99 同名对)一停用行
conn.execute(
text(