sdlc-hub/tests/v6db.py
Andrey Epifancev 43c43ade81 Миграция v7: токены и статус по агентам модулей (#91)
tokens -> {client, agents: {модуль: токен}}, agent_status по агентам
(ключ agent, last_call_at), настройки агента и маршруты agent-scope по
модулю токена, min_agent_version переехал в модуль jira.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 00:45:44 +04:00

29 lines
1.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""База хаба версии 6 для тестов миграции v7: схема и умолчания настроек берутся из замороженных эталонов
(tests/fixtures/schema_v6.json, settings_v6.json), а не из кода, который со временем уйдёт вперёд."""
import json
import sqlite3
from pathlib import Path
FIXTURES = Path(__file__).parent / "fixtures"
def make_v6_db(path, *, agent_token="T-agent", client_token="T-client") -> None:
schema = json.loads((FIXTURES / "schema_v6.json").read_text(encoding="utf-8"))
defaults = json.loads((FIXTURES / "settings_v6.json").read_text(encoding="utf-8"))["defaults"]
conn = sqlite3.connect(str(path), isolation_level=None)
try:
for kind in ("table", "index"): # индексы — после таблиц
for typ, _name, sql in schema["objects"]:
if typ == kind and sql:
conn.execute(sql)
values = {**defaults, "schema_version": 6, "tokens": {"agent": agent_token, "client": client_token}}
for key, value in values.items():
conn.execute("INSERT INTO setting(key, value) VALUES (?, ?)", (key, json.dumps(value, ensure_ascii=False)))
conn.execute("INSERT INTO agent_status(id, agent_version) VALUES (1, '14')")
conn.execute("INSERT INTO project(label, name, board_id, board_type, created_at) VALUES "
"('AWPCA', 'АРМ КА', 4216, 'scrum', '2026-10-01T00:00:00+00:00')")
conn.execute("INSERT INTO project(label, name, board_id, board_type, created_at) VALUES "
"('sfm_kedr', 'sfm_kedr', NULL, NULL, '2026-10-02T00:00:00+00:00')")
finally:
conn.close()