Files
agent-framework/python/packages/azurefunctions/tests/integration_tests
T
Giles Odigwe 7ce27ddda3 Increase reliable streaming test timeouts from 30s to 60s
The LLM call through Azure OpenAI + Redis streaming pipeline can exceed
30s in CI due to cold starts or throttling. Raise to 60s to reduce
flaky timeouts while still bounded by pytest's 120s per-test limit.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
7ce27ddda3 ยท 2026-04-30 08:42:08 -07:00
History
..

Sample Integration Tests

Integration tests that validate the Durable Agent Framework samples by running them as Azure Functions.

Setup

1. Create .env file

Copy .env.example to .env and fill in your Azure credentials:

cp .env.example .env

Required variables:

  • AZURE_OPENAI_ENDPOINT
  • AZURE_OPENAI_MODEL
  • AZURE_OPENAI_API_KEY
  • AzureWebJobsStorage
  • DURABLE_TASK_SCHEDULER_CONNECTION_STRING
  • FUNCTIONS_WORKER_RUNTIME

2. Start required services

Azurite (for orchestration tests):

docker run -d -p 10000:10000 -p 10001:10001 -p 10002:10002 mcr.microsoft.com/azure-storage/azurite

Durable Task Scheduler:

docker run -d -p 8080:8080 -p 8082:8082 -e DTS_USE_DYNAMIC_TASK_HUBS=true mcr.microsoft.com/dts/dts-emulator:latest

Running Tests

The tests automatically start and stop the Azure Functions app for each sample.

Run all sample tests

uv run pytest packages/azurefunctions/tests/integration_tests -v

Run specific sample

uv run pytest packages/azurefunctions/tests/integration_tests/test_01_single_agent.py -v

Run with verbose output

uv run pytest packages/azurefunctions/tests/integration_tests -sv

How It Works

Each test file uses pytest markers to automatically configure and start the function app:

pytestmark = [
    pytest.mark.sample("01_single_agent"),
    pytest.mark.usefixtures("function_app_for_test"),
    skip_if_azure_functions_integration_tests_disabled,
]

The function_app_for_test fixture:

  1. Loads environment variables from .env
  2. Validates required variables are present
  3. Starts the function app on a dynamically allocated port
  4. Waits for the app to be ready
  5. Runs your tests
  6. Tears down the function app

Troubleshooting

Missing environment variables: Ensure your .env file contains all required variables from .env.example.

Tests timeout: Check that Azure OpenAI credentials are valid and the service is accessible.