34 lines
1.2 KiB
Python
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}")
|