53 lines
1.4 KiB
Python
53 lines
1.4 KiB
Python
from app.model.risk import RiskLoginRecord, RiskUser, RiskWorkOrder
|
|||
|
|
|
||
|
|
|
||
|
|
def test_risk_user_maps_existing_identity_table_without_sensitive_credentials() -> None:
|
||
|
|
columns = set(RiskUser.__table__.columns.keys())
|
||
|
|
|
||
|
|
assert RiskUser.__tablename__ == "sys_user"
|
||
|
|
assert {
|
||
|
|
"id",
|
||
|
|
"user_no",
|
||
|
|
"username",
|
||
|
|
"user_type",
|
||
|
|
"customer_tier",
|
||
|
|
"investor_type",
|
||
|
|
"professional_investor_status",
|
||
|
|
"status",
|
||
|
|
} <= columns
|
||
|
|
assert "password_hash" not in columns
|
||
|
|
assert "email" not in columns
|
||
|
|
|
||
|
|
|
||
|
|
def test_login_record_maps_device_and_result_fields() -> None:
|
||
|
|
columns = set(RiskLoginRecord.__table__.columns.keys())
|
||
|
|
|
||
|
|
assert RiskLoginRecord.__tablename__ == "sys_login_record"
|
||
|
|
assert {
|
||
|
|
"user_id",
|
||
|
|
"login_at",
|
||
|
|
"login_result",
|
||
|
|
"ip_region",
|
||
|
|
"device_id",
|
||
|
|
"is_common_device",
|
||
|
|
"failure_reason",
|
||
|
|
} <= columns
|
||
|
|
|
||
|
|
|
||
|
|
def test_work_order_maps_risk_and_transaction_compatibility_fields() -> None:
|
||
|
|
columns = set(RiskWorkOrder.__table__.columns.keys())
|
||
|
|
|
||
|
|
assert RiskWorkOrder.__tablename__ == "biz_work_order"
|
||
|
|
assert {
|
||
|
|
"alert_id",
|
||
|
|
"work_order_type",
|
||
|
|
"order_type",
|
||
|
|
"product_id",
|
||
|
|
"channel",
|
||
|
|
"risk_disclosure_ack_at",
|
||
|
|
"second_confirmation_at",
|
||
|
|
"recording_reference",
|
||
|
|
"request_detail",
|
||
|
|
"handle_result",
|
||
|
|
} <= columns
|