Skip to main content
Component: TestingMixin Module: gaia_agent_code.tools.testing Import: from gaia_agent_code.tools.testing import TestingMixin

Overview

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 file
  • args (List[str] | str, optional): CLI arguments
  • timeout (int, optional): Timeout in seconds (default: 60)
  • working_directory (str, optional): Working directory
  • env_vars (Dict[str, str], optional): Environment variables
Returns:
Example:

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 arguments
  • timeout (int, optional): Timeout in seconds (default: 120)
  • env_vars (Dict[str, str], optional): Environment variables
Returns:
Example:

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