MediaRouter / tests /test_database_migration_contracts.py
basyx's picture
Upload 437 files
7cc81cb verified
Raw
History Blame Contribute Delete
1.49 kB
from __future__ import annotations
import re
import unittest
from pathlib import Path
MIGRATION_FILES = sorted(Path("app/projects/migrations").glob("*.sql"))
ALLOWED_TABLES = {
"teams",
"team_members",
"invitations",
"project_collaborators",
"approval_workflows",
"approval_requests",
"review_comments",
"collaboration_activity",
"notification_preferences",
}
class MigrationContractTests(unittest.TestCase):
def test_latest_migration_adds_approval_request_workspace_integrity(self) -> None:
latest = MIGRATION_FILES[-1].read_text()
self.assertIn("alter table approval_requests", latest)
self.assertIn("add column if not exists workspace_id text", latest)
self.assertIn("alter column workspace_id set not null", latest)
self.assertIn("create index if not exists ix_approval_requests_workspace", latest)
def test_migrations_do_not_recreate_shared_tables(self) -> None:
counts: dict[str, int] = {}
for path in MIGRATION_FILES:
body = path.read_text()
for table in ALLOWED_TABLES:
counts[table] = counts.get(table, 0) + body.count(f"create table if not exists {table}")
for table, count in counts.items():
self.assertEqual(
count,
1,
f"Duplicate table creation detected for {table}: {count} migrations recreate it",
)
if __name__ == "__main__":
unittest.main()