openai-agents-python/tests
WJPBProjects 466b44df18
Dev/add usage details to Usage class (#726)
PR to enhance the `Usage` object and related logic, to support more
granular token accounting, matching the details available in the [OpenAI
Responses API](https://platform.openai.com/docs/api-reference/responses)
. Specifically, it:

- Adds `input_tokens_details` and `output_tokens_details` fields to the
`Usage` dataclass, storing detailed token breakdowns (e.g.,
`cached_tokens`, `reasoning_tokens`).
- Flows this change through
- Updates and extends tests to match
- Adds a test for the Usage.add method

### Motivation
- Aligns the SDK’s usage with the latest OpenAI responses API Usage
object
- Supports downstream use cases that require fine-grained token usage
data (e.g., billing, analytics, optimization) requested by startups

---------

Co-authored-by: Wulfie Bain <wulfie@openai.com>
2025-05-20 18:23:56 +01:00
..
fastapi Start and finish streaming trace in impl metod (#540) 2025-04-21 13:08:38 -04:00
mcp Prevent MCP ClientSession hang (#580) 2025-04-24 12:12:46 -04:00
model_settings Create to_json_dict for ModelSettings (#582) 2025-04-23 20:39:07 -04:00
models Dev/add usage details to Usage class (#726) 2025-05-20 18:23:56 +01:00
tracing Read tracing API data lazily 2025-03-21 15:32:37 -04:00
voice Create to_json_dict for ModelSettings (#582) 2025-04-23 20:39:07 -04:00
__init__.py Initial commit 2025-03-11 09:42:28 -07:00
conftest.py Initial commit 2025-03-11 09:42:28 -07:00
fake_model.py Add usage to context in streaming (#595) 2025-04-24 18:20:35 -04:00
README.md Pretty print result classes 2025-03-17 11:11:39 -04:00
test_agent_config.py Enable non-strict output types (#539) 2025-04-21 11:58:36 -04:00
test_agent_hooks.py Fix typos and misspellings (#486) 2025-04-14 10:37:13 -04:00
test_agent_runner.py Examples and tests for previous_response_id (#512) 2025-04-15 12:46:31 -04:00
test_agent_runner_streamed.py fix typos in tests 2025-03-20 11:24:15 +01:00
test_agent_tracing.py More fetch_normalized_spans 2025-03-21 18:31:06 +02:00
test_cancel_streaming.py More tests for cancelling streamed run (#590) 2025-04-24 14:45:03 -04:00
test_computer_action.py Initial commit 2025-03-11 09:42:28 -07:00
test_config.py make format 2025-03-11 14:54:10 -07:00
test_doc_parsing.py Initial commit 2025-03-11 09:42:28 -07:00
test_extension_filters.py Initial commit 2025-03-11 09:42:28 -07:00
test_extra_headers.py Dev/add usage details to Usage class (#726) 2025-05-20 18:23:56 +01:00
test_function_schema.py Litellm integration (#524) 2025-04-16 18:48:41 -04:00
test_function_tool.py Introduce tool_use_behavior on agents 2025-03-18 21:55:12 -04:00
test_function_tool_decorator.py Misc small fixes - mcp version, test for function_schema, version gen (#429) 2025-04-03 12:08:01 -04:00
test_global_hooks.py fix typos in tests 2025-03-20 11:24:15 +01:00
test_guardrails.py Initial commit 2025-03-11 09:42:28 -07:00
test_handoff_tool.py Initial commit 2025-03-11 09:42:28 -07:00
test_items_helpers.py Replace referencable_id with response_id (#508) 2025-04-14 21:37:18 -04:00
test_max_turns.py Initial commit 2025-03-11 09:42:28 -07:00
test_openai_chatcompletions.py Dev/add usage details to Usage class (#726) 2025-05-20 18:23:56 +01:00
test_openai_chatcompletions_converter.py Enable non-strict output types (#539) 2025-04-21 11:58:36 -04:00
test_openai_chatcompletions_stream.py Dev/add usage details to Usage class (#726) 2025-05-20 18:23:56 +01:00
test_openai_responses_converter.py Enable non-strict output types (#539) 2025-04-21 11:58:36 -04:00
test_output_tool.py Enable non-strict output types (#539) 2025-04-21 11:58:36 -04:00
test_pretty_print.py Pretty print result classes 2025-03-17 11:11:39 -04:00
test_responses.py Initial commit 2025-03-11 09:42:28 -07:00
test_responses_tracing.py Dev/add usage details to Usage class (#726) 2025-05-20 18:23:56 +01:00
test_result_cast.py Add usage to context in streaming (#595) 2025-04-24 18:20:35 -04:00
test_run_config.py Initial commit 2025-03-11 09:42:28 -07:00
test_run_step_execution.py Replace referencable_id with response_id (#508) 2025-04-14 21:37:18 -04:00
test_run_step_processing.py Replace referencable_id with response_id (#508) 2025-04-14 21:37:18 -04:00
test_strict_schema.py Initial commit 2025-03-11 09:42:28 -07:00
test_tool_choice_reset.py Make the reset behavior on tool use configurable 2025-03-25 13:29:32 -04:00
test_tool_converter.py Extract chat completions conversion code into helper (#522) 2025-04-15 18:31:17 -04:00
test_tool_use_behavior.py Introduce tool_use_behavior on agents 2025-03-18 21:55:12 -04:00
test_trace_processor.py Initial commit 2025-03-11 09:42:28 -07:00
test_tracing.py More fetch_normalized_spans 2025-03-21 18:31:06 +02:00
test_tracing_errors.py Convert MCP schemas to strict where possible (#414) 2025-04-01 16:50:13 -04:00
test_tracing_errors_streamed.py Mark handoff span as errored when multiple handoffs are requested (#344) 2025-03-26 10:44:59 -04:00
test_usage.py Dev/add usage details to Usage class (#726) 2025-05-20 18:23:56 +01:00
test_visualization.py Refactor visualization functions to improve formatting and streamline edge generation 2025-03-25 19:12:40 +01:00
testing_processor.py More fetch_normalized_spans 2025-03-21 18:31:06 +02:00

Tests

Before running any tests, make sure you have uv installed (and ideally run make sync after).

Running tests

make tests

Snapshots

We use inline-snapshots for some tests. If your code adds new snapshot tests or breaks existing ones, you can fix/create them. After fixing/creating snapshots, run make tests again to verify the tests pass.

Fixing snapshots

make snapshots-fix

Creating snapshots

make snapshots-update