Coverage report:
97%
hide covered
Files
Functions
Classes
coverage.py v7.13.1
, created at 2026-10-09 08:03 +0000
Statements
Branches
Total
File
function
coverage
statements
missing
excluded
coverage
branches
partial
coverage
stackone_ai / tools.py
_trim_header_name
100%
1
0
0
100%
0
0
100%
stackone_ai / tools.py
is_sdk_owned_header
100%
1
0
0
100%
0
0
100%
stackone_ai / tools.py
build_request_headers
100%
9
0
0
100%
4
0
100%
stackone_ai / tools.py
_warn_header_dropped
100%
3
0
0
100%
2
0
100%
stackone_ai / tools.py
run_async
100%
16
0
0
100%
4
0
100%
stackone_ai / tools.py
run_async.runner
100%
2
0
2
100%
0
0
100%
stackone_ai / tools.py
_js_number
100%
19
0
0
100%
12
0
100%
stackone_ai / tools.py
_js_json
100%
16
0
0
100%
14
0
100%
stackone_ai / tools.py
_json_text
50%
4
2
0
100%
0
0
50%
stackone_ai / tools.py
_json_type
69%
13
4
0
67%
12
4
68%
stackone_ai / tools.py
_seconds_2dp
100%
1
0
0
100%
0
0
100%
stackone_ai / tools.py
_ascii_lower
100%
1
0
0
100%
0
0
100%
stackone_ai / tools.py
_declares_object_type
100%
5
0
0
100%
4
0
100%
stackone_ai / tools.py
_header_text
100%
9
0
0
100%
8
0
100%
stackone_ai / tools.py
build_auth_header
100%
2
0
0
100%
0
0
100%
stackone_ai / tools.py
_buffer_error_body
100%
2
0
0
100%
2
0
100%
stackone_ai / tools.py
_add_years
50%
4
2
0
100%
0
0
50%
stackone_ai / tools.py
_parse_http_date
94%
31
2
0
88%
16
2
91%
stackone_ai / tools.py
_retry_after_seconds
100%
11
0
0
100%
6
0
100%
stackone_ai / tools.py
_backoff_delay
100%
5
0
0
100%
2
0
100%
stackone_ai / tools.py
_rate_limit_delay
100%
1
0
0
100%
0
0
100%
stackone_ai / tools.py
_waits_for_retry
100%
1
0
0
100%
0
0
100%
stackone_ai / tools.py
_log_rate_limit_retry
100%
1
0
0
100%
0
0
100%
stackone_ai / tools.py
_outlasts_deadline
100%
4
0
0
100%
2
0
100%
stackone_ai / tools.py
RateLimitRetryingClient.__init__
100%
2
0
0
100%
0
0
100%
stackone_ai / tools.py
RateLimitRetryingClient.send
100%
17
0
0
100%
4
0
100%
stackone_ai / tools.py
RateLimitRetryingAsyncClient.__init__
100%
2
0
0
100%
0
0
100%
stackone_ai / tools.py
RateLimitRetryingAsyncClient.send
100%
24
0
0
92%
12
1
97%
stackone_ai / tools.py
is_rate_limited
93%
14
1
0
88%
8
1
91%
stackone_ai / tools.py
_mcp_transport
100%
4
0
0
100%
0
0
100%
stackone_ai / tools.py
fetch_mcp_tools
100%
10
0
2
100%
0
0
100%
stackone_ai / tools.py
fetch_mcp_tools._list
100%
2
0
0
100%
0
0
100%
stackone_ai / tools.py
fetch_mcp_tools._list_within_deadline
100%
15
0
0
100%
4
0
100%
stackone_ai / tools.py
_response_body
22%
9
7
0
100%
0
0
22%
stackone_ai / tools.py
_describe_mcp_failure
100%
20
0
0
100%
10
0
100%
stackone_ai / tools.py
_leaf_failure
89%
9
1
0
83%
6
1
87%
stackone_ai / tools.py
_raise_mcp_failure
100%
6
0
0
100%
2
0
100%
stackone_ai / tools.py
_status_of
100%
8
0
0
100%
8
0
100%
stackone_ai / tools.py
_reject_json_constant
100%
1
0
0
100%
0
0
100%
stackone_ai / tools.py
_first_non_finite
100%
3
0
0
100%
0
0
100%
stackone_ai / tools.py
_first_non_finite.walk
100%
12
0
0
100%
8
0
100%
stackone_ai / tools.py
_plain_part
67%
3
1
0
50%
2
1
60%
stackone_ai / tools.py
parse_tool_result
100%
19
0
0
100%
8
0
100%
stackone_ai / tools.py
call_mcp_tool
100%
9
0
0
100%
0
0
100%
stackone_ai / tools.py
call_mcp_tool._call
100%
2
0
0
100%
0
0
100%
stackone_ai / tools.py
call_mcp_tool._call_within_deadline
100%
7
0
0
100%
0
0
100%
stackone_ai / tools.py
is_end_user_refusal
83%
12
2
0
83%
6
1
83%
stackone_ai / tools.py
_strip_internal_keys
100%
5
0
0
100%
4
0
100%
stackone_ai / tools.py
StackOneTool.__init__
100%
4
0
0
100%
0
0
100%
stackone_ai / tools.py
StackOneTool._parse_arguments
100%
11
0
0
100%
6
0
100%
stackone_ai / tools.py
StackOneTool._declared_headers
100%
14
0
0
100%
8
0
100%
stackone_ai / tools.py
StackOneTool._header_refusal
100%
7
0
0
100%
6
0
100%
stackone_ai / tools.py
StackOneTool._sanitise_headers
100%
13
0
0
100%
6
0
100%
stackone_ai / tools.py
StackOneTool._sanitise_header_arguments
100%
25
0
0
100%
16
0
100%
stackone_ai / tools.py
StackOneTool.execute
100%
1
0
0
100%
0
0
100%
stackone_ai / tools.py
StackOneTool.call
100%
7
0
0
100%
6
0
100%
stackone_ai / tools.py
StackOneTool.__call__
0%
1
1
0
100%
0
0
0%
stackone_ai / tools.py
StackOneTool.to_openai_function
100%
10
0
0
100%
4
0
100%
stackone_ai / tools.py
StackOneTool.to_langchain
83%
12
2
0
100%
0
0
83%
stackone_ai / tools.py
StackOneTool.to_langchain.StackOneLangChainTool._run
100%
9
0
0
100%
0
0
100%
stackone_ai / tools.py
StackOneTool.to_pydantic_ai_tool
100%
10
0
0
100%
0
0
100%
stackone_ai / tools.py
StackOneTool.to_pydantic_ai_tool.implementation
100%
5
0
0
100%
0
0
100%
stackone_ai / tools.py
StackOneTool.set_account_id
100%
1
0
0
100%
0
0
100%
stackone_ai / tools.py
StackOneTool.get_account_id
100%
1
0
0
100%
0
0
100%
stackone_ai / tools.py
StackOneMcpTool.__init__
100%
2
0
0
100%
0
0
100%
stackone_ai / tools.py
StackOneMcpTool._prepare_headers
75%
4
1
0
50%
2
1
67%
stackone_ai / tools.py
StackOneMcpTool._recorded_end_user_id
100%
3
0
0
100%
2
0
100%
stackone_ai / tools.py
StackOneMcpTool.execute
100%
21
0
0
100%
4
0
100%
stackone_ai / tools.py
StackOneMcpTool.execute.call
100%
2
0
0
100%
0
0
100%
stackone_ai / tools.py
_read_openai_tool_call
100%
5
0
0
100%
2
0
100%
stackone_ai / tools.py
Tools.__init__
100%
5
0
0
100%
2
0
100%
stackone_ai / tools.py
Tools._warn_duplicate_names
100%
5
0
0
100%
2
0
100%
stackone_ai / tools.py
Tools._first_per_name
100%
2
0
0
100%
0
0
100%
stackone_ai / tools.py
Tools.__getitem__
100%
1
0
0
100%
0
0
100%
stackone_ai / tools.py
Tools.__len__
100%
1
0
0
100%
0
0
100%
stackone_ai / tools.py
Tools.__iter__
100%
1
0
0
100%
0
0
100%
stackone_ai / tools.py
Tools.to_list
100%
1
0
0
100%
0
0
100%
stackone_ai / tools.py
Tools.get_tool
100%
1
0
0
100%
0
0
100%
stackone_ai / tools.py
Tools.set_account_id
100%
2
0
0
100%
2
0
100%
stackone_ai / tools.py
Tools.get_account_id
100%
5
0
0
100%
4
0
100%
stackone_ai / tools.py
Tools.to_openai
100%
1
0
0
100%
0
0
100%
stackone_ai / tools.py
Tools.execute_openai_tool_calls
100%
14
0
0
100%
4
0
100%
stackone_ai / tools.py
Tools.to_langchain
100%
1
0
0
100%
0
0
100%
stackone_ai / tools.py
Tools.to_pydantic_ai
100%
1
0
0
100%
0
0
100%
stackone_ai / tools.py
(no function)
100%
153
0
2
100%
0
0
100%
stackone_ai / toolset.py
_Catalog.in_order
100%
1
0
0
100%
0
0
100%
stackone_ai / toolset.py
_Catalog.failures
100%
1
0
0
100%
0
0
100%
stackone_ai / toolset.py
_fan_out
100%
13
0
0
100%
4
0
100%
stackone_ai / toolset.py
_all_accounts_failed
100%
7
0
0
100%
2
0
100%
stackone_ai / toolset.py
StackOneToolSet.__init__
100%
32
0
0
100%
8
0
100%
stackone_ai / toolset.py
StackOneToolSet.set_accounts
100%
3
0
0
100%
0
0
100%
stackone_ai / toolset.py
StackOneToolSet.clear_catalog_cache
100%
6
0
0
100%
0
0
100%
stackone_ai / toolset.py
StackOneToolSet.fetch_tools
100%
3
0
0
100%
0
0
100%
stackone_ai / toolset.py
StackOneToolSet._fetch_tools
100%
12
0
2
100%
4
0
100%
stackone_ai / toolset.py
StackOneToolSet._validate_account_ids
100%
10
0
0
100%
8
0
100%
stackone_ai / toolset.py
StackOneToolSet._resolve_account_ids
100%
8
0
0
100%
6
0
100%
stackone_ai / toolset.py
StackOneToolSet._catalog
100%
39
0
0
100%
16
0
100%
stackone_ai / toolset.py
StackOneToolSet._catalog._fetch_for_account
100%
8
0
0
100%
2
0
100%
stackone_ai / toolset.py
StackOneToolSet._catalog._store
100%
13
0
0
100%
6
0
100%
stackone_ai / toolset.py
StackOneToolSet._dedupe_global_tools
100%
9
0
0
100%
6
0
100%
stackone_ai / toolset.py
StackOneToolSet._cache_key
100%
1
0
0
100%
0
0
100%
stackone_ai / toolset.py
StackOneToolSet._meta_tools
100%
2
0
0
100%
0
0
100%
stackone_ai / toolset.py
StackOneToolSet._meta_tools_and_failures
100%
2
0
0
100%
0
0
100%
stackone_ai / toolset.py
StackOneToolSet.search
95%
19
1
0
92%
12
1
94%
stackone_ai / toolset.py
StackOneToolSet.search._search_one
100%
10
0
0
75%
4
1
93%
stackone_ai / toolset.py
StackOneToolSet.search._score
100%
4
0
0
100%
2
0
100%
stackone_ai / toolset.py
StackOneToolSet.execute
100%
32
0
0
100%
14
0
100%
stackone_ai / toolset.py
StackOneToolSet.execute._learn_providers
100%
5
0
0
100%
2
0
100%
stackone_ai / toolset.py
StackOneToolSet.execute._retry_failed
100%
4
0
0
100%
0
0
100%
stackone_ai / toolset.py
StackOneToolSet.submit_feedback
100%
12
0
0
100%
6
0
100%
stackone_ai / toolset.py
StackOneToolSet.openai
0%
1
1
0
100%
0
0
0%
stackone_ai / toolset.py
StackOneToolSet.langchain
0%
1
1
0
100%
0
0
0%
stackone_ai / toolset.py
StackOneToolSet.pydantic_ai
100%
1
0
0
100%
0
0
100%
stackone_ai / toolset.py
StackOneToolSet._connector_of
100%
1
0
0
100%
0
0
100%
stackone_ai / toolset.py
StackOneToolSet._connector_of_name
100%
4
0
0
50%
2
1
83%
stackone_ai / toolset.py
StackOneToolSet._may_serve
100%
9
0
0
100%
2
0
100%
stackone_ai / toolset.py
StackOneToolSet._filter_by_provider
100%
2
0
0
100%
0
0
100%
stackone_ai / toolset.py
StackOneToolSet._filter_by_action
100%
1
0
0
100%
0
0
100%
stackone_ai / toolset.py
StackOneToolSet.fetch_accounts
100%
6
0
0
100%
0
0
100%
stackone_ai / toolset.py
StackOneToolSet._settle_accounts
100%
10
0
0
100%
2
0
100%
stackone_ai / toolset.py
StackOneToolSet._request_accounts
100%
28
0
0
100%
8
0
100%
stackone_ai / toolset.py
StackOneToolSet._look_up_end_user
100%
9
0
0
100%
4
0
100%
stackone_ai / toolset.py
StackOneToolSet._join_accounts_listing
100%
11
0
0
100%
4
0
100%
stackone_ai / toolset.py
StackOneToolSet._learn_providers
100%
18
0
0
100%
8
0
100%
stackone_ai / toolset.py
StackOneToolSet._recently_missed
100%
3
0
0
100%
0
0
100%
stackone_ai / toolset.py
StackOneToolSet._end_user_id
100%
2
0
0
100%
0
0
100%
stackone_ai / toolset.py
StackOneToolSet._discover_account_ids
92%
26
2
0
86%
14
2
90%
stackone_ai / toolset.py
StackOneToolSet._fetch_active_account_ids
100%
19
0
0
100%
12
0
100%
stackone_ai / toolset.py
StackOneToolSet._build_mcp_headers
100%
2
0
0
100%
0
0
100%
stackone_ai / toolset.py
StackOneToolSet._create_tool
100%
11
0
0
100%
0
0
100%
stackone_ai / toolset.py
StackOneToolSet._normalize_schema_properties
100%
14
0
0
100%
6
0
100%
stackone_ai / toolset.py
(no function)
100%
78
0
0
100%
0
0
100%
stackone_ai / types.py
StackOneAPIError.__init__
100%
3
0
0
100%
0
0
100%
stackone_ai / types.py
ToolsetLoadError.__init__
100%
2
0
0
100%
0
0
100%
stackone_ai / types.py
ToolParameters._dump_as_served
100%
4
0
0
100%
2
0
100%
stackone_ai / types.py
(no function)
100%
43
0
0
100%
0
0
100%
Total
98%
1304
31
8
96%
412
17
97%
No items found using the specified filter.