Files
aiagent/backend/scripts/test_write_user_data_aaa_md.py

62 lines
1.9 KiB
Python
Raw Normal View History

#!/usr/bin/env python3
"""
测试在 D:\\aaa\\aiagent\\user_data 下创建 aaa.md与线上一致的 file_write_tool
用法 backend 目录:
.\\venv\\Scripts\\python.exe scripts\\test_write_user_data_aaa_md.py
可选环境变量:
TEST_MD_CONTENT 写入内容默认一行时间戳
TEST_USE_ABSPATH 设为 1 时使用绝对路径 D:\\aaa\\aiagent\\user_data\\aaa.md否则用相对路径 user_data/aaa.md
"""
from __future__ import annotations
import asyncio
import os
import sys
from datetime import datetime, timezone
from pathlib import Path
BACKEND_DIR = Path(__file__).resolve().parents[1]
def main() -> int:
os.chdir(BACKEND_DIR)
sys.path.insert(0, str(BACKEND_DIR))
from app.services.builtin_tools import _local_file_workspace_root, file_write_tool
root = _local_file_workspace_root()
content = os.environ.get(
"TEST_MD_CONTENT",
f"# aaa\\n\\nwritten by test_write_user_data_aaa_md.py at {datetime.now(timezone.utc).isoformat()}\\n",
).replace("\\n", "\n")
if os.environ.get("TEST_USE_ABSPATH", "").strip() in ("1", "true", "yes"):
target = root / "user_data" / "aaa.md"
file_path_arg = str(target)
else:
file_path_arg = "user_data/aaa.md"
print("workspace root:", root)
print("file_path:", file_path_arg)
print("content bytes (utf-8):", len(content.encode("utf-8")))
raw = asyncio.run(file_write_tool(file_path_arg, content, "w"))
print("tool return:", raw)
resolved = (root / "user_data" / "aaa.md").resolve()
if not resolved.is_file():
print("FAIL: file missing:", resolved, file=sys.stderr)
return 2
on_disk = resolved.read_text(encoding="utf-8", errors="replace")
print("OK: on disk", resolved)
print("--- file head ---")
print(on_disk[:500])
print("---")
return 0
if __name__ == "__main__":
raise SystemExit(main())