mirror of
https://fuchsia.googlesource.com/third_party/github.com/pylint-dev/pylint
synced 2024-09-21 07:58:04 +00:00
b72c0dd9a3
We no longer support Python 2 so we can remove the compatibility code we had in place for that version.
146 lines
3.3 KiB
Python
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
|