summaryrefslogtreecommitdiff
path: root/tests/functional/n/no/no_member_imports.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/functional/n/no/no_member_imports.py')
-rw-r--r--tests/functional/n/no/no_member_imports.py59
1 files changed, 59 insertions, 0 deletions
diff --git a/tests/functional/n/no/no_member_imports.py b/tests/functional/n/no/no_member_imports.py
new file mode 100644
index 000000000..ead6d9335
--- /dev/null
+++ b/tests/functional/n/no/no_member_imports.py
@@ -0,0 +1,59 @@
+"""Tests for no-member on imported modules"""
+# pylint: disable=import-outside-toplevel, pointless-statement, missing-function-docstring
+# pylint: disable=deprecated-module
+
+
+def test_no_member_in_getattr():
+ """Make sure that a module attribute access is checked by pylint."""
+ import math
+
+ math.THIS_does_not_EXIST # [no-member]
+
+
+def test_no_member_in_getattr_ignored() -> None:
+ """Make sure that a module attribute access check is omitted with a
+ module that is configured to be ignored.
+ """
+ import argparse
+
+ argparse.THIS_does_not_EXIST
+
+
+def test_ignored_modules_invalid_pattern() -> None:
+ import xml
+
+ xml.etree.THIS_does_not_EXIST # [no-member]
+
+
+def test_ignored_modules_root_one_applies_as_well() -> None:
+ """Check that when a root module is completely ignored, submodules are skipped."""
+ import argparse
+
+ argparse.submodule.THIS_does_not_EXIST
+
+
+def test_ignored_modules_patterns() -> None:
+ import collections
+
+ collections.abc.THIS_does_not_EXIST
+
+
+def test_ignored_classes_no_recursive_pattern() -> None:
+ import sys
+
+ sys.THIS_does_not_EXIST # [no-member]
+
+
+def test_ignored_classes_qualified_name() -> None:
+ """Test that ignored-classes supports qualified name for ignoring."""
+
+ import optparse
+
+ optparse.Values.THIS_does_not_EXIST
+
+
+def test_ignored_classes_only_name() -> None:
+ """Test that ignored_classes works with the name only."""
+ import optparse
+
+ optparse.Option.THIS_does_not_EXIST