llm/tests/test_migrate.py

48 lines
1.3 KiB
Python

from llm.migrations import migrate
import sqlite_utils
def test_migrate_blank():
db = sqlite_utils.Database(memory=True)
migrate(db)
assert set(db.table_names()) == {"_llm_migrations", "log"}
assert db["log"].schema == (
'CREATE TABLE "log" (\n'
" [id] INTEGER PRIMARY KEY,\n"
" [model] TEXT,\n"
" [timestamp] TEXT,\n"
" [prompt] TEXT,\n"
" [system] TEXT,\n"
" [response] TEXT,\n"
" [chat_id] INTEGER REFERENCES [log]([id])\n"
")"
)
def test_migrate_from_original_schema():
db = sqlite_utils.Database(memory=True)
db["log"].insert(
{
"provider": "provider",
"system": "system",
"prompt": "prompt",
"chat_id": None,
"response": "response",
"model": "model",
"timestamp": "timestamp",
},
)
migrate(db)
assert set(db.table_names()) == {"_llm_migrations", "log"}
schema = db["log"].schema
assert schema == (
'CREATE TABLE "log" (\n'
" [id] INTEGER PRIMARY KEY,\n"
" [model] TEXT,\n"
" [timestamp] TEXT,\n"
" [prompt] TEXT,\n"
" [system] TEXT,\n"
" [response] TEXT,\n"
" [chat_id] INTEGER REFERENCES [log]([id])\n"
")"
)