52 lines
1.4 KiB
Python
52 lines
1.4 KiB
Python
from app.database.base import Base
|
|
from app.models import ( # noqa: F401
|
|
AnomalyCase,
|
|
Conversation,
|
|
ConversationMessage,
|
|
OperationAudit,
|
|
ReviewRecord,
|
|
RiskAssessment,
|
|
RiskItem,
|
|
RiskModelConfig,
|
|
RolePermission,
|
|
StandardRule,
|
|
SupplierProfile,
|
|
UserAccount,
|
|
)
|
|
from sqlalchemy import BigInteger
|
|
|
|
|
|
def test_prd_core_tables_are_registered() -> None:
|
|
assert set(Base.metadata.tables) == {
|
|
"anomaly_cases",
|
|
"conversations",
|
|
"conversation_messages",
|
|
"operation_audits",
|
|
"review_records",
|
|
"risk_assessments",
|
|
"risk_items",
|
|
"risk_model_configs",
|
|
"role_permissions",
|
|
"standard_rules",
|
|
"supplier_profiles",
|
|
"user_accounts",
|
|
}
|
|
|
|
|
|
def test_prd_tables_use_bigint_primary_keys() -> None:
|
|
for table in Base.metadata.sorted_tables:
|
|
assert isinstance(table.c.id.type, BigInteger)
|
|
assert table.c.id.primary_key
|
|
|
|
|
|
def test_review_and_standard_foreign_keys_are_registered() -> None:
|
|
review_targets = {
|
|
foreign_key.target_fullname for foreign_key in Base.metadata.tables["review_records"].foreign_keys
|
|
}
|
|
anomaly_targets = {
|
|
foreign_key.target_fullname for foreign_key in Base.metadata.tables["anomaly_cases"].foreign_keys
|
|
}
|
|
|
|
assert review_targets == {"risk_items.id", "anomaly_cases.id"}
|
|
assert anomaly_targets == {"standard_rules.id"}
|