summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniël van Noord <13665637+DanielNoord@users.noreply.github.com>2021-10-18 14:04:25 +0200
committerDaniël van Noord <13665637+DanielNoord@users.noreply.github.com>2021-10-18 16:03:44 +0200
commit816c8f8c7badc9355628c3eb0e455650dc1f99ef (patch)
tree0861e16e90664f1ec60afe1acced0abb35e37554
parent536e9faa563ec6e42b6aa684def84aa4f9831b31 (diff)
downloadpylint-git-816c8f8c7badc9355628c3eb0e455650dc1f99ef.tar.gz
Add test for #4021
This closes #4021
-rw-r--r--tests/functional/u/undefined/undefined_variable_py30.py12
-rw-r--r--tests/functional/u/undefined/undefined_variable_py30.txt17
2 files changed, 21 insertions, 8 deletions
diff --git a/tests/functional/u/undefined/undefined_variable_py30.py b/tests/functional/u/undefined/undefined_variable_py30.py
index 78d6dd3ea..556b1028b 100644
--- a/tests/functional/u/undefined/undefined_variable_py30.py
+++ b/tests/functional/u/undefined/undefined_variable_py30.py
@@ -84,3 +84,15 @@ class FifthGood(metaclass=abc.Metaclass):
# The following used to raise used-before-assignment
# pylint: disable=missing-docstring, multiple-statements
def used_before_assignment(*, arg): return arg + 1
+
+
+# Test for #4021
+# https://github.com/PyCQA/pylint/issues/4021
+class MetaClass(type):
+ def __new__(cls, *args, parameter=None, **kwargs):
+ print(parameter)
+ return super().__new__(cls, *args, **kwargs)
+
+
+class InheritingClass(metaclass=MetaClass, parameter=variable): # [undefined-variable]
+ pass
diff --git a/tests/functional/u/undefined/undefined_variable_py30.txt b/tests/functional/u/undefined/undefined_variable_py30.txt
index e40ecd1bc..4756b5cd2 100644
--- a/tests/functional/u/undefined/undefined_variable_py30.txt
+++ b/tests/functional/u/undefined/undefined_variable_py30.txt
@@ -1,8 +1,9 @@
-undefined-variable:8:20:Undefined.test:Undefined variable 'Undefined'
-undefined-variable:33:34:Undefined1.InnerScope.test_undefined:Undefined variable 'Undef'
-undefined-variable:36:25:Undefined1.InnerScope.test1:Undefined variable 'ABC'
-undefined-variable:51:28:FalsePositive342.test_bad:Undefined variable 'trop'
-undefined-variable:54:31:FalsePositive342.test_bad1:Undefined variable 'trop1'
-undefined-variable:57:31:FalsePositive342.test_bad2:Undefined variable 'trop2'
-undefined-variable:63:0:Bad:Undefined variable 'ABCMet'
-undefined-variable:66:0:SecondBad:Undefined variable 'ab'
+undefined-variable:8:20:Undefined.test:Undefined variable 'Undefined':HIGH
+undefined-variable:33:34:Undefined1.InnerScope.test_undefined:Undefined variable 'Undef':HIGH
+undefined-variable:36:25:Undefined1.InnerScope.test1:Undefined variable 'ABC':HIGH
+undefined-variable:51:28:FalsePositive342.test_bad:Undefined variable 'trop':HIGH
+undefined-variable:54:31:FalsePositive342.test_bad1:Undefined variable 'trop1':HIGH
+undefined-variable:57:31:FalsePositive342.test_bad2:Undefined variable 'trop2':HIGH
+undefined-variable:63:0:Bad:Undefined variable 'ABCMet':HIGH
+undefined-variable:66:0:SecondBad:Undefined variable 'ab':HIGH
+undefined-variable:97:53:InheritingClass:Undefined variable 'variable':HIGH