# pytest configuration for Calibre-Web Automated [pytest] # Test discovery testpaths = tests python_files = test_*.py python_classes = Test* python_functions = test_* # Output options addopts = -v --tb=short --strict-markers --disable-warnings -p no:cacheprovider --durations=10 # Markers for test categorization markers = smoke: Quick smoke tests that verify basic functionality (<30s total) unit: Fast isolated unit tests (no Docker, <2 min total) integration: Tests that involve multiple components (requires Docker) docker_integration: Integration tests using Docker container (slow, 5-10 min) docker_e2e: End-to-end tests requiring full Docker environment (very slow, 20-30 min) e2e: End-to-end tests requiring full environment docker: Tests that require Docker container slow: Tests that take >30 seconds individually network: Tests requiring network access calibre: Tests requiring Calibre CLI tools requires_calibre: Tests requiring Calibre tools timeout: Test timeout in seconds # Test execution settings # Disable xdist for Docker tests (container conflicts) norecursedirs = .git .tox dist build *.egg __pycache__ # Coverage options [coverage:run] source = cps scripts omit = */tests/* */test_* */__pycache__/* */site-packages/* cps/static/* cps/translations/* [coverage:report] precision = 2 show_missing = True skip_covered = False # Directories to exclude exclude_lines = pragma: no cover def __repr__ raise AssertionError raise NotImplementedError if __name__ == .__main__.: if TYPE_CHECKING: @abstractmethod