# .coveragerc to control coverage.py
[run]
branch = True
cover_pylib = False
include = */policyhandler/*.py
omit =
    # omit client libs
    policyhandler/PolicyEngine.py
    policyhandler/onap/CommonLogger.py

[report]
# Regexes for lines to exclude from consideration
exclude_lines =
    # Have to re-enable the standard pragma
    pragma: no cover

    # Don't complain about missing debug-only code:
    def __repr__
    if self\.debug

    # Don't complain if tests don't hit defensive assertion code:
    raise AssertionError
    raise NotImplementedError

    # Don't complain if non-runnable code isn't run:
    if 0:
    if __name__ == .__main__.:

ignore_errors = True

[xml]
output = coverage-reports/coverage-policyhandler.xml

