Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
114 commits
Select commit Hold shift + click to select a range
cfb8847
basic integration utility
rodrigobr-msft Oct 21, 2025
4d93a46
Integration test suite factory implementation
rodrigobr-msft Oct 23, 2025
be2fb1c
Implementing core models for integration testing
rodrigobr-msft Oct 23, 2025
0d5539a
AutoClient mockup
rodrigobr-msft Oct 23, 2025
bf4c006
Adding runner starter code
rodrigobr-msft Oct 23, 2025
ebe622d
Adding foundational classes
rodrigobr-msft Oct 25, 2025
45678e9
Drafting AgentClient and ResponseClient implementations
rodrigobr-msft Oct 27, 2025
c2b84cb
Spec test
rodrigobr-msft Oct 27, 2025
2816e68
Filling in more implementation details
rodrigobr-msft Oct 27, 2025
2214827
More files
rodrigobr-msft Oct 27, 2025
c90c8e4
Cleaning up implementations
rodrigobr-msft Oct 29, 2025
36f5c3b
Adding expect replies sending method
rodrigobr-msft Oct 29, 2025
dfdd959
Beginning unit tests
rodrigobr-msft Oct 30, 2025
d4828fb
Adding integration decor from sample test cases
rodrigobr-msft Oct 30, 2025
91b3c44
Integration from service url tests
rodrigobr-msft Oct 31, 2025
1eefe44
_handle_conversation implementation for response_client
rodrigobr-msft Oct 31, 2025
a06da9a
AgentClient tests completed
rodrigobr-msft Oct 31, 2025
d36ec7a
Creating response client tests
rodrigobr-msft Nov 3, 2025
c096048
Hosting server for response client
rodrigobr-msft Nov 3, 2025
5451ddf
Response client tests completed
rodrigobr-msft Nov 3, 2025
c2cdd40
Beginning refactor of aiohttp runner
rodrigobr-msft Nov 3, 2025
7d91ef9
Unit test updates
rodrigobr-msft Nov 3, 2025
87610a5
Fixing issues in refactor
rodrigobr-msft Nov 3, 2025
ddfdd0b
Fixed TestIntegrationFromSample unit test
rodrigobr-msft Nov 3, 2025
dd0a87d
Another commit
rodrigobr-msft Nov 3, 2025
6a4e8ef
Reorganizing files
rodrigobr-msft Nov 3, 2025
7793790
Completed TestIntegrationFromServiceUrl unit tests
rodrigobr-msft Nov 3, 2025
3ebbd44
Reformatting with black
rodrigobr-msft Nov 3, 2025
a6681bf
Quickstart integration test beginning
rodrigobr-msft Nov 3, 2025
1a7264b
Draft of quickstart sample setup
rodrigobr-msft Nov 3, 2025
9ba4a43
Environment config connection
rodrigobr-msft Nov 3, 2025
fab4368
Renaming messaging endpoint to agent url
rodrigobr-msft Nov 4, 2025
a111155
Removing unnecessary files
rodrigobr-msft Nov 4, 2025
a2a1092
Fixing agent client payload sending
rodrigobr-msft Nov 4, 2025
ae8a286
First successful integration test
rodrigobr-msft Nov 4, 2025
9a5a6a8
Beginning foundational test cases
rodrigobr-msft Nov 4, 2025
aad011a
TypingIndicator test
rodrigobr-msft Nov 4, 2025
be0032a
Adding more test cases
rodrigobr-msft Nov 4, 2025
e3f4324
More foundational integration test cases
rodrigobr-msft Nov 4, 2025
a077eed
Reorganizing testing tools into package
rodrigobr-msft Nov 5, 2025
49161c3
Polished the testing framework package
rodrigobr-msft Nov 6, 2025
69d68d4
Adding verbose logging for results with benchmark tool
rodrigobr-msft Nov 6, 2025
3dc3efa
General cleanup
rodrigobr-msft Nov 6, 2025
054a3a2
Adding README
rodrigobr-msft Nov 6, 2025
8a5f22e
Revising README
rodrigobr-msft Nov 6, 2025
4b7c673
Formatting
rodrigobr-msft Nov 6, 2025
01f8f5a
Addressing PR comments
rodrigobr-msft Nov 6, 2025
9cccc1f
Merge branch 'main' of https://github.com/microsoft/Agents-for-python…
rodrigobr-msft Nov 6, 2025
8f87aff
Removing unused import
rodrigobr-msft Nov 6, 2025
e742e00
Update dev/microsoft-agents-testing/microsoft_agents/testing/sdk_conf…
rodrigobr-msft Nov 6, 2025
a6e305a
Update dev/microsoft-agents-testing/pyproject.toml
rodrigobr-msft Nov 6, 2025
c3877a3
Update dev/microsoft-agents-testing/microsoft_agents/testing/auth/gen…
rodrigobr-msft Nov 6, 2025
fb5b76d
Update dev/microsoft-agents-testing/microsoft_agents/testing/integrat…
rodrigobr-msft Nov 6, 2025
5eb9bfb
Removing unused code
rodrigobr-msft Nov 6, 2025
81b5d6b
Merge branch 'users/robrandao/integration' of https://github.com/micr…
rodrigobr-msft Nov 6, 2025
e451459
Adding field assertion helpers
rodrigobr-msft Nov 6, 2025
f241df8
Implementing field assertion types
rodrigobr-msft Nov 6, 2025
cb3c6aa
Adding data driven test foundation
rodrigobr-msft Nov 6, 2025
b8f3304
Separating assertions from checkers
rodrigobr-msft Nov 6, 2025
42b4ea1
Adjusting return values for check_activity with refactor
rodrigobr-msft Nov 6, 2025
2f79824
Fixing package name in pyproject.toml
rodrigobr-msft Nov 12, 2025
cfded79
Assertion test cases
rodrigobr-msft Nov 12, 2025
b6618b2
_parse_assertion unit tests
rodrigobr-msft Nov 12, 2025
1e8f19e
More assertion tests and fixes to data normalization logic
rodrigobr-msft Nov 12, 2025
d9eb5fa
Fixing more test cases with newest refactor
rodrigobr-msft Nov 12, 2025
f02b875
Fixing merge conflicts
rodrigobr-msft Nov 13, 2025
57b87eb
assert_activity tests
rodrigobr-msft Nov 13, 2025
6925093
Reorganizing tests
rodrigobr-msft Nov 13, 2025
6d55b29
Copyright comments
rodrigobr-msft Nov 13, 2025
6866f5d
DDT implementation outline
rodrigobr-msft Nov 13, 2025
1db2bf5
DataDrivenTest class
rodrigobr-msft Nov 13, 2025
e44a2da
select_activity implementation for assertions
rodrigobr-msft Nov 13, 2025
1cf561b
inverted assertions for quantifiers
rodrigobr-msft Nov 13, 2025
e651f92
ActivityAssertion class implementation
rodrigobr-msft Nov 13, 2025
ed7f2f1
DataDrivenTest implementation
rodrigobr-msft Nov 13, 2025
e88997e
Populate function for dictionaries
rodrigobr-msft Nov 13, 2025
0a48730
Populate tests
rodrigobr-msft Nov 14, 2025
2f96d88
Selector class implementation
rodrigobr-msft Nov 14, 2025
3a04fb5
Assertion tests completed for now
rodrigobr-msft Nov 14, 2025
31b2b99
Adding ActivityAssertion tests
rodrigobr-msft Nov 14, 2025
4df4788
DataDrivenTest implementation connected with default config
rodrigobr-msft Nov 14, 2025
0c195b1
More test cases and formatting
rodrigobr-msft Nov 14, 2025
7a79cc9
Data driven testing single test setup support
rodrigobr-msft Nov 14, 2025
f8c9166
Formatting
rodrigobr-msft Nov 14, 2025
57394b3
Dynamic data driven test loading
rodrigobr-msft Nov 17, 2025
a9cd55d
Another commit
rodrigobr-msft Nov 17, 2025
12cc474
DataDrivenTest class implementation with accompanying unit tests
rodrigobr-msft Nov 18, 2025
106f2fe
Recursive test loading with parent links
rodrigobr-msft Nov 18, 2025
4b00022
Slight reorg
rodrigobr-msft Nov 18, 2025
f797912
Formatting
rodrigobr-msft Nov 18, 2025
bf82f0d
Adding DataDrivenTest cases
rodrigobr-msft Nov 18, 2025
9904a2c
Fixing test cases
rodrigobr-msft Nov 18, 2025
9232eb6
Test case assertions
rodrigobr-msft Nov 18, 2025
a22b471
Reorganizing integration tests
rodrigobr-msft Nov 19, 2025
00d6769
Removed unused files
rodrigobr-msft Nov 19, 2025
efa3442
Reverting payload for benchmark
rodrigobr-msft Nov 19, 2025
6f96ffe
Added working integration tests
rodrigobr-msft Nov 19, 2025
f9b7f5d
Cleanup for PR
rodrigobr-msft Nov 19, 2025
f96fb74
Fixing typing annotation on ddt decorator
rodrigobr-msft Nov 19, 2025
da8bbce
Updated README.md
rodrigobr-msft Nov 19, 2025
f3d4b64
Adding Quickstart integration tests
rodrigobr-msft Nov 19, 2025
b29ae82
Fixing integration test name resolution
rodrigobr-msft Nov 19, 2025
81f388c
Adding initial for claire-bot tests
rodrigobr-msft Nov 20, 2025
4f55c9b
Claire-bot tests
rodrigobr-msft Nov 24, 2025
1fef2cc
Adding data driven tests for claire-bot
rodrigobr-msft Nov 24, 2025
4ec335a
Reformatting with black
rodrigobr-msft Nov 24, 2025
f0cbec1
Update dev/integration/agents/claire_bot/python/src/agent.py
rodrigobr-msft Nov 24, 2025
f56b2ad
Update dev/integration/agents/claire_bot/python/src/agent.py
rodrigobr-msft Nov 24, 2025
6f7fb6d
Merge branch 'main' into users/robrandao/data-driven-tests
rodrigobr-msft Nov 24, 2025
eb2017b
PR comments
rodrigobr-msft Nov 25, 2025
2d22411
Formatting
rodrigobr-msft Nov 25, 2025
fe9e7a1
Merge branch 'users/robrandao/data-driven-tests' of https://github.co…
rodrigobr-msft Nov 25, 2025
08fd5e6
Minor fixes
rodrigobr-msft Nov 26, 2025
19164d0
Merge branch 'main' into users/robrandao/data-driven-tests
rodrigobr-msft Nov 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion dev/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Development Tools

