62 lines
1.9 KiB
Python
62 lines
1.9 KiB
Python
|
|
#!/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())
|