muse-agent-example/humanization/tests/test_load_db_pg_smoke.py
zizi 061010ba1b 框架: 共享运行时装成可安装包,切断 Skill 之间的 sys.path 互指
被多个 Skill 或看板消费的连接、模型、嵌入、Claude 运行时与声音账入口
各只保留一份实现;Skill 只留 CLI/落库,看板只读 muse-db,门禁锁死跨域注入。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 00:45:20 +08:00

47 lines
1.6 KiB
Python

#!/usr/bin/env python3
"""真实 PostgreSQL 规则库冒烟:数据库权威必须与文件种子指纹一致(需显式授权)。"""
import os
import pathlib
import sys
PROJECT_ROOT = pathlib.Path(__file__).resolve().parents[2]
sys.path.insert(0, str(PROJECT_ROOT / "humanization" / "src"))
from deai import load, load_db # noqa: E402
def main():
if os.getenv("MUSE_REAL_PG_RULE_SMOKE") != "1":
print("BLOCKED: set MUSE_REAL_PG_RULE_SMOKE=1 to run the real PostgreSQL rule smoke")
return 2
from muse_db import connect # noqa: E402
file_samples = load.load_samples()
file_rules = load.load_rules(samples=file_samples)
file_version = load.rule_library_version(file_rules)
with connect(readonly=True) as conn:
db_samples = load_db.load_samples_from_db(conn)
db_rules = load_db.load_rules_from_db(conn, samples=db_samples)
db_version = load.rule_library_version(db_rules)
problems = []
if db_rules != file_rules:
problems.append("规则内容与文件种子不一致")
if db_samples != file_samples:
problems.append("样例内容与文件种子不一致")
if db_version != file_version:
problems.append(f"规则库指纹不一致: db={db_version} files={file_version}")
if problems:
print("FAIL: " + "; ".join(problems))
return 1
active = sum(1 for rule in db_rules.values() if rule["status"] == "active")
print(f"PASS: real PostgreSQL rule smoke (rules={len(db_rules)}, active={active}, "
f"samples={len(db_samples)}, version={db_version})")
return 0
if __name__ == "__main__":
raise SystemExit(main())