third_party.pylibs.pylint.src/tests/extensions/test_check_docs_utils.py
Hugo van Kemenade b72c0dd9a3 Remove redundant compatibility code (#3097)
We no longer support Python 2 so we can remove
the compatibility code we had in place for that version.
2019-09-12 06:10:27 -05:00

146 lines
3.3 KiB
Python

# Copyright (c) 2016-2017 Claudiu Popa <pcmanticore@gmail.com>
# Copyright (c) 2016 Derek Gustafson <degustaf@gmail.com>
# Copyright (c) 2016 Ashley Whetter <ashley@awhetter.co.uk>
# Copyright (c) 2018 Anthony Sottile <asottile@umich.edu>
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
# For details: https://github.com/PyCQA/pylint/blob/master/COPYING
"""Unit tests for the pylint checkers in :mod:`pylint.extensions.check_docs`,
in particular the parameter documentation checker `DocstringChecker`
"""
import astroid
import pytest
import pylint.extensions._check_docs_utils as utils
@pytest.mark.parametrize(
"string,count",
[("abc", 0), ("", 0), (" abc", 2), ("\n abc", 0), (" \n abc", 3)],
)
def test_space_indentation(string, count):
"""Test for pylint_plugin.ParamDocChecker"""
assert utils.space_indentation(string) == count
@pytest.mark.parametrize(
"raise_node,expected",
[
(
astroid.extract_node(
"""
def my_func():
raise NotImplementedError #@
"""
),
{"NotImplementedError"},
),
(
astroid.extract_node(
"""
def my_func():
raise NotImplementedError("Not implemented!") #@
"""
),
{"NotImplementedError"},
),
(
astroid.extract_node(
"""
def my_func():
try:
fake_func()
except RuntimeError:
raise #@
"""
),
{"RuntimeError"},
),
(
astroid.extract_node(
"""
def my_func():
try:
fake_func()
except RuntimeError:
if another_func():
raise #@
"""
),
{"RuntimeError"},
),
(
astroid.extract_node(
"""
def my_func():
try:
fake_func()
except RuntimeError:
try:
another_func()
raise #@
except NameError:
pass
"""
),
{"RuntimeError"},
),
(
astroid.extract_node(
"""
def my_func():
try:
fake_func()
except RuntimeError:
try:
another_func()
except NameError:
raise #@
"""
),
{"NameError"},
),
(
astroid.extract_node(
"""
def my_func():
try:
fake_func()
except:
raise #@
"""
),
set(),
),
(
astroid.extract_node(
"""
def my_func():
try:
fake_func()
except (RuntimeError, ValueError):
raise #@
"""
),
{"RuntimeError", "ValueError"},
),
(
astroid.extract_node(
"""
import not_a_module
def my_func():
try:
fake_func()
except not_a_module.Error:
raise #@
"""
),
set(),
),
],
)
def test_exception(raise_node, expected):
found = utils.possible_exc_types(raise_node)
assert found == expected