DISCLAIMER: the content of this directory is experimental and not meant for production use.

Development utilities for the Microsoft Agents for Python project.

## Contents
Expand All @@ -11,7 +13,7 @@ Development utilities for the Microsoft Agents for Python project.
## Quick Setup

```bash
./install.sh
pip install -e ./microsoft-agents-testing/ --config-settings editable_mode=compat
```

## Benchmarking
Expand Down
1 change: 0 additions & 1 deletion dev/install.sh

This file was deleted.

Empty file.
Empty file.
82 changes: 82 additions & 0 deletions dev/integration/agents/basic_agent/python/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# 🤖 Agents SDK Test Framework's Python Bot

This Python bot is part of the Agents SDK Test Framework. It exercises agent behaviors, validates responses, and helps iterate on integrations with LLMs and tools.

## Highlights ✨
- ⚙️ Test-runner for validating agent flows and tool/function calling
- 🧠 Integrates with LLM providers (Azure OpenAI, Semantic Kernel)
- 🖥️ Uses Microsoft Agents SDK packages for hosting and activity management

## 🚀 Getting Started

### 🛠️ Prerequisites
- Python 3.9+
- `pip` (Python package manager)

### 📦 Installation
1. Install dependencies:
```powershell
pip install --pre --no-deps -r pre_requirements.txt
pip install -r requirements.txt
```
#### ℹ️ Why are there two installation steps?

