Component: TestingMixin
Module:
gaia_agent_code.tools.testing
Import: from gaia_agent_code.tools.testing import TestingMixinOverview
TestingMixin provides Python code execution and testing tools with timeout management and output capture. It enables running Python scripts and pytest test suites with proper isolation and error handling. Key Features:- Execute Python files as subprocesses
- Run pytest test suites
- Capture stdout and stderr
- Timeout management
- Environment variable injection
- Working directory control
- Test result parsing
Tool Specifications
1. execute_python_file
Execute a Python file as a subprocess with full control. Parameters:file_path(str, required): Path to Python fileargs(List[str] | str, optional): CLI argumentstimeout(int, optional): Timeout in seconds (default: 60)working_directory(str, optional): Working directoryenv_vars(Dict[str, str], optional): Environment variables
2. run_tests
Run pytest test suite for a project. Parameters:project_path(str, optional): Project directory (default: ”.”)pytest_args(List[str] | str, optional): Pytest argumentstimeout(int, optional): Timeout in seconds (default: 120)env_vars(Dict[str, str], optional): Environment variables
Usage Examples
Example 1: Execute Python Script
Example 2: Run Full Test Suite
Example 3: Run Specific Test File
Example 4: Environment Variables
Example 5: Handle Timeouts
Output Handling
Truncation
Output is truncated to prevent memory issues:Failure Summary Parsing
For pytest, extract failure count from output:Environment Configuration
PYTHONPATH Management
Automatically adds project directory to PYTHONPATH:Testing Requirements
File:tests/agents/code/test_testing.py
Error Handling
File Not Found
Invalid Arguments
Timeout Handling
Performance Characteristics
- Script Execution: Depends on script complexity
- Test Suite: Depends on test count and complexity
- Timeout Precision: ±0.1 seconds
- Output Truncation: 10,000 characters per stream
- Environment Setup: ~10ms overhead
Dependencies
TestingMixin Technical Specification