Files
2026-08-25 08:39:46 +02:00

32 lines
1.0 KiB
Python

## Copyright © 2026 Olaf Kolkman
## SPDX-License-Identifier: GPL-3.0-or-later
import sqlite3
from backend.app.database import DEFAULT_TAGS, apply_migrations, get_schema_version, seed_default_tags
def test_database_migrations_are_versioned_and_idempotent():
connection = sqlite3.connect(':memory:')
apply_migrations(connection)
assert get_schema_version(connection) == 4
tables = {
row[0]
for row in connection.execute(
"SELECT name FROM sqlite_master WHERE type = 'table'"
)
}
assert {
'users', 'tokens', 'links', 'plugins', 'user_plugin_config', 'tags', 'link_tags'
} <= tables
columns = {row[1] for row in connection.execute('PRAGMA table_info(tags)')}
assert 'created_by' in columns
seed_default_tags(connection)
seeded_tags = {row[0] for row in connection.execute('SELECT name FROM tags')}
assert set(DEFAULT_TAGS) <= seeded_tags
apply_migrations(connection)
assert get_schema_version(connection) == 4
connection.close()