28 lines
735 B
Python
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()
|