summaryrefslogtreecommitdiff
path: root/pylint/test/unittest_checker_stdlib.py
blob: b8bed7629de861ad6351ca969474f266304353f0 (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
"""Unit tests for the imports checker."""
import unittest

from astroid import test_utils
from pylint.checkers import stdlib
from pylint.testutils import CheckerTestCase, Message


class StdlibCheckerTC(CheckerTestCase):

    CHECKER_CLASS = stdlib.StdlibChecker

    def test_asyncio_deprecated(self):
        """
        `asyncio.async` is deprecated.
        """
        node = test_utils.extract_node("""
        import asyncio
        asyncio.async()
        """)
        msg = Message(msg_id='deprecated-method', node=node,
                      args=('async', ))
        with self.assertAddsMessages(msg):
            self.checker.visit_call(node)

    def test_base64_deprecated(self):
        """
        `base64.encodestring` and `base64.decodestring` are deprecated.
        """
        node = test_utils.extract_node("""
        import base64
        base64.encodestring('a')
        """)
        msg = Message(msg_id='deprecated-method', node=node,
                      args=('encodestring', ))
        with self.assertAddsMessages(msg):
            self.checker.visit_call(node)

        node = test_utils.extract_node("""
        import base64
        base64.decodestring('a')
        """)
        msg = Message(msg_id='deprecated-method', node=node,
                      args=('decodestring', ))
        with self.assertAddsMessages(msg):
            self.checker.visit_call(node)

    def test_cgi_deprecated(self):
        """
        All deprecated methods in package `cgi`
        """

        node = test_utils.extract_node("""
        from cgi import parse_qs
        parse_qs()
        """)
        msg = Message(msg_id='deprecated-method', node=node,
                      args=('parse_qs', ))
        with self.assertAddsMessages(msg):
            self.checker.visit_call(node)

        node = test_utils.extract_node("""
        import cgi
        cgi.parse_qsl()
        """)
        msg = Message(msg_id='deprecated-method', node=node,
                      args=('parse_qsl', ))
        with self.assertAddsMessages(msg):
            self.checker.visit_call(node)

        node = test_utils.extract_node("""
        from cgi import escape
        escape()
        """)
        msg = Message(msg_id='deprecated-method', node=node,
                      args=('escape', ))
        with self.assertAddsMessages(msg):
            self.checker.visit_call(node)

    def test_unittest_deprecated(self):
        """
        Deprecated methods in package `unittest`
        """
        node = test_utils.extract_node("""
        import unittest
        class TestMe(unittest.TestCase):
            def test(self):
                self.failIf(True)
        """)
        msg = Message(msg_id='deprecated-method', node=node,
                      args=('failIf', ))
        with self.assertAddsMessages(msg):
            self.checker.visit_call(node)

    def test_html_deprecated(self):
        """
        `html` deprecation
        """
        node = test_utils.extract_node("""
        import html.parser
        html.parser.unescape('a')
        """)
        msg = Message(msg_id='deprecated-method', node=node,
                      args=('unescape', ))
        with self.assertAddsMessages(msg):
            self.checker.visit_call(node)

    def test_distutils_deprecated(self):
        """
        `distutil` deprecation
        """
        node = test_utils.extract_node("""
        import distutils
        distutils.command.register.register('a').check_metadata()
        """)
        msg = Message(msg_id='deprecated-method', node=node,
                      args=('check_metadata', ))
        with self.assertAddsMessages(msg):
            self.checker.visit_call(node)

if __name__ == '__main__':
    unittest.main()