Files
aiagent/backend/scripts/test_write_user_data_aaa_md.py

62 lines
1.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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())