Skip to main content

A coverage plugin to provide sensible default settings

Project description

Build Status Azure DevOps coverage

covdefaults

A coverage plugin to provide sensible default settings

installation

pip install covdefaults

usage

to enable the plugin, add covdefaults to your coverage plugins

in .coveragerc:

[run]
plugins = covdefaults

in setup.cfg / tox.ini:

[coverage:run]
plugins = covdefaults

in pyproject.toml:

[tool.coverage.run]
plugins = ["covdefaults"]

default settings

[coverage:run]

branch = True
source = .
omit =
    */.tox/*
    */__main__.py
    */setup.py
    */venv*/*

[coverage:report]

show_missing = True
skip_covered = True
fail_under = 100
exclude =
    # a more strict default pragma
    \# pragma: no cover\b

    # allow defensive code
    ^\s*raise AssertionError\b
    ^\s*raise NotImplementedError\b
    ^\s*return NotImplemented\b
    ^\s*raise$

    # typing-related code
    ^if (False|TYPE_CHECKING):
    : \.\.\.$
    -> ['"]?NoReturn['"]?:

    # non-runnable code
    if __name__ == ['"]__main__['"]:$

    # additional platform related pragmas (see below)

platform specific # pragma: no cover

several # pragma: no cover tags will be added automatically based on the platform and implementation.

these will be in the form of:

# pragma: TAG no cover

or

# pragma: TAG cover

these tags will be generated by the following values:

  • os.name
    • nt (windows)
    • posix (linux, macOs, cygwin, etc.)
  • sys.platform
    • cygwin
    • darwin (macOs)
    • linux
    • msys
    • win32
  • sys.implementation.name
    • cpython
    • pypy

for every tag which does not match, you can use negation. here's an example:

if sys.platform == 'win32':  # pragma: win32 cover
    bin_dir = 'Scripts'
else:  # pragma: win32 no cover
    bin_dir = 'bin'

note here that # pragma: win32 cover will become a "no cover" for everything which is not win32 -- whereas the # pragma: win32 no cover will be a "no cover" only on win32.

overriding options

several of the options can be overridden / extended in your coverage configuration. the examples below assume .coveragerc however any of the files coverage supports work as well.

run:omit

[run]
omit =
    pre_commit/resources/*

this will result in the pre_commit/resources/* being omitted in addition to the defaults provided by covdefaults.

[covdefaults]
subtract_omit = */.tox/*

this will result in */.tox/* not being omitted (*/.tox/* is among the defaults provided by covdefaults).

report:exclude_lines

[report]
exclude_lines =
    ^if MYPY:$

this will result in lines matching ^if MYPY:$ to additionally be excluded from coverage in addition to the defaults provided by covdefaults.

report:fail_under

[report]
fail_under = 90

covdefaults will not change the value if you provide one for fail_under

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

covdefaults-0.1.0.tar.gz (4.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

covdefaults-0.1.0-py2.py3-none-any.whl (4.7 kB view details)

Uploaded Python 2Python 3

File details

Details for the file covdefaults-0.1.0.tar.gz.

File metadata

  • Download URL: covdefaults-0.1.0.tar.gz
  • Upload date:
  • Size: 4.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.6.9

File hashes

Hashes for covdefaults-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d800b22e689ee07544d45af2ede03a11a586654ce133047304a1c313dc8b0bb2
MD5 f3e5112646cad2607b6d83190b469acb
BLAKE2b-256 6d27c93ca54b8dcf31df6953afaaf49369086e1aa2e50e9cb06230df0656f1c6

See more details on using hashes here.

File details

Details for the file covdefaults-0.1.0-py2.py3-none-any.whl.

File metadata

  • Download URL: covdefaults-0.1.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 4.7 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.6.9

File hashes

Hashes for covdefaults-0.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 00968ad8d8f4bdf309c06814a1c98590bdaaf376ab03f8bbc69918f217c5f0b4
MD5 88000abc507490e545ddf47de0de74ef
BLAKE2b-256 8fc3bc38ae520b442bd6653c6413e8bec6799895de18df60fa83882f2e93dd5a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page