55 lines
1.6 KiB
Python
55 lines
1.6 KiB
Python
# -*- coding: utf-8 -*-
|
||
"""delete id 会删库记录和硬盘 Profile,避免假删除残留登录态。"""
|
||
from __future__ import annotations
|
||
|
||
import os
|
||
|
||
from db.accounts_repo import find_accounts, get_account_by_id
|
||
|
||
|
||
def _add_web(**kwargs):
|
||
from service.account_service import cmd_account_add_web
|
||
|
||
defaults = dict(
|
||
platform_input="maersk",
|
||
login_id="demo@maersk.com",
|
||
login_id_type="email",
|
||
label="Maersk delete test",
|
||
tenant_id="tenant-demo",
|
||
environment="simulator",
|
||
role="booking",
|
||
provider_code=None,
|
||
url=None,
|
||
extra_json_str=None,
|
||
profile_dir_override=None,
|
||
)
|
||
defaults.update(kwargs)
|
||
cmd_account_add_web(**defaults)
|
||
|
||
|
||
def test_delete_by_id_removes_row_and_profile(clean_db, fake_env):
|
||
from service.account_service import cmd_delete_by_id
|
||
|
||
_add_web()
|
||
acc = find_accounts(platform_key="maersk")[0]
|
||
profile_dir = acc["profile_dir"]
|
||
marker = os.path.join(profile_dir, "Default", "Cookies")
|
||
os.makedirs(os.path.dirname(marker), exist_ok=True)
|
||
with open(marker, "w", encoding="utf-8") as handle:
|
||
handle.write("session")
|
||
assert os.path.isfile(marker)
|
||
|
||
cmd_delete_by_id(acc["id"])
|
||
|
||
assert get_account_by_id(acc["id"]) is None
|
||
assert find_accounts(platform_key="maersk") == []
|
||
assert not os.path.exists(profile_dir)
|
||
|
||
|
||
def test_delete_by_id_missing_account(clean_db, capsys):
|
||
from service.account_service import cmd_delete_by_id
|
||
|
||
cmd_delete_by_id(99999)
|
||
out = capsys.readouterr().out
|
||
assert "ERROR:ACCOUNT_NOT_FOUND" in out
|