**Dependency installation is split into two steps to ensure reliability and avoid conflicts:**

- **Step 1:** `pre_requirements.txt` — Installs core Microsoft Agents SDK packages. These may require pre-release flags or special handling, and installing them first (without dependency resolution) helps prevent version clashes.
- **Step 2:** `requirements.txt` — Installs the rest of the project dependencies, after the core packages are in place, to ensure compatibility and a smooth setup.

This approach helps avoid dependency issues and guarantees all required packages are installed in the correct order.

### ⚙️ Set up Environment Variables
Copy or rename `.envLocal` to `.env` and fill in the required values (keys, endpoints, etc.).

> 💡 Tip: The repo often uses Azure resources (Azure OpenAI / Bot Service) in examples.

### ▶️ Running the Agent
Start the agent locally:
```powershell
python app.py
```

## 📁 Project Layout
```
Agent/python/
agent.py
app.py
config.py
requirements.txt
requirements2.txt
pre_requirements.txt
.env
.envLocal
weather/
agents/
weather_forecast_agent.py
weather_forecast_agent_response.py
plugins/
adaptive_card_plugin.py
date_time_plugin.py
weather_forecast_plugin.py
weather_forecast.py
```

This launches the process that hosts the agent and exposes the `/api/messages` endpoint.

## 📚 Key Dependencies
- `microsoft-agents-hosting-core`, `microsoft-agents-hosting-aiohttp`, `microsoft-agents-activity`, `microsoft-agents-authentication-msal` — Microsoft Agents SDK packages
- `semantic-kernel` — LLM orchestration
- `openai` — Azure OpenAI integration

