test: B8 收敛——sqlite 测试 DDL 单一事实源 _ddl.py(10 文件 45 处手写 DDL 清零)+localtime 时区收敛(B5 评审 P3-4, utcnow 边界修复)+测试内遗留建表清理, 196 绿; docs 同步 B8 完成状态
This commit is contained in:
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user