[pytest]
addopts =
    --strict-markers
    --strict-config
    --verbose
    --tb=short
    --durations=10
    --maxfail=3
    --timeout=15
    --timeout-method=thread
    -ra
testpaths = tests
norecursedirs = .markitect_workspace .git __pycache__ .pytest_cache
python_files = test_*.py *_test.py
python_classes = Test*
python_functions = test_*
markers =
    slow: marks tests as slow (deselect with '-m "not slow"')
    integration: marks tests as integration tests
    e2e: marks tests as end-to-end tests
    performance: marks tests as performance tests
    unit: marks tests as unit tests
    smoke: marks tests as smoke tests for quick validation
    asyncio: marks tests as async tests
    timeout(seconds): marks tests with custom timeout duration
filterwarnings =
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