Skip to content

Commit 3f16332

Browse files
committed
update class TestLLM to use deque instead of a stack
1 parent 4acb529 commit 3f16332

1 file changed

Lines changed: 5 additions & 3 deletions

File tree

openhands-sdk/openhands/sdk/testing/test_llm.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@
3737
if TYPE_CHECKING:
3838
from openhands.sdk.tool.tool import ToolDefinition
3939

40+
from collections import deque
41+
4042

4143
__all__ = ["TestLLM", "TestLLMExhaustedError"]
4244

@@ -91,7 +93,7 @@ class TestLLM(LLM):
9193
__test__ = False
9294

9395
model: str = Field(default="test-model")
94-
_scripted_responses: list[Message] = PrivateAttr(default_factory=list)
96+
_scripted_responses: deque[Message] = PrivateAttr(default_factory=deque)
9597
_call_count: int = PrivateAttr(default=0)
9698

9799
model_config: ClassVar[ConfigDict] = ConfigDict(
@@ -102,7 +104,7 @@ def __init__(self, **data: Any) -> None:
102104
# Extract scripted_responses before calling super().__init__
103105
scripted_responses = data.pop("scripted_responses", [])
104106
super().__init__(**data)
105-
self._scripted_responses = list(scripted_responses)
107+
self._scripted_responses = deque(list(scripted_responses))
106108
self._call_count = 0
107109

108110
@classmethod
@@ -171,7 +173,7 @@ def completion(
171173
f"(exhausted after {self._call_count} calls)"
172174
)
173175

174-
message = self._scripted_responses.pop(0)
176+
message = self._scripted_responses.popleft()
175177
self._call_count += 1
176178

177179
# Create a minimal ModelResponse for raw_response

0 commit comments

Comments
 (0)