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()