blob: 8cf8e041f1d4afebaf1c49e87606af8b77d1445c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
|
"""Tests for missing-raises-doc and missing-raises-type-doc for Numpy style docstrings
Styleguide:
https://numpydoc.readthedocs.io/en/latest/format.html#docstring-standard
"""
# pylint: disable=function-redefined, invalid-name, undefined-variable, missing-function-docstring
# pylint: disable=unused-argument, try-except-raise, import-outside-toplevel
# pylint: disable=too-few-public-methods, disallowed-name, using-constant-test
def test_find_missing_numpy_raises(self): # [missing-raises-doc]
"""This is a Numpy docstring.
Raises
------
NameError
Never
"""
raise RuntimeError("hi")
raise NameError("hi") # [unreachable]
def test_find_all_numpy_raises(self):
"""This is a Numpy docstring.
Raises
------
RuntimeError
Always
NameError
Never
"""
raise RuntimeError("hi")
raise NameError("hi") # [unreachable]
def test_find_rethrown_numpy_raises(self): # [missing-raises-doc]
"""This is a Numpy docstring.
Raises
------
NameError
Sometimes
"""
try:
fake_func()
except RuntimeError:
raise
raise NameError("hi")
def test_find_rethrown_numpy_multiple_raises(self): # [missing-raises-doc]
"""This is a Numpy docstring.
Raises
------
NameError
Sometimes
"""
try:
fake_func()
except (RuntimeError, ValueError):
raise
raise NameError("hi")
def test_ignores_caught_numpy_raises(self):
"""This is a numpy docstring.
Raises
------
NameError
Sometimes
"""
try:
raise RuntimeError("hi")
except RuntimeError:
pass
raise NameError("hi")
def test_find_numpy_attr_raises_exact_exc(self):
"""This is a numpy docstring.
Raises
------
re.error
Sometimes
"""
import re
raise re.error("hi")
def test_find_numpy_attr_raises_substr_exc(self):
"""This is a numpy docstring.
Raises
------
re.error
Sometimes
"""
from re import error
raise error("hi")
def test_find_valid_missing_numpy_attr_raises(self): # [missing-raises-doc]
"""This is a numpy docstring.
Raises
------
re.anothererror
Sometimes
"""
from re import error
raise error("hi")
def test_find_invalid_missing_numpy_attr_raises(self):
"""This is a numpy docstring.
pylint allows this to pass since the comparison between Raises and
raise are based on the class name, not the qualified name.
Raises
------
bogusmodule.error
Sometimes
"""
from re import error
raise error("hi")
class Foo:
"""test_finds_missing_raises_from_setter_numpy
Example of a setter having missing raises documentation in
the Numpy style docstring of the property
"""
@property
def foo(self): # [missing-raises-doc]
"""int: docstring
Include a "Raises" section so that this is identified
as a Numpy docstring and not a Google docstring.
Raises
------
RuntimeError
Always
"""
raise RuntimeError()
return 10 # [unreachable]
@foo.setter
def foo(self, value):
print(self)
raise AttributeError()
class Foo:
"""test_finds_missing_raises_from_setter_numpy_2
Example of a setter having missing raises documentation in
its own Numpy style docstring of the property
"""
@property
def foo(self):
"""int: docstring ...
Raises
------
RuntimeError
Always
"""
raise RuntimeError()
return 10 # [unreachable]
@foo.setter
def foo(self, value): # [missing-raises-doc]
"""setter docstring ...
Raises
------
RuntimeError
Never
"""
print(self)
if True:
raise AttributeError()
raise RuntimeError()
class Foo:
"""test_finds_property_return_type_numpy
Example of a property having return documentation in
a numpy style docstring
"""
@property
def foo(self):
"""int: docstring ...
Raises
------
RuntimeError
Always
"""
raise RuntimeError()
return 10 # [unreachable]
|