test_max_iterations() — anthropic-sdk-python Function Reference
Architecture documentation for the test_max_iterations() function in test_runners.py from the anthropic-sdk-python codebase.
Entity Profile
Dependency Diagram
graph TD 02fd438c_68ab_e0a1_e789_e598f8598566["test_max_iterations()"] 6847e1ae_03a4_3e19_19ff_ea808e74d94c["TestSyncRunTools"] 02fd438c_68ab_e0a1_e789_e598f8598566 -->|defined in| 6847e1ae_03a4_3e19_19ff_ea808e74d94c be8a7f3a_5951_1f73_7331_3ad05c999ecf["_get_weather()"] 02fd438c_68ab_e0a1_e789_e598f8598566 -->|calls| be8a7f3a_5951_1f73_7331_3ad05c999ecf style 02fd438c_68ab_e0a1_e789_e598f8598566 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
tests/lib/tools/test_runners.py lines 300–353
def test_max_iterations(self, client: Anthropic, respx_mock: MockRouter, monkeypatch: pytest.MonkeyPatch) -> None:
@beta_tool
def get_weather(location: str, units: Literal["c", "f"]) -> BetaFunctionToolResultType:
"""Lookup the weather for a given city in either celsius or fahrenheit
Args:
location: The city and state, e.g. San Francisco, CA
units: Unit for the output, either 'c' for celsius or 'f' for fahrenheit
Returns:
A dictionary containing the location, temperature, and weather condition.
"""
return json.dumps(_get_weather(location, units))
def get_weather_answers(client: Anthropic) -> List[Union[BetaMessageParam, None]]:
runner = client.beta.messages.tool_runner(
max_tokens=1024,
model="claude-haiku-4-5",
tools=[get_weather],
messages=[
{
"role": "user",
"content": (
"What's the weather in San Francisco, New York, London, Tokyo and Paris?"
"If you need to use tools, call only one tool at a time. Wait for the tool’s"
"response before making another call. Never call multiple tools at once."
),
}
],
max_iterations=2,
)
answers: List[Union[BetaMessageParam, None]] = []
for _ in runner:
answers.append(runner.generate_tool_call_response())
return answers
answers = make_snapshot_request(
get_weather_answers,
content_snapshot=snapshot(
[
'{"model": "claude-haiku-4-5-20251001", "id": "msg_017GvdrboNn8hipoMJUcK8m6", "type": "message", "role": "assistant", "content": [{"type": "text", "text": "I\'ll get the weather for each of these cities one at a time. Let me start with San Francisco."}, {"type": "tool_use", "id": "toolu_011Q6hjHnpWegJvV1Zn6Cm1h", "name": "get_weather", "input": {"location": "San Francisco, CA", "units": "f"}}], "stop_reason": "tool_use", "stop_sequence": null, "usage": {"input_tokens": 701, "cache_creation_input_tokens": 0, "cache_read_input_tokens": 0, "cache_creation": {"ephemeral_5m_input_tokens": 0, "ephemeral_1h_input_tokens": 0}, "output_tokens": 96, "service_tier": "standard"}}',
'{"model": "claude-haiku-4-5-20251001", "id": "msg_01PYFQH4AkK3NBgSpFkWD16q", "type": "message", "role": "assistant", "content": [{"type": "text", "text": "Now let me check New York."}, {"type": "tool_use", "id": "toolu_011QaaAuMeNWTwHjkxcxce1D", "name": "get_weather", "input": {"location": "New York, NY", "units": "f"}}], "stop_reason": "tool_use", "stop_sequence": null, "usage": {"input_tokens": 837, "cache_creation_input_tokens": 0, "cache_read_input_tokens": 0, "cache_creation": {"ephemeral_5m_input_tokens": 0, "ephemeral_1h_input_tokens": 0}, "output_tokens": 81, "service_tier": "standard"}}',
]
),
path="/v1/messages",
mock_client=client,
respx_mock=respx_mock,
)
assert print_obj(answers, monkeypatch) == snapshot(
"[{'role': 'user', 'content': [{'type': 'tool_result', 'tool_use_id': 'toolu_011Q6hjHnpWegJvV1Zn6Cm1h', 'content': '{\"location\": \"San Francisco, CA\", \"temperature\": \"68\\\\u00b0F\", \"condition\": \"Sunny\"}'}]}, {'role': 'user', 'content': [{'type': 'tool_result', 'tool_use_id': 'toolu_011QaaAuMeNWTwHjkxcxce1D', 'content': '{\"location\": \"New York, NY\", \"temperature\": \"68\\\\u00b0F\", \"condition\": \"Sunny\"}'}]}]\n"
)
Domain
Subdomains
Defined In
Calls
Source
Frequently Asked Questions
What does test_max_iterations() do?
test_max_iterations() is a function in the anthropic-sdk-python codebase, defined in tests/lib/tools/test_runners.py.
Where is test_max_iterations() defined?
test_max_iterations() is defined in tests/lib/tools/test_runners.py at line 300.
What does test_max_iterations() call?
test_max_iterations() calls 1 function(s): _get_weather.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free