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>
29 lines
1.7 KiB
Python
29 lines
1.7 KiB
Python
"""База хаба версии 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()
|