From fa3600df20a79e7098c4dfad2beb161cc0f3b668 Mon Sep 17 00:00:00 2001 From: Harold Cooper Date: Thu, 11 Feb 2016 00:44:11 -0500 Subject: [PATCH] add regression tests for issues #13, #15, and the not-yet-fixed #34 --- tests/__init__.py | 0 tests/test_records.py | 47 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 tests/__init__.py create mode 100644 tests/test_records.py diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/test_records.py b/tests/test_records.py new file mode 100644 index 0000000..27ecf68 --- /dev/null +++ b/tests/test_records.py @@ -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