mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
To avoid needing to turn off anchor checking across the entire documentation allow skipping based on matching the anchor against a regex. Some sites/pages use JavaScript to perform anchor assignment in a webpage, which would require rendering the page to determine whether the anchor exists. Allow fine grain control of whether the anchor is checked based on pattern matching, until such stage as the retrieved URLs can be passed through an engine for deeper checking on the HTML doctree.
39 lines
1.0 KiB
Python
39 lines
1.0 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
test_build_linkcheck
|
|
~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Test the build process with manpage builder with the test root.
|
|
|
|
:copyright: Copyright 2007-2016 by the Sphinx team, see AUTHORS.
|
|
:license: BSD, see LICENSE for details.
|
|
"""
|
|
from __future__ import print_function
|
|
|
|
from util import with_app
|
|
|
|
|
|
@with_app('linkcheck', testroot='linkcheck', freshenv=True)
|
|
def test_defaults(app, status, warning):
|
|
app.builder.build_all()
|
|
|
|
assert (app.outdir / 'output.txt').exists()
|
|
content = (app.outdir / 'output.txt').text()
|
|
|
|
print(content)
|
|
# looking for #top should fail
|
|
assert "Anchor 'top' not found" in content
|
|
assert len(content.splitlines()) == 1
|
|
|
|
|
|
@with_app('linkcheck', testroot='linkcheck', freshenv=True,
|
|
confoverrides={'linkcheck_anchors_ignore': ["^!", "^top$"]})
|
|
def test_anchors_ignored(app, status, warning):
|
|
app.builder.build_all()
|
|
|
|
assert (app.outdir / 'output.txt').exists()
|
|
content = (app.outdir / 'output.txt').text()
|
|
|
|
# expect all ok when excluding #top
|
|
assert not content
|