summaryrefslogtreecommitdiff
path: root/tests/functional/ext/docparams/raise/missing_raises_doc_Google.py
blob: ca261ff42d58a63094278b5d4211b3410dfe38ce (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
"""Tests for missing-raises-doc and missing-raises-type-doc for Google style docstrings"""
# pylint: disable=function-redefined, invalid-name, undefined-variable, missing-function-docstring
# pylint: disable=unused-argument, import-outside-toplevel, import-error, try-except-raise


def test_find_missing_google_raises(self):  # [missing-raises-doc]
    """This is a Google docstring.

    Raises:
        NameError: Never
    """
    raise RuntimeError("hi")
    raise NameError("hi")  # [unreachable]


def test_find_google_attr_raises_exact_exc(self):
    """This is a google docstring.

    Raises:
        re.error: Sometimes
    """
    import re

    raise re.error("hi")


def test_find_google_attr_raises_substr_exc(self):
    """This is a google docstring.

    Raises:
        re.error: Sometimes
    """
    from re import error

    raise error("hi")


def test_find_valid_missing_google_attr_raises(self):  # [missing-raises-doc]
    """This is a google docstring.

    Raises:
        re.anothererror: Sometimes
    """
    from re import error

    raise error("hi")


def test_find_invalid_missing_google_attr_raises(self):
    """This is a google 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")


def test_google_raises_local_reference(self):
    """This is a google docstring.
    pylint allows this to pass since the comparison between Raises and
    raise are based on the class name, not the qualified name.

    Raises:
        .LocalException: Always
    """
    from neighbor_module import LocalException

    raise LocalException("hi")


def test_find_all_google_raises(self):
    """This is a Google docstring.

    Raises:
        RuntimeError: Always
        NameError: Never
    """
    raise RuntimeError("hi")
    raise NameError("hi")  # [unreachable]


def test_find_multiple_google_raises(self):
    """This is a Google docstring.

    Raises:
        RuntimeError: Always
        NameError, OSError, ValueError: Never
    """
    raise RuntimeError("hi")
    raise NameError("hi")  # [unreachable]
    raise OSError(2, "abort!")  # [unreachable]
    raise ValueError("foo")  # [unreachable]


def test_find_rethrown_google_raises(self):  # [missing-raises-doc]
    """This is a Google docstring.

    Raises:
        NameError: Sometimes
    """
    try:
        fake_func()
    except RuntimeError:
        raise

    raise NameError("hi")


def test_find_rethrown_google_multiple_raises(self):  # [missing-raises-doc]
    """This is a Google docstring.

    Raises:
        NameError: Sometimes
    """
    try:
        fake_func()
    except (RuntimeError, ValueError):
        raise

    raise NameError("hi")


def test_ignores_caught_google_raises(self):
    """This is a Google docstring.

    Raises:
        NameError: Sometimes
    """
    try:
        raise RuntimeError("hi")
    except RuntimeError:
        pass

    raise NameError("hi")