add regression tests for issues #13, #15, and the not-yet-fixed #34

This commit is contained in:
Harold Cooper
2016-02-11 00:44:11 -05:00
parent 47b460e933
commit fa3600df20
2 changed files with 47 additions and 0 deletions
View File
+47
View File
@@ -0,0 +1,47 @@
from collections import namedtuple
import records
IdRecord = namedtuple('IdRecord', 'id')
def check_id(i, row):
assert row.id == i
class TestResultSet:
def test_iter(self):
rows = records.ResultSet(IdRecord(i) for i in range(10))
for i, row in enumerate(rows):
check_id(i, row)
def test_next(self):
rows = records.ResultSet(IdRecord(i) for i in range(10))
for i in range(10):
check_id(i, next(rows))
def test_iter_and_next(self):
rows = records.ResultSet(IdRecord(i) for i in range(10))
i = enumerate(iter(rows))
check_id(*next(i)) # Cache first row.
next(rows) # Cache second row.
check_id(*next(i)) # Read second row from cache.
def test_multiple_iter(self):
rows = records.ResultSet(IdRecord(i) for i in range(10))
i = enumerate(iter(rows))
j = enumerate(iter(rows))
check_id(*next(i)) # Cache first row.
check_id(*next(j)) # Read first row from cache.
check_id(*next(j)) # Cache second row.
check_id(*next(i)) # Read second row from cache.
def test_slice_iter(self):
rows = records.ResultSet(IdRecord(i) for i in range(10))
for i, row in enumerate(rows[:5]):
check_id(i, row)
for i, row in enumerate(rows):
check_id(i, row)
assert len(rows) == 10