[tool:pytest]
# pytest configuration for AITBC

# Test discovery
testpaths = tests
python_files = test_*.py *_test.py
python_classes = Test*
python_functions = test_*

# Path configuration
addopts = 
    --strict-markers
    --strict-config
    --verbose
    --tb=short
    --cov=apps
    --cov=packages
    --cov-report=html:htmlcov
    --cov-report=term-missing
    --cov-fail-under=80

# Import paths
import_paths = 
    .
    apps
    packages

# Markers
markers =
    unit: Unit tests (fast, isolated)
    integration: Integration tests (require external services)
    e2e: End-to-end tests (full system)
    performance: Performance tests (measure speed/memory)
    security: Security tests (vulnerability scanning)
    slow: Slow tests (run separately)
    gpu: Tests requiring GPU resources
    confidential: Tests for confidential transactions
    multitenant: Multi-tenancy specific tests

# Minimum version
minversion = 6.0

# Test session configuration
timeout = 300
timeout_method = thread

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

# Warnings
filterwarnings =
    error
    ignore::UserWarning
    ignore::DeprecationWarning
    ignore::PendingDeprecationWarning

# Async configuration
asyncio_mode = auto

# Parallel execution
# Uncomment to enable parallel testing (requires pytest-xdist)
# addopts = -n auto

# Custom configuration files
ini_options =
    markers = [
        "unit: Unit tests",
        "integration: Integration tests",
        "e2e: End-to-end tests",
        "performance: Performance tests",
        "security: Security tests",
        "slow: Slow tests",
        "gpu: GPU tests",
        "confidential: Confidential transaction tests",
        "multitenant: Multi-tenancy tests"
    ]