## Health & Messaging Endpoints
- Health check: (if exposed) `GET /` should return 200
- Messaging / activity endpoint: `POST /api/messages` (see `app.py`)

## Agent Flow 🔁
1. The test runner accepts scenario inputs (natural language user messages).
2. It forwards activity payloads to the agent runtime.
3. The agent may call functions/tools (e.g., weather, date/time).
4. The runner validates the agent's JSON / Adaptive Card outputs and records results.

## Contributing
- Open a PR with changes and add a short description of the test scenarios you added or modified.
Empty file.
8 changes: 8 additions & 0 deletions dev/integration/agents/basic_agent/python/env.TEMPLATE
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
CONNECTIONS__SERVICE_CONNECTION__SETTINGS__CLIENTID=
CONNECTIONS__SERVICE_CONNECTION__SETTINGS__CLIENTSECRET=
CONNECTIONS__SERVICE_CONNECTION__SETTINGS__TENANTID=

AZURE_OPENAI_ENDPOINT=
AZURE_OPENAI_API_KEY=
AZURE_OPENAI_API_VERSION=
AZURE_OPENAI_DEPLOYMENT_NAME=
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
microsoft-agents-hosting-core
microsoft-agents-hosting-aiohttp
microsoft-agents-authentication-msal
microsoft-agents-activity
microsoft-agents-hosting-teams
microsoft-agents-copilotstudio-client
microsoft-agents-storage-blob
microsoft-agents-storage-cosmos
9 changes: 9 additions & 0 deletions dev/integration/agents/basic_agent/python/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
openai
openai-agents
semantic-kernel
microsoft-agents-hosting-aiohttp
microsoft-agents-authentication-msal
microsoft-agents-hosting-teams
microsoft-agents-copilotstudio-client
microsoft-agents-storage-blob
microsoft-agents-storage-cosmos
Empty file.
Loading