[pytest] # Pytest configuration for Dangerous Pi # Test discovery patterns python_files = test_*.py python_classes = Test* python_functions = test_* # Test paths testpaths = tests # Output options addopts = # Verbose output -v # Show local variables in tracebacks -l # Show summary of all test outcomes -ra # Enable strict markers --strict-markers # Coverage reporting --cov=app/backend/services --cov=app/backend/api --cov-report=term-missing --cov-report=html:htmlcov --cov-report=xml # Fail on warnings # --strict-warnings # Show slowest tests --durations=10 # Markers markers = asyncio: marks tests as async (using pytest-asyncio) unit: marks tests as unit tests integration: marks tests as integration tests slow: marks tests as slow running skip_ci: skip tests in CI environment # Asyncio configuration asyncio_mode = auto # Logging log_cli = false log_cli_level = INFO log_file = tests/test.log log_file_level = DEBUG # Coverage options [coverage:run] source = app/backend omit = */tests/* */conftest.py */__pycache__/* */migrations/* [coverage:report] # Fail if coverage below threshold # fail_under = 80 exclude_lines = # Standard pragmas pragma: no cover # Defensive programming raise AssertionError raise NotImplementedError # Type checking if TYPE_CHECKING: # Abstract methods @abstractmethod # Debug code def __repr__ # Skip main blocks if __name__ == .__main__.: