33 lines
806 B
Python
33 lines
806 B
Python
from __future__ import annotations
|
|
|
|
from clare.db import migrate, open_db
|
|
|
|
|
|
def test_migrate_is_idempotent() -> None:
|
|
conn = open_db(":memory:")
|
|
first = migrate(conn)
|
|
second = migrate(conn)
|
|
assert first == ["0001_initial", "0002_chat"]
|
|
assert second == [] # already applied
|
|
|
|
|
|
def test_schema_has_expected_tables() -> None:
|
|
conn = open_db(":memory:")
|
|
migrate(conn)
|
|
rows = conn.execute(
|
|
"SELECT name FROM sqlite_master WHERE type='table' ORDER BY name"
|
|
).fetchall()
|
|
names = {r[0] for r in rows}
|
|
expected = {
|
|
"schema_migrations",
|
|
"events",
|
|
"projects",
|
|
"tasks",
|
|
"assignments",
|
|
"sessions",
|
|
"groups",
|
|
"updates",
|
|
"chat_messages",
|
|
"task_splits",
|
|
}
|
|
assert expected <= names
|