Fix too early StopIteration on empty result sets
Fixes #77, thanks to @hfaran for report
This commit is contained in:
parent
582af184de
commit
ea31943e18
@ -24,10 +24,8 @@ class ResultIter(object):
|
||||
if not isgenerator(result_proxies):
|
||||
result_proxies = iter((result_proxies, ))
|
||||
self.result_proxies = result_proxies
|
||||
|
||||
self.count = 0
|
||||
if not self._next_rp():
|
||||
raise StopIteration
|
||||
self.rp = None
|
||||
|
||||
def _next_rp(self):
|
||||
try:
|
||||
@ -39,6 +37,9 @@ class ResultIter(object):
|
||||
return False
|
||||
|
||||
def __next__(self):
|
||||
if self.rp is None:
|
||||
if not self._next_rp():
|
||||
raise StopIteration
|
||||
row = self.rp.fetchone()
|
||||
if row is None:
|
||||
if self._next_rp():
|
||||
|
||||
@ -275,3 +275,8 @@ class TableTestCase(unittest.TestCase):
|
||||
keys = list(res.next().keys())
|
||||
assert keys[0] == 'temperature'
|
||||
assert keys[1] == 'place'
|
||||
|
||||
def test_empty_query(self):
|
||||
m = self.tbl.find(place='not in data')
|
||||
l = list(m) # exhaust iterator
|
||||
assert len(l) == 0
|
||||
|
||||
Loading…
Reference in New Issue
Block a user