Check links in files
Project description
pytest-check-links
pytest plugin that checks URLs for HTML-containing files.
Supported files
.html
.rst
.md
(TODO: select renderer).ipynb
(requiresnbconvert
)
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.
--check-links-ignore
A regular expression that matches URIs that should not be checked. Can be specified multiple times for multiple ignore patterns. This can be used for files that have a lot of links to GitHub pages, such as a Changelog. GitHub has rate limiting, which would normally cause these files to take up to an hour to complete for larger repositories. For example:
pytest --check-links --check-links-ignore "https://github.com/.*/pull/.*" CHANGELOG.md
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 int
s):
--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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pytest_check_links-0.5.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bd21e165438c84c9847ee0079232f30f03b89914972e3312e30b7e6c193e9486 |
|
MD5 | a83b72b1173f7d31847824a179629eb1 |
|
BLAKE2b-256 | f3d30acd798d1b35c55379f4a0d7bfe9dd2b57098c15cd6cd7a8d84cde108f82 |