dc5bff617d
Followup #4 from the SP37 final-state tracker. The previous BACKFILL_SQL constant in test_migration_0020.py was a hand-copied duplicate of the migration's UPDATE statement. A future contributor could edit one without the other and the test would silently replay a different SQL than production — defeating the regression. Fix: tests now load the migration file at test time and extract its UPDATE via the same splitter db_migrate.run() uses (strip '--' comments, split on ';'). The test can never disagree with what production runs. Changes: * test_migration_0020.py: - Remove the hand-copied BACKFILL_SQL constant - Add _migration_0020_path(), _extract_update_statements(), and _load_migration_0020_backfill_sql() helpers - Replace 3 BACKFILL_SQL references with helper calls * test_migration_0020_no_drift.py (new, 3 tests): - test_migration_0020_backfill_sql_uses_migration_file (asserts the extracted SQL targets the right column + path) - test_migration_0020_backfill_sql_is_non_empty_single_statement - test_migration_0020_has_exactly_one_update (guardrail against future contributors adding a second UPDATE — the extraction fails loudly so the test author can decide which is the backfill) Tests: 43/43 pass in 1.46s (full SP37 followup chain). Imports across test files match the existing pattern (test_store.py imports from test_store_reconcile.py).