57 lines
1.5 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",
"anomaly_case_suppliers",
"conversations",
"integration_assessments",
"integration_nonces",
"conversation_messages",
"operation_audits",
"review_records",
"risk_assessments",
"risk_items",
"risk_model_configs",
"purchase_order_lines",
"role_permissions",
"standard_rules",
"supplier_profiles",
"supplier_master",
"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"}