forked from strands-agents/harness-sdk
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_thread_context.py
More file actions
47 lines (30 loc) · 965 Bytes
/
Copy pathtest_thread_context.py
File metadata and controls
47 lines (30 loc) · 965 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import contextvars
import pytest
from strands import Agent, tool
@pytest.fixture
def result():
return {}
@pytest.fixture
def contextvar():
return contextvars.ContextVar("agent")
@pytest.fixture
def context_tool(result, contextvar):
@tool(name="context_tool")
def tool_():
result["context_value"] = contextvar.get("local_context")
return tool_
@pytest.fixture
def agent(context_tool):
return Agent(tools=[context_tool])
def test_agent_invoke_context_sharing(result, contextvar, agent):
contextvar.set("shared_context")
agent("Execute context_tool")
tru_context = result["context_value"]
exp_context = contextvar.get()
assert tru_context == exp_context
def test_tool_call_context_sharing(result, contextvar, agent):
contextvar.set("shared_context")
agent.tool.context_tool()
tru_context = result["context_value"]
exp_context = contextvar.get()
assert tru_context == exp_context