[pytest]
# Pytest Configuration for Attune E2E Tests

# Test discovery patterns
python_files = test_*.py
python_classes = Test*
python_functions = test_*

# Test paths
testpaths = tests/e2e

# Minimum Python version
minversion = 7.0

# CLI options
addopts =
    # Verbose output
    -v
    # Show summary of all test outcomes
    -ra
    # Show local variables in tracebacks
    --showlocals
    # Strict markers (fail if unknown marker used)
    --strict-markers
    # Strict config (fail on config warnings)
    --strict-config
    # Capture output (can override with -s)
    --capture=no
    # Disable warnings summary
    --disable-warnings
    # Timeout for tests (safety net)
    --timeout=300

# Markers for test categories
markers =
    tier1: Tier 1 tests - Core automation flows (MVP essential)
    tier2: Tier 2 tests - Orchestration and data flow
    tier3: Tier 3 tests - Advanced features and edge cases
    slow: Tests that take longer than 30 seconds
    integration: Integration tests requiring all services
    unit: Unit tests that don't require external services
    timer: Tests involving timer triggers
    webhook: Tests involving webhook triggers
    workflow: Tests involving workflows
    datastore: Tests involving key-value datastore
    inquiry: Tests involving human-in-the-loop inquiries
    security: Security and RBAC tests
    performance: Performance and scalability tests
    rbac: Role-based access control tests
    secrets: Secret management and injection tests
    http: HTTP runner tests
    runner: Action runner tests (Python, Node.js, HTTP, container)
    validation: Parameter and input validation tests
    parameters: Parameter handling tests
    edge_case: Edge case and boundary condition tests
    rules: Rule evaluation and execution tests
    criteria: Rule criteria evaluation tests
    multi_tenant: Multi-tenancy and tenant isolation tests
    notifications: Notification system tests
    websocket: WebSocket real-time notification tests
    container: Container runner tests
    logs: Log capture and size limit tests
    limits: Resource and size limit tests
    orchestration: Advanced workflow orchestration tests

# Logging
log_cli = true
log_cli_level = INFO
log_cli_format = %(asctime)s [%(levelname)8s] %(message)s
log_cli_date_format = %Y-%m-%d %H:%M:%S

# Test output
console_output_style = progress

# Coverage (if pytest-cov installed)
# Uncomment to enable coverage reporting
# addopts = --cov=attune --cov-report=html --cov-report=term

# Timeout settings
timeout = 300
timeout_method = thread

# Asyncio settings (if pytest-asyncio installed)
asyncio_mode = auto

# Environment variables
env =
    ATTUNE_API_URL=http://localhost:8080
    TEST_TIMEOUT=60
