From dfa2808939766706ad878c96cbf5c5fc553f33da Mon Sep 17 00:00:00 2001 From: WhaleTech <304937387+ryo-whaletech@users.noreply.github.com> Date: Wed, 16 Sep 2026 06:04:19 +0900 Subject: [PATCH] Python: Isolate Foundry Hosting test state --- python/packages/foundry_hosting/tests/conftest.py | 13 +++++++++++++ .../foundry_hosting/tests/test_state_store.py | 9 +++++++++ 2 files changed, 22 insertions(+) create mode 100644 python/packages/foundry_hosting/tests/conftest.py diff --git a/python/packages/foundry_hosting/tests/conftest.py b/python/packages/foundry_hosting/tests/conftest.py new file mode 100644 index 00000000000..2ca7446f1a3 --- /dev/null +++ b/python/packages/foundry_hosting/tests/conftest.py @@ -0,0 +1,13 @@ +# Copyright (c) Microsoft. All rights reserved. + +"""Fixtures for Foundry Hosting tests.""" + +from pathlib import Path + +import pytest + + +@pytest.fixture(autouse=True) +def isolate_local_agentserver_state_root(monkeypatch: pytest.MonkeyPatch, tmp_path: Path) -> None: + """Give each test an independent local AgentServer state root.""" + monkeypatch.setenv("AGENTSERVER_STATE_ROOT", str(tmp_path / "agentserver-state")) diff --git a/python/packages/foundry_hosting/tests/test_state_store.py b/python/packages/foundry_hosting/tests/test_state_store.py index fc36d00373c..7ae5088a4d9 100644 --- a/python/packages/foundry_hosting/tests/test_state_store.py +++ b/python/packages/foundry_hosting/tests/test_state_store.py @@ -1,6 +1,8 @@ # Copyright (c) Microsoft. All rights reserved. +import os from collections.abc import Callable from dataclasses import dataclass +from pathlib import Path from types import SimpleNamespace from typing import Any from unittest.mock import AsyncMock, MagicMock, patch @@ -72,6 +74,13 @@ def _platform_context(call_id: str = "call-1", user_id: str = "user-1") -> Found return FoundryAgentRequestContext(call_id=call_id, user_id=user_id) +def test_local_agentserver_state_root_is_test_scoped(tmp_path: Path) -> None: + """Independent tests must not share the local fallback state directory.""" + state_root = Path(os.environ["AGENTSERVER_STATE_ROOT"]) + + assert state_root.is_relative_to(tmp_path) + + def test_storage_providers_use_public_abstraction() -> None: assert issubclass(CheckpointStoreProvider, ContextScopedStoreProvider) assert not issubclass(CheckpointStoreProvider, StoreProvider)