[report] # Regexes for lines to exclude from consideration exclude_lines = # Re-enable the standard coverage pragma nocoverage # Don't complain if non-runnable code isn't run: if False: # Don't require coverage for base class NotImplementedErrors raise NotImplementedError() # Don't require coverage for test suite AssertionError -- they're usually for clarity raise AssertionError # Don't require coverage for __str__ statements just used for printing def __(repr|str)__[(]self[)] -> .*: # Don't require coverage for errors about unsupported webhook event types raise UnsupportedWebhookEventTypeError # Don't require coverage for blocks only run when type-checking if TYPE_CHECKING: # Don't require coverage for abstract methods; they're never called. @abstractmethod # PEP 484 overloading syntax ^\s*\.\.\. # Skipped unit tests @skip [run] data_file=var/.coverage # dynamic_context=test_function, combined with using # html_report(..., show_contexts=True), means the HTML report can detail # which test(s) executed each line with coverage. This has modest # overhead but is very useful for finding existing tests for a code path. dynamic_context=test_function omit = */zulip-venv-cache/* */migrations/* */management/commands/* # Parts of the test runner infrastructure tools/test-backend zerver/lib/test_fixtures.py zerver/lib/test_runner.py # Has its own independent test suite zerver/openapi/python_examples.py # Debugging tools that don't lend themselves well to unit tests zerver/lib/debug.py # Part of provisioning/populate_db zerver/lib/generate_test_data.py # Excluded because its coverage state is flaky. zerver/tornado/ioloop_logging.py # Zulip's library for use in scripts scripts/lib/zulip_tools.py # Used only for the legacy Zephyr integration, and unlikely to ever be unit-tested zerver/lib/ccache.py # Settings.py files are hard to test zproject/*settings.py # https://github.com/davidhalter/jedi/issues/1122 blub