69 lines
1.8 KiB
Python
69 lines
1.8 KiB
Python
# -*- 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"
|