from __future__ import annotations from pathlib import Path import sys import unittest SRC_ROOT = Path(__file__).resolve().parents[2] / "src" if str(SRC_ROOT) not in sys.path: sys.path.insert(0, str(SRC_ROOT)) from ffx.model.migration import DatabaseVersionException, loadMigrationStep, migrateDatabase # noqa: E402 class MigrationTests(unittest.TestCase): def test_load_migration_step_returns_known_step(self): migrationStep = loadMigrationStep(2, 3) self.assertTrue(callable(migrationStep)) def test_migrate_database_raises_when_step_module_is_missing(self): updatedVersions = [] with self.assertRaises(DatabaseVersionException): migrateDatabase({}, 1, 2, lambda context, version: updatedVersions.append(version)) self.assertEqual([], updatedVersions) if __name__ == "__main__": unittest.main()