annator-command-center / tests /e2e /QUICKSTART.md
techprotrade's picture
Deploy ATOM FastAPI command center runtime (part 7)
cc036ff verified
|
Raw
History Blame Contribute Delete
4.48 kB

E2E Testing Quick Start Guide

Overview

This guide provides step-by-step instructions for running the end-to-end tests for Atom's high-impact features.

Prerequisites

1. Install Dependencies

cd /Users/rushiparikh/projects/atom/backend

# Install pytest and plugins
pip install pytest pytest-asyncio pytest-cov pytest-benchmark pytest-xdist

# Install test dependencies
pip install httpx playwright freezegun

# Install Playwright browsers (for Scenario 5)
playwright install chromium

2. Configure Environment

# Required for LLM streaming tests (Scenario 2)
export OPENAI_API_KEY="sk-..."
export ANTHROPIC_API_KEY="sk-ant-..."

# Optional: Other providers
export DEEPSEEK_API_KEY="sk-..."
export GEMINI_API_KEY="..."

# Feature flags (automatically set by conftest.py)
export ATOM_ENVIRONMENT=test
export ATOM_DATABASE_URL="sqlite:///:memory:"

Running Tests

Run All E2E Scenarios

cd /Users/rushiparikh/projects/atom/backend
PYTHONPATH=/Users/rushiparikh/projects/atom/backend pytest tests/e2e/ -v -m e2e

Run Individual Scenario

# Scenario 1: Agent Governance
pytest tests/e2e/test_scenario_01_governance.py -v -s

# Scenario 2: LLM Streaming
pytest tests/e2e/test_scenario_02_streaming.py -v -s

# Scenario 3: Canvas Presentations
pytest tests/e2e/test_scenario_03_canvas.py -v -s

# And so on...

Run with Coverage

pytest tests/e2e/ -v -m e2e --cov=core --cov-report=html
open htmlcov/index.html

Run in Parallel (Faster)

pytest tests/e2e/ -v -m e2e -n auto

Generate HTML Report

pytest tests/e2e/ -v -m e2e --html=e2e_report.html --self-contained-html
open e2e_report.html

Test Scenarios

# Scenario Description Duration
1 Governance Agent maturity-based routing ~5s
2 Streaming Multi-provider LLM streaming ~30s*
3 Canvas Canvas presentations & forms ~5s
4 Guidance Real-time agent guidance ~5s
5 Browser Browser automation ~10s*
6 Episodes Episodic memory & retrieval ~5s
7 Graduation Agent graduation framework ~5s
8 Training Student agent training ~5s
9 Device Device capabilities & permissions ~5s
10 Deeplinks/Feedback Deep linking & feedback ~5s

*Requires real API keys or Playwright installation

Expected Results

All tests should pass with output similar to:

tests/e2e/test_scenario_01_governance.py::test_agent_governance_maturity_routing PASSED
tests/e2e/test_scenario_02_streaming.py::test_multi_provider_llm_streaming PASSED
tests/e2e/test_scenario_03_canvas.py::test_canvas_presentations_with_governance PASSED
tests/e2e/test_scenario_04_guidance.py::test_real_time_agent_guidance PASSED
tests/e2e/test_scenario_05_browser.py::test_browser_automation_with_playwright PASSED
tests/e2e/test_scenario_06_episodes.py::test_episodic_memory_and_retrieval PASSED
tests/e2e/test_scenario_07_graduation.py::test_agent_graduation_framework PASSED
tests/e2e/test_scenario_08_training.py::test_student_agent_training_system PASSED
tests/e2e/test_scenario_09_device.py::test_device_capabilities_and_permissions PASSED
tests/e2e/test_scenario_10_deeplinks_feedback.py::test_deeplinking_and_enhanced_feedback PASSED

=== 10 passed in 45.23s ===

Troubleshooting

"No module named 'pytest'"

pip install pytest pytest-asyncio

"Playwright not installed"

playwright install chromium

"API key required"

Either provide real API keys or skip tests that require them:

pytest tests/e2e/ -v -m e2e -m "not requires_api_keys"

Tests timeout

Increase timeout or run individually:

pytest tests/e2e/test_scenario_02_streaming.py -v -s --timeout=120

Next Steps

  1. Review Results: Check the HTML report for detailed results
  2. Check Coverage: Open htmlcov/index.html to see coverage report
  3. Debug Failures: Use -v -s flags for verbose output
  4. Extend Tests: Add new scenarios following the existing pattern

Additional Resources