diff options
Diffstat (limited to 'tests/functional/a/assign/assignment_from_no_return_2.py')
-rw-r--r-- | tests/functional/a/assign/assignment_from_no_return_2.py | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/tests/functional/a/assign/assignment_from_no_return_2.py b/tests/functional/a/assign/assignment_from_no_return_2.py new file mode 100644 index 000000000..4cd5ef106 --- /dev/null +++ b/tests/functional/a/assign/assignment_from_no_return_2.py @@ -0,0 +1,61 @@ +# pylint: disable=useless-return, useless-object-inheritance, condition-evals-to-constant +"""check assignment to function call where the function doesn't return + + 'E1111': ('Assigning to function call which doesn\'t return', + 'Used when an assignment is done on a function call but the \ + infered function doesn\'t return anything.'), + 'W1111': ('Assigning to function call which only returns None', + 'Used when an assignment is done on a function call but the \ + infered function returns nothing but None.'), + +""" +from __future__ import generators, print_function + +def func_no_return(): + """function without return""" + print('dougloup') + +A = func_no_return() # [assignment-from-no-return] + + +def func_return_none(): + """function returning none""" + print('dougloup') + return None + +A = func_return_none() # [assignment-from-none] + + +def func_implicit_return_none(): + """Function returning None from bare return statement.""" + return + +A = func_implicit_return_none() # [assignment-from-none] + + +def func_return_none_and_smth(): + """function returning none and something else""" + print('dougloup') + if 2 or 3: + return None + return 3 + +A = func_return_none_and_smth() + +def generator(): + """no problemo""" + yield 2 + +A = generator() + +class Abstract(object): + """bla bla""" + + def abstract_method(self): + """use to return something in concrete implementation""" + raise NotImplementedError + + def use_abstract(self): + """should not issue E1111""" + var = self.abstract_method() + print(var) |