diff options
Diffstat (limited to 'pylint/test/unittest_checker_stdlib.py')
-rw-r--r-- | pylint/test/unittest_checker_stdlib.py | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/pylint/test/unittest_checker_stdlib.py b/pylint/test/unittest_checker_stdlib.py deleted file mode 100644 index 55c3dc8dc..000000000 --- a/pylint/test/unittest_checker_stdlib.py +++ /dev/null @@ -1,117 +0,0 @@ -# Copyright (c) 2015-2017 Claudiu Popa <pcmanticore@gmail.com> -# Copyright (c) 2015 Cezar <celnazli@bitdefender.com> -# Copyright (c) 2016 Derek Gustafson <degustaf@gmail.com> -# Copyright (c) 2017 Martin <MartinBasti@users.noreply.github.com> - -# 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 - -import contextlib - -import astroid - -from pylint.checkers import stdlib -from pylint.interfaces import UNDEFINED -from pylint.testutils import CheckerTestCase, Message - - -@contextlib.contextmanager -def _add_transform(manager, node, transform, predicate=None): - manager.register_transform(node, transform, predicate) - try: - yield - finally: - manager.unregister_transform(node, transform, predicate) - - -class TestStdlibChecker(CheckerTestCase): - CHECKER_CLASS = stdlib.StdlibChecker - - def test_deprecated_no_qname_on_unexpected_nodes(self): - # Test that we don't crash on nodes which don't have - # a qname method. While this test might seem weird since - # it uses a transform, it's actually testing a crash that - # happened in production, but there was no way to retrieve - # the code for which this occurred (how an AssignAttr - # got to be the result of a function inference - # beats me..) - - def infer_func(node, context=None): - new_node = astroid.AssignAttr() - new_node.parent = node - yield new_node - - manager = astroid.MANAGER - transform = astroid.inference_tip(infer_func) - with _add_transform(manager, astroid.Name, transform): - node = astroid.extract_node( - """ - call_something() - """ - ) - with self.assertNoMessages(): - self.checker.visit_call(node) - - def test_copy_environ(self): - # shallow copy of os.environ should be reported - node = astroid.extract_node( - """ - import copy, os - copy.copy(os.environ) - """ - ) - with self.assertAddsMessages( - Message(msg_id="shallow-copy-environ", node=node, confidence=UNDEFINED) - ): - self.checker.visit_call(node) - - def test_copy_environ_hidden(self): - # shallow copy of os.environ should be reported - # hide function names to be sure that checker is not just matching text - node = astroid.extract_node( - """ - from copy import copy as test_cp - import os as o - test_cp(o.environ) - """ - ) - with self.assertAddsMessages( - Message(msg_id="shallow-copy-environ", node=node, confidence=UNDEFINED) - ): - self.checker.visit_call(node) - - def test_copy_dict(self): - # copy of dict is OK - node = astroid.extract_node( - """ - import copy - test_dict = {} - copy.copy(test_dict) - """ - ) - with self.assertNoMessages(): - self.checker.visit_call(node) - - def test_copy_uninferable(self): - # copy of uninferable object should not raise exception, nor make - # the checker crash - node = astroid.extract_node( - """ - import copy - from missing_library import MissingObject - copy.copy(MissingObject) - """ - ) - with self.assertNoMessages(): - self.checker.visit_call(node) - - def test_deepcopy_environ(self): - # deepcopy of os.environ is OK - node = astroid.extract_node( - """ - import copy, os - copy.deepcopy(os.environ) - """ - ) - with self.assertNoMessages(): - self.checker.visit_call(node) |