from pathlib import Path def test_live_migration_smoke_checks_postgis_after_migrations() -> None: script = Path(__file__).resolve().parents[2] / "scripts" / "live_migration_smoke.sh" content = script.read_text(encoding="utf-8") upgrade_index = content.index("-m alembic upgrade head") postgis_index = content.index("PostGIS_Version()") assert upgrade_index < postgis_index def test_live_migration_smoke_checks_required_runtime_schema_objects() -> None: script = Path(__file__).resolve().parents[2] / "scripts" / "live_migration_smoke.sh" content = script.read_text(encoding="utf-8") assert "to_regclass(:object_name)" in content assert '"public.projects"' in content assert '"public.datasets"' in content assert '"public.vector_features"' in content assert '"public.detections"' in content assert '"public.segmentations"' in content assert '"public.ix_segmentations_geometry"' in content def test_live_migration_smoke_reports_collation_version_mismatch_without_failing() -> None: script = Path(__file__).resolve().parents[2] / "scripts" / "live_migration_smoke.sh" content = script.read_text(encoding="utf-8") assert "pg_database_collation_actual_version(oid)" in content assert "COLLATION_VERSION_MISMATCH" in content assert "REFRESH COLLATION VERSION" in content assert "Database collation version: ok" in content