summaryrefslogtreecommitdiff
path: root/tests/functional/ext/redefined_variable_type/redefined_variable_type.py
diff options
context:
space:
mode:
authorPierre Sassoulas <pierre.sassoulas@gmail.com>2021-11-23 09:16:15 +0100
committerPierre Sassoulas <pierre.sassoulas@gmail.com>2021-11-23 09:50:24 +0100
commit8ef3440e51f4391b106ff84b60d07aed69f9dce3 (patch)
tree384fc69b5d6a59b858ffcf658db7465184913a01 /tests/functional/ext/redefined_variable_type/redefined_variable_type.py
parent72d3525b058d264bdef1a7f3276b12e4a64162e6 (diff)
downloadpylint-git-8ef3440e51f4391b106ff84b60d07aed69f9dce3.tar.gz
Move the functional tests for extension in 'tests/functional/ext'
Diffstat (limited to 'tests/functional/ext/redefined_variable_type/redefined_variable_type.py')
-rw-r--r--tests/functional/ext/redefined_variable_type/redefined_variable_type.py85
1 files changed, 85 insertions, 0 deletions
diff --git a/tests/functional/ext/redefined_variable_type/redefined_variable_type.py b/tests/functional/ext/redefined_variable_type/redefined_variable_type.py
new file mode 100644
index 000000000..aa89383d9
--- /dev/null
+++ b/tests/functional/ext/redefined_variable_type/redefined_variable_type.py
@@ -0,0 +1,85 @@
+"""Checks variable types aren't redefined within a method or a function"""
+
+# pylint: disable=too-few-public-methods,missing-docstring,unused-variable,invalid-name, useless-object-inheritance
+
+_OK = True
+
+class MyClass(object):
+
+ class Klass(object):
+ def __init__(self):
+ self.var2 = 'var'
+
+ def __init__(self):
+ self.var = True
+ self.var1 = 2
+ self.var2 = 1.
+ self.var1 = 2. # [redefined-variable-type]
+ self.a_str = "hello"
+ a_str = False
+ (a_str, b_str) = (1, 2) # no support for inference on tuple assignment
+ a_str = 2.0 if self.var else 1.0 # [redefined-variable-type]
+
+ def _getter(self):
+ return self.a_str
+ def _setter(self, val):
+ self.a_str = val
+ var2 = property(_getter, _setter)
+
+ def some_method(self):
+ def func():
+ var = 1
+ test = 'bar'
+ var = 'baz' # [redefined-variable-type]
+ self.var = 1 # the rule checks for redefinitions in the scope of a function or method
+ test = 'foo'
+ myint = 2
+ myint = False # [redefined-variable-type]
+
+_OK = "This is OK" # [redefined-variable-type]
+
+if _OK:
+ SOME_FLOAT = 1.
+
+def dummy_function():
+ return 2
+
+def other_function():
+ instance = MyClass()
+ instance = True # [redefined-variable-type]
+
+SOME_FLOAT = dummy_function() # [redefined-variable-type]
+
+A_GLOB = None
+A_GLOB = [1, 2, 3]
+
+def func2(x):
+ if x:
+ var = 'foo'
+ else:
+ var = True
+
+ if x:
+ var2 = 'foo'
+ elif not x:
+ var2 = 2
+ else:
+ pass
+
+ if x:
+ var3 = 'foo'
+ var3 = 2 # [redefined-variable-type]
+ else:
+ pass
+
+ var = 2 # [redefined-variable-type]
+
+ if x:
+ pass
+ elif not x:
+ var4 = True
+ elif _OK:
+ pass
+ else:
+ var4 = 2.
+ var4 = 'baz' # [redefined-variable-type]