From 6f9be959c35db26066541c77bed73ae616c1bce1 Mon Sep 17 00:00:00 2001 From: Karel van Klink <karel.vanklink@geant.org> Date: Tue, 19 Mar 2024 10:37:53 +0100 Subject: [PATCH] Add unit test that prevents branching db migrations --- test/db/__init__.py | 0 test/db/test_migrations.py | 16 ++++++++++++++++ tox.ini | 2 +- 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 test/db/__init__.py create mode 100644 test/db/test_migrations.py diff --git a/test/db/__init__.py b/test/db/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/db/test_migrations.py b/test/db/test_migrations.py new file mode 100644 index 00000000..cdc6790b --- /dev/null +++ b/test/db/test_migrations.py @@ -0,0 +1,16 @@ +import pytest +from alembic.migration import MigrationContext +from sqlalchemy import create_engine + + +@pytest.mark.noautofixt() +def test_migrations_no_branches(db_uri): + engine = create_engine(db_uri) + conn = engine.connect() + context = MigrationContext.configure(conn) + + assert len(context.get_current_heads()) == 1, ( + "\n\n!!!\n\nDetected a branching of db migrations. This is caused by multiple `down_revision`s referring to the" + " same migration.\n\nPlease resolve this by updating either one of these migrations: " + f"{context.get_current_heads()}.\n\n!!!\n\n" + ) diff --git a/tox.ini b/tox.ini index 02437f72..de7627e2 100644 --- a/tox.ini +++ b/tox.ini @@ -13,7 +13,7 @@ deps = -r requirements.txt commands = - ruff --respect-gitignore --preview . + ruff check --respect-gitignore --preview . ruff format --respect-gitignore --preview --check . mypy . coverage erase -- GitLab