pytest-check-links 4.3.3


pip install pytest-check-links

  This release has been yanked

Released: Jul 29, 2020

Project Links

Meta
Author: Jupyter Development Team
Requires Python: >=3.5

Classifiers

Intended Audience
  • Developers

License
  • OSI Approved :: BSD License

Operating System
  • OS Independent

Programming Language
  • Python
  • Python :: 3

Topic
  • Software Development :: Testing

pytest-check-links

pytest plugin that checks URLs for HTML-containing files.

codecov Build Status PyPI version

Supported files

  • .html
  • .rst
  • .md (TODO: select renderer)
  • .ipynb (requires nbconvert)

Install

pip install pytest-check-links

Use

pytest --check-links mynotebook.ipynb

Configure

--links-ext

default: md,rst,html,ipynb

A comma-separated list of extensions to check

--check-anchors

Also check whether links with #anchors HTML files (either local, or with served with html in the Content-Type) actually exist, and point to exactly one named anchor.

Cache

Caching requires the installation of requests-cache.

pip install requests-cache

If enabled, each occurance of a link will be checked, no matter how many times it appears in a collection of files to check.

--check-links-cache

Cache requests when checking links. Caching is disabled by default, and this option must be provided, even if other cache configuration options are provided.

--check-links-cache-name

default: .pytest-check-links-cache

Name of link cache, either the base name of a file or similar, depending on backend.

--check-links-cache-backend

default: sqlite3

Cache persistence backend. The other known backends are:

  • memory
  • redis
  • mongodb

See the requests-cache documentation for more information.

--check-links-cache-expire-after

default: None (unlimited)

Time to cache link responses (seconds).

--check-links-cache-backend-opt

Backend-specific options for link cache, provided as key:value. These are passed directly to the requests_cache.CachedSession constructor, as they vary depending on the backend.

Values will be parsed as JSON first, so to overload the default of caching all HTTP response codes (which requires a list of ints):

--check-links-backend-opt allowable_codes:[200]

TODO

  • pick a markdown renderer (probably commonmark) or make the markdown renderer pluggable
  • options for validating links (allow absolute links, only remote or local, etc.)
  • find URLs in Python docstrings
No dependencies