summaryrefslogtreecommitdiff
path: root/tests/test_config.py
diff options
context:
space:
mode:
authorTakeshi KOMIYA <i.tkomiya@gmail.com>2021-05-05 23:43:46 +0900
committerGitHub <noreply@github.com>2021-05-05 23:43:46 +0900
commitd82c8a78900e48c037827d3c522acecd5a0b530c (patch)
treee07705635736640d687e42d53427246d66ccad10 /tests/test_config.py
parentd006c66e237f1a5bc4e95b25a5176fa8dc9de65a (diff)
parentafa80dfe03c22e4278ea57648c4db4640fdc36e8 (diff)
downloadsphinx-git-d82c8a78900e48c037827d3c522acecd5a0b530c.tar.gz
Merge pull request #9131 from RuRo/feature/glob-nitpick-ignore
Ignore nitpick warnings with regular expressions using `nitpick_ignore_regex`
Diffstat (limited to 'tests/test_config.py')
-rw-r--r--tests/test_config.py74
1 files changed, 74 insertions, 0 deletions
diff --git a/tests/test_config.py b/tests/test_config.py
index a48e7ce30..b9b4f612a 100644
--- a/tests/test_config.py
+++ b/tests/test_config.py
@@ -311,3 +311,77 @@ def test_check_enum_for_list_failed(logger):
config.init_values()
check_confval_types(None, config)
assert logger.warning.called
+
+
+nitpick_warnings = [
+ "WARNING: py:const reference target not found: prefix.anything.postfix",
+ "WARNING: py:class reference target not found: prefix.anything",
+ "WARNING: py:class reference target not found: anything.postfix",
+ "WARNING: js:class reference target not found: prefix.anything.postfix",
+]
+
+
+@pytest.mark.sphinx(testroot='nitpicky-warnings')
+def test_nitpick_base(app, status, warning):
+ app.builder.build_all()
+
+ warning = warning.getvalue().strip().split('\n')
+ assert len(warning) == len(nitpick_warnings)
+ for actual, expected in zip(warning, nitpick_warnings):
+ assert expected in actual
+
+
+@pytest.mark.sphinx(testroot='nitpicky-warnings', confoverrides={
+ 'nitpick_ignore': [
+ ('py:const', 'prefix.anything.postfix'),
+ ('py:class', 'prefix.anything'),
+ ('py:class', 'anything.postfix'),
+ ('js:class', 'prefix.anything.postfix'),
+ ],
+})
+def test_nitpick_ignore(app, status, warning):
+ app.builder.build_all()
+ assert not len(warning.getvalue().strip())
+
+
+@pytest.mark.sphinx(testroot='nitpicky-warnings', confoverrides={
+ 'nitpick_ignore_regex': [
+ (r'py:.*', r'.*postfix'),
+ (r'.*:class', r'prefix.*'),
+ ]
+})
+def test_nitpick_ignore_regex1(app, status, warning):
+ app.builder.build_all()
+ assert not len(warning.getvalue().strip())
+
+
+@pytest.mark.sphinx(testroot='nitpicky-warnings', confoverrides={
+ 'nitpick_ignore_regex': [
+ (r'py:.*', r'prefix.*'),
+ (r'.*:class', r'.*postfix'),
+ ]
+})
+def test_nitpick_ignore_regex2(app, status, warning):
+ app.builder.build_all()
+ assert not len(warning.getvalue().strip())
+
+
+@pytest.mark.sphinx(testroot='nitpicky-warnings', confoverrides={
+ 'nitpick_ignore_regex': [
+ # None of these should match
+ (r'py:', r'.*'),
+ (r':class', r'.*'),
+ (r'', r'.*'),
+ (r'.*', r'anything'),
+ (r'.*', r'prefix'),
+ (r'.*', r'postfix'),
+ (r'.*', r''),
+ ]
+})
+def test_nitpick_ignore_regex_fullmatch(app, status, warning):
+ app.builder.build_all()
+
+ warning = warning.getvalue().strip().split('\n')
+ assert len(warning) == len(nitpick_warnings)
+ for actual, expected in zip(warning, nitpick_warnings):
+ assert expected in actual