fix: outdated tests

This commit is contained in:
Richard Tang
2026-04-01 17:33:17 -07:00
parent 1765e1cb6c
commit b7a115259d
3 changed files with 17 additions and 67 deletions
@@ -120,6 +120,19 @@ _REFLECTION_TOOLS: list[Tool] = [
] ]
def _safe_memory_path(filename: str, memory_dir: Path) -> Path:
"""Resolve *filename* inside *memory_dir*, raising if it escapes."""
if not filename or filename.strip() != filename:
raise ValueError(f"Invalid filename: {filename!r}")
if "/" in filename or "\\" in filename or ".." in filename:
raise ValueError(f"Invalid filename: path components not allowed: {filename!r}")
candidate = (memory_dir / filename).resolve()
root = memory_dir.resolve()
if not candidate.is_relative_to(root):
raise ValueError(f"Path escapes memory directory: {filename!r}")
return candidate
def _execute_tool(name: str, args: dict[str, Any], memory_dir: Path) -> str: def _execute_tool(name: str, args: dict[str, Any], memory_dir: Path) -> str:
"""Execute a reflection tool synchronously. Returns the result string.""" """Execute a reflection tool synchronously. Returns the result string."""
if name == "list_memory_files": if name == "list_memory_files":
@@ -131,7 +144,10 @@ def _execute_tool(name: str, args: dict[str, Any], memory_dir: Path) -> str:
if name == "read_memory_file": if name == "read_memory_file":
filename = args.get("filename", "") filename = args.get("filename", "")
path = memory_dir / filename try:
path = _safe_memory_path(filename, memory_dir)
except ValueError as exc:
return f"ERROR: {exc}"
if not path.exists() or not path.is_file(): if not path.exists() or not path.is_file():
return f"ERROR: File not found: {filename}" return f"ERROR: File not found: {filename}"
try: try:
-30
View File
@@ -238,36 +238,6 @@ class TestCsvRead:
assert result["total_rows"] == 0 assert result["total_rows"] == 0
assert result["rows"] == [] assert result["rows"] == []
def test_missing_workspace_id(self, csv_tool_fn, basic_csv, tmp_path):
"""Return error when workspace_id is missing."""
with patch("aden_tools.tools.file_system_toolkits.security.AGENT_SANDBOXES_DIR", str(tmp_path)):
result = csv_tool_fn(
path="basic.csv",
agent_id=TEST_AGENT_ID,
)
assert "error" in result
def test_missing_agent_id(self, csv_tool_fn, basic_csv, tmp_path):
"""Return error when agent_id is missing."""
with patch("aden_tools.tools.file_system_toolkits.security.AGENT_SANDBOXES_DIR", str(tmp_path)):
result = csv_tool_fn(
path="basic.csv",
agent_id="",
)
assert "error" in result
def test_missing_session_id(self, csv_tool_fn, basic_csv, tmp_path):
"""Return error when session_id is missing."""
with patch("aden_tools.tools.file_system_toolkits.security.AGENT_SANDBOXES_DIR", str(tmp_path)):
result = csv_tool_fn(
path="basic.csv",
agent_id=TEST_AGENT_ID,
)
assert "error" in result
def test_unicode_content(self, csv_tool_fn, session_dir, tmp_path): def test_unicode_content(self, csv_tool_fn, session_dir, tmp_path):
"""Read CSV with Unicode content.""" """Read CSV with Unicode content."""
csv_file = session_dir / "unicode.csv" csv_file = session_dir / "unicode.csv"
-36
View File
@@ -323,42 +323,6 @@ class TestExcelRead:
assert result["total_rows"] == 0 assert result["total_rows"] == 0
assert result["rows"] == [] assert result["rows"] == []
def test_missing_workspace_id(self, excel_read_fn, basic_xlsx, tmp_path):
"""Return error when workspace_id is missing."""
with patch("aden_tools.tools.file_system_toolkits.security.WORKSPACES_DIR", str(tmp_path)):
result = excel_read_fn(
path="basic.xlsx",
workspace_id="",
agent_id=TEST_AGENT_ID,
session_id=current,
)
assert "error" in result
def test_missing_agent_id(self, excel_read_fn, basic_xlsx, tmp_path):
"""Return error when agent_id is missing."""
with patch("aden_tools.tools.file_system_toolkits.security.WORKSPACES_DIR", str(tmp_path)):
result = excel_read_fn(
path="basic.xlsx",
workspace_id=TEST_AGENT_ID,
agent_id="",
session_id=current,
)
assert "error" in result
def test_missing_session_id(self, excel_read_fn, basic_xlsx, tmp_path):
"""Return error when session_id is missing."""
with patch("aden_tools.tools.file_system_toolkits.security.WORKSPACES_DIR", str(tmp_path)):
result = excel_read_fn(
path="basic.xlsx",
workspace_id=TEST_AGENT_ID,
agent_id=TEST_AGENT_ID,
session_id="",
)
assert "error" in result
def test_path_traversal_blocked(self, excel_read_fn, session_dir, tmp_path): def test_path_traversal_blocked(self, excel_read_fn, session_dir, tmp_path):
"""Prevent path traversal attacks.""" """Prevent path traversal attacks."""
with patch("aden_tools.tools.file_system_toolkits.security.WORKSPACES_DIR", str(tmp_path)): with patch("aden_tools.tools.file_system_toolkits.security.WORKSPACES_DIR", str(tmp_path)):