40 lines
1.3 KiB
Python
40 lines
1.3 KiB
Python
from __future__ import annotations
|
|
|
|
import sqlite3
|
|
import tempfile
|
|
import unittest
|
|
from pathlib import Path
|
|
|
|
from agent_call.core import Store
|
|
from deploy.backup_sqlite import copy_database
|
|
from deploy.check_mock_config import check
|
|
from deploy.migrate import migrate
|
|
|
|
|
|
class AgentCallDeploymentTests(unittest.TestCase):
|
|
def test_mock_profile_and_sqlite_backup_restore(self) -> None:
|
|
self.assertEqual(check("docs/contracts/mock-profile.json"), [])
|
|
with tempfile.TemporaryDirectory() as directory:
|
|
source = Path(directory) / "source.sqlite3"
|
|
backup = Path(directory) / "backup.sqlite3"
|
|
store = Store(source)
|
|
with store.tx() as con:
|
|
con.execute(
|
|
"INSERT INTO tenants(tenant_id, tenant_key, created_at) VALUES(?,?,?)",
|
|
("t", "k", "now"),
|
|
)
|
|
copy_database(str(source), str(backup))
|
|
connection = sqlite3.connect(backup)
|
|
try:
|
|
row = connection.execute(
|
|
"SELECT tenant_key FROM tenants WHERE tenant_id='t'"
|
|
).fetchone()
|
|
finally:
|
|
connection.close()
|
|
self.assertEqual(row[0], "k")
|
|
self.assertEqual(migrate(str(source)), 0)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|