Files
ewoooc/tests/test_migration_metadata_coverage.py
OoO 1652ff3a59
All checks were successful
CD Pipeline / deploy (push) Successful in 57s
補齊核心業務表 migration baseline
2026-05-12 23:24:14 +08:00

28 lines
735 B
Python

import re
from pathlib import Path
from database.manager import Base
ROOT = Path(__file__).resolve().parents[1]
def _migration_created_tables():
tables = set()
for path in (ROOT / "migrations").glob("*.sql"):
text = path.read_text(encoding="utf-8", errors="ignore")
for match in re.finditer(
r"CREATE\s+TABLE\s+(?:IF\s+NOT\s+EXISTS\s+)?(?:public\.)?([\w_]+)",
text,
re.IGNORECASE,
):
tables.add(match.group(1))
return tables
def test_all_orm_metadata_tables_have_create_table_migration():
metadata_tables = set(Base.metadata.tables)
migration_tables = _migration_created_tables()
assert metadata_tables - migration_tables == set()