[tool:pytest] # Pytest configuration testpaths = tests python_files = test_*.py python_classes = Test* python_functions = test_* # Output options addopts = --verbose --strict-markers --strict-config --cov=app --cov-report=term-missing --cov-report=html --cov-report=xml --cov-branch --cov-fail-under=0 # Note: Coverage threshold set to 0 initially, should be increased gradually # Target: 80% coverage for production code # Markers for organizing tests markers = unit: Unit tests for individual functions/methods integration: Integration tests for API endpoints and workflows slow: Tests that take significant time to run security: Security-related tests requires_external: Tests requiring external services (OpenAI, Azure, etc.) requires_db: Tests requiring database requires_redis: Tests requiring Redis # Ignore patterns norecursedirs = .git .tox dist build *.egg __pycache__ .venv venv env # Coverage options [coverage:run] source = app omit = */tests/* */test_*.py */__pycache__/* */venv/* */env/* */.venv/* [coverage:report] exclude_lines = pragma: no cover def __repr__ raise AssertionError raise NotImplementedError if __name__ == .__main__.: if TYPE_CHECKING: @abstractmethod @abc.abstractmethod