diff options
author | Pierre Sassoulas <pierre.sassoulas@gmail.com> | 2021-11-23 09:16:15 +0100 |
---|---|---|
committer | Pierre Sassoulas <pierre.sassoulas@gmail.com> | 2021-11-23 09:50:24 +0100 |
commit | 8ef3440e51f4391b106ff84b60d07aed69f9dce3 (patch) | |
tree | 384fc69b5d6a59b858ffcf658db7465184913a01 /tests/functional/ext/redefined_variable_type/redefined_variable_type.py | |
parent | 72d3525b058d264bdef1a7f3276b12e4a64162e6 (diff) | |
download | pylint-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.py | 85 |
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] |