summaryrefslogtreecommitdiff
path: root/pylint/test/functional/non_iterator_returned.py
diff options
context:
space:
mode:
Diffstat (limited to 'pylint/test/functional/non_iterator_returned.py')
-rw-r--r--pylint/test/functional/non_iterator_returned.py21
1 files changed, 13 insertions, 8 deletions
diff --git a/pylint/test/functional/non_iterator_returned.py b/pylint/test/functional/non_iterator_returned.py
index 804ceee..d2fa758 100644
--- a/pylint/test/functional/non_iterator_returned.py
+++ b/pylint/test/functional/non_iterator_returned.py
@@ -56,6 +56,19 @@ class FifthGoodIterator(object):
def __iter__(self):
return IteratorClass
+class FileBasedIterator(object):
+ def __init__(self, path):
+ self.path = path
+ self.file = None
+
+ def __iter__(self):
+ if self.file is not None:
+ self.file.close()
+ self.file = open(self.path)
+ # self file has two infered values: None and <instance of 'file'>
+ # we don't want to emit error in this case
+ return self.file
+
class FirstBadIterator(object):
""" __iter__ returns a list """
@@ -80,11 +93,3 @@ class FourthBadIterator(object):
def __iter__(self): # [non-iterator-returned]
return ThirdBadIterator
-
-class FifthBadIterator(object):
- """All branches should return an iterator."""
-
- def __iter__(self): # [non-iterator-returned]
- if self:
- return 1
- return SecondGoodIterator()