diff options
author | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2021-05-05 23:43:46 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-05 23:43:46 +0900 |
commit | d82c8a78900e48c037827d3c522acecd5a0b530c (patch) | |
tree | e07705635736640d687e42d53427246d66ccad10 /tests/test_config.py | |
parent | d006c66e237f1a5bc4e95b25a5176fa8dc9de65a (diff) | |
parent | afa80dfe03c22e4278ea57648c4db4640fdc36e8 (diff) | |
download | sphinx-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.py | 74 |
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 |