Files
diary-news/scripts/test_auth.py
2026-06-11 17:24:46 +08:00

34 lines
1.2 KiB
Python

"""模拟:跳过 SSH,直接调 GROUPS 的 lambda"""
import sys
sys.path.insert(0, r'D:\selftools\diary-news\scripts')
# 绕过 SSH:让 Remote.local 直接走本机 + 接受任意参数
import healthcheck as hc
# 关键:模拟 main 跑过的副作用
hc.COMPOSE_DIR = "/srv/news"
hc.API_BASE = "http://127.0.0.1/api/v1/healthz"
hc.SAMPLE_N = 3
# 直接给 AUTH_TOKEN 赋值,看 lambda 能不能取到
hc.AUTH_TOKEN = "fake-token-123"
# mock Remote 让 check 函数不真发请求
class FakeRemote:
def run(self, cmd, timeout=10):
# 返回一些可解析的内容
if "curl" in cmd and "articles" in cmd and "id=" not in cmd:
return 0, '{"items":[{"id":542,"title":"x","title_zh":"X","translation_status":"ok","translation_engine":"tencent"}],"total":1,"total_pages":1}\n---HTTP=200---\n', ""
return 0, "ok", ""
remote = FakeRemote()
# 直接调 GROUPS['app'] 里那两个会读 AUTH_TOKEN 的
for name, fn in hc.GROUPS['app']:
if "Feed API" in name or "详情页" in name:
try:
c = fn(remote)
print(f"{name}: ok ok={c.ok} summary={c.summary}")
except Exception as e:
print(f"{name}: EXC {type(e).__name__}: {e}")