fix: add init-db CLI for host install/upgrade metadata seed
All checks were successful
技能自动化发布 / release (push) Successful in 6s
All checks were successful
技能自动化发布 / release (push) Successful in 6s
This commit is contained in:
@@ -23,6 +23,7 @@ def test_usage_includes_all_account_subcommands():
|
||||
assert r.returncode == 1
|
||||
usage = r.stdout
|
||||
for cmd in (
|
||||
"init-db",
|
||||
"init-master-key",
|
||||
"export-credentials",
|
||||
"import-credentials",
|
||||
@@ -35,3 +36,44 @@ def test_usage_includes_all_account_subcommands():
|
||||
assert cmd in usage, f"USAGE 缺少 {cmd}"
|
||||
assert "--ensure" in usage
|
||||
assert "--login-id" in usage
|
||||
|
||||
|
||||
def test_init_db_cli_succeeds(fake_env):
|
||||
"""宿主调用的 init-db 必须成功并写入展示元数据。"""
|
||||
import json
|
||||
|
||||
env = {
|
||||
**os.environ,
|
||||
"PYTHONPATH": _scripts,
|
||||
"JIANGCHANG_DATA_ROOT": fake_env["data_root"],
|
||||
"JIANGCHANG_USER_ID": fake_env["user_id"],
|
||||
}
|
||||
r = subprocess.run(
|
||||
[sys.executable, "main.py", "init-db"],
|
||||
capture_output=True,
|
||||
text=True,
|
||||
env=env,
|
||||
cwd=_scripts,
|
||||
)
|
||||
assert r.returncode == 0, r.stdout + r.stderr
|
||||
payload = json.loads(r.stdout.strip().splitlines()[-1])
|
||||
assert payload.get("ok") is True
|
||||
assert payload.get("skill") == "account-manager"
|
||||
assert payload.get("db_path")
|
||||
|
||||
from db.connection import get_conn
|
||||
|
||||
conn = get_conn()
|
||||
try:
|
||||
cur = conn.cursor()
|
||||
cur.execute("SELECT COUNT(*) FROM _jiangchang_columns")
|
||||
assert int(cur.fetchone()[0]) > 0
|
||||
cur.execute(
|
||||
"""
|
||||
SELECT display_name FROM _jiangchang_columns
|
||||
WHERE table_name = 'accounts' AND column_name = 'role'
|
||||
"""
|
||||
)
|
||||
assert cur.fetchone()[0] == "角色"
|
||||
finally:
|
||||
conn.close()
|
||||
|
||||
Reference in New Issue
Block a user