fix(db): sync default_auth_strategy on platform reseed
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
68
tests/test_seed_platforms_upgrade.py
Normal file
68
tests/test_seed_platforms_upgrade.py
Normal file
@@ -0,0 +1,68 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
import shutil
|
||||
import sys
|
||||
import tempfile
|
||||
|
||||
import pytest
|
||||
|
||||
_scripts = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), "scripts")
|
||||
if _scripts not in sys.path:
|
||||
sys.path.insert(0, _scripts)
|
||||
|
||||
from db.connection import get_conn, init_db # noqa: E402
|
||||
from util.platforms import seed_platforms # noqa: E402
|
||||
|
||||
|
||||
@pytest.fixture()
|
||||
def iso_seed_env(monkeypatch):
|
||||
tmp = tempfile.mkdtemp(prefix="seed_plat_")
|
||||
data_root = os.path.join(tmp, "claw-data")
|
||||
os.makedirs(data_root)
|
||||
uid = "seed_user_1"
|
||||
monkeypatch.setenv("JIANGCHANG_DATA_ROOT", data_root)
|
||||
monkeypatch.setenv("JIANGCHANG_USER_ID", uid)
|
||||
monkeypatch.setenv("CLAW_DATA_ROOT", data_root)
|
||||
monkeypatch.setenv("CLAW_USER_ID", uid)
|
||||
yield
|
||||
shutil.rmtree(tmp, ignore_errors=True)
|
||||
|
||||
|
||||
def _default_auth_maersk() -> str | None:
|
||||
conn = get_conn()
|
||||
try:
|
||||
row = conn.execute(
|
||||
"SELECT default_auth_strategy FROM platforms WHERE platform_key = ?",
|
||||
("maersk",),
|
||||
).fetchone()
|
||||
return row[0] if row else None
|
||||
finally:
|
||||
conn.close()
|
||||
|
||||
|
||||
def test_default_auth_strategy_filled_on_first_seed(iso_seed_env):
|
||||
init_db()
|
||||
conn = get_conn()
|
||||
try:
|
||||
seed_platforms(conn)
|
||||
finally:
|
||||
conn.close()
|
||||
assert _default_auth_maersk() == "qr_code_manual"
|
||||
|
||||
|
||||
def test_default_auth_strategy_updated_on_reseed(iso_seed_env):
|
||||
init_db()
|
||||
conn = get_conn()
|
||||
try:
|
||||
seed_platforms(conn)
|
||||
conn.execute(
|
||||
"UPDATE platforms SET default_auth_strategy = ? WHERE platform_key = ?",
|
||||
("password_auto", "maersk"),
|
||||
)
|
||||
conn.commit()
|
||||
seed_platforms(conn)
|
||||
finally:
|
||||
conn.close()
|
||||
assert _default_auth_maersk() == "qr_code_manual"
|
||||
Reference in New Issue
Block a user