"""Tests for migration system.""" import os import sqlite3 import tempfile from migrations.migrate import migrate_down, migrate_up def test_migrate_up(): with tempfile.NamedTemporaryFile(suffix=".db", delete=False) as f: db_path = f.name try: count = migrate_up(db_path) assert count >= 1 conn = sqlite3.connect(db_path) tables = conn.execute("SELECT name FROM sqlite_master WHERE type='table'").fetchall() table_names = [t[0] for t in tables] assert "sessions" in table_names assert "ethical_lessons" in table_names assert "consequences" in table_names conn.close() finally: os.unlink(db_path) def test_migrate_down(): with tempfile.NamedTemporaryFile(suffix=".db", delete=False) as f: db_path = f.name try: migrate_up(db_path) result = migrate_down(db_path) assert result is True finally: os.unlink(db_path) def test_migrate_idempotent(): with tempfile.NamedTemporaryFile(suffix=".db", delete=False) as f: db_path = f.name try: count1 = migrate_up(db_path) count2 = migrate_up(db_path) assert count1 >= 1 assert count2 == 0 finally: os.unlink(db_path)