Fix Windows backend test compatibility (#1384)

* Fix Windows backend test compatibility

* Preserve ACP path style on Windows

* Fix installer import ordering

* Address review comments for Windows fixes

---------

Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
This commit is contained in:
Admire
2026-03-26 17:39:16 +08:00
committed by GitHub
parent b3d3287b80
commit b9583f7204
10 changed files with 141 additions and 27 deletions

View File

@@ -4,6 +4,10 @@ from langgraph.runtime import Runtime
from deerflow.agents.middlewares.thread_data_middleware import ThreadDataMiddleware
def _as_posix(path: str) -> str:
return path.replace("\\", "/")
class TestThreadDataMiddleware:
def test_before_agent_returns_paths_when_thread_id_present_in_context(self, tmp_path):
middleware = ThreadDataMiddleware(base_dir=str(tmp_path), lazy_init=True)
@@ -11,9 +15,9 @@ class TestThreadDataMiddleware:
result = middleware.before_agent(state={}, runtime=Runtime(context={"thread_id": "thread-123"}))
assert result is not None
assert result["thread_data"]["workspace_path"].endswith("threads/thread-123/user-data/workspace")
assert result["thread_data"]["uploads_path"].endswith("threads/thread-123/user-data/uploads")
assert result["thread_data"]["outputs_path"].endswith("threads/thread-123/user-data/outputs")
assert _as_posix(result["thread_data"]["workspace_path"]).endswith("threads/thread-123/user-data/workspace")
assert _as_posix(result["thread_data"]["uploads_path"]).endswith("threads/thread-123/user-data/uploads")
assert _as_posix(result["thread_data"]["outputs_path"]).endswith("threads/thread-123/user-data/outputs")
def test_before_agent_uses_thread_id_from_configurable_when_context_is_none(self, tmp_path, monkeypatch):
middleware = ThreadDataMiddleware(base_dir=str(tmp_path), lazy_init=True)
@@ -26,7 +30,7 @@ class TestThreadDataMiddleware:
result = middleware.before_agent(state={}, runtime=runtime)
assert result is not None
assert result["thread_data"]["workspace_path"].endswith("threads/thread-from-config/user-data/workspace")
assert _as_posix(result["thread_data"]["workspace_path"]).endswith("threads/thread-from-config/user-data/workspace")
assert runtime.context is None
def test_before_agent_uses_thread_id_from_configurable_when_context_missing_thread_id(self, tmp_path, monkeypatch):
@@ -40,7 +44,7 @@ class TestThreadDataMiddleware:
result = middleware.before_agent(state={}, runtime=runtime)
assert result is not None
assert result["thread_data"]["uploads_path"].endswith("threads/thread-from-config/user-data/uploads")
assert _as_posix(result["thread_data"]["uploads_path"]).endswith("threads/thread-from-config/user-data/uploads")
assert runtime.context == {}
def test_before_agent_raises_clear_error_when_thread_id_missing_everywhere(self, tmp_path, monkeypatch):