Initial commit

This commit is contained in:
Leo Vasanko
2026-06-12 19:18:15 +00:00
commit afebad72df
34 changed files with 3143 additions and 0 deletions
+53
View File
@@ -0,0 +1,53 @@
from types import ModuleType
from kanta.migrate import MigrationRegistry
def test_register_and_apply():
reg = MigrationRegistry()
@reg.register
def migrate_v1(d, ctx):
d["version"] = 1
@reg.register
def migrate_v2(d, ctx):
d["version"] = 2
state = {}
new_ver = reg.apply(state, current_version=0, silent=True)
assert new_ver == 2
assert state["version"] == 2
def test_no_migrations_needed():
reg = MigrationRegistry()
@reg.register
def migrate_v1(d, ctx):
d["x"] = 1
state = {"x": 1}
new_ver = reg.apply(state, current_version=1, silent=True)
assert new_ver == 1
def test_from_module():
mod = ModuleType("fake_migrations")
def migrate_v1(d, ctx):
d["v"] = 1
def migrate_v2(d, ctx):
d["v"] = 2
mod.__dict__["migrate_v1"] = migrate_v1
mod.__dict__["migrate_v2"] = migrate_v2
reg = MigrationRegistry.from_module(mod)
assert reg.dbver == 2
state = {}
new_ver = reg.apply(state, current_version=0, silent=True)
assert new_ver == 2
assert state["v"] == 2