Files
re-xxm/tests/test_favsort_config.py

63 lines
1.9 KiB
Python

# -*- coding: utf-8 -*-
"""favsort 写账号配置隔离测试: uv run python tests/test_favsort_config.py"""
import json
import os
import sys
import tempfile
from pathlib import Path
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
sys.stdout.reconfigure(encoding="utf-8")
import favsort # noqa: E402
def test_loads_write_account_only():
with tempfile.TemporaryDirectory() as tmp:
path = Path(tmp) / "config.json"
path.write_text(json.dumps({
"bilibili": {
"read": {"mid": 11, "csrf": "read-csrf", "cookie": "read-cookie"},
"write": {"mid": 22, "csrf": "write-csrf", "cookie": "write-cookie"},
},
"overrides": {"1": {"mid": 2, "name": "UP"}},
}), encoding="utf-8")
old = favsort.CONFIG_PATH
favsort.CONFIG_PATH = str(path)
try:
cfg = favsort.load_config()
finally:
favsort.CONFIG_PATH = old
assert cfg["mid"] == 22
assert cfg["csrf"] == "write-csrf"
assert cfg["cookie"] == "write-cookie"
assert cfg["overrides"] == {"1": {"mid": 2, "name": "UP"}}
def test_rejects_flat_config():
with tempfile.TemporaryDirectory() as tmp:
path = Path(tmp) / "config.json"
path.write_text(json.dumps({"mid": 1, "csrf": "x", "cookie": "y"}), encoding="utf-8")
old = favsort.CONFIG_PATH
favsort.CONFIG_PATH = str(path)
try:
try:
favsort.load_config()
except SystemExit as exc:
assert "bilibili.write" in str(exc)
else:
raise AssertionError("flat config 必须拒绝")
finally:
favsort.CONFIG_PATH = old
def main():
test_loads_write_account_only()
test_rejects_flat_config()
print("OK: favsort 仅使用 bilibili.write 配置测试全部通过")
if __name__ == "__main__":
main()