eris/tests/paged_list_test.py
Andrew Hamilton 787c304d06 Files don't need individual license headers.
- All files are licensed by the LICENSE file at root.
- Updated the license to 2021.
- Have kept the license in LS_COLORS since its 3rd party.
2021-04-12 02:25:49 +10:00

46 lines
1.7 KiB
Python
Executable file

#!/usr/bin/env python3.8
import pickle
import tempfile
import unittest
import eris.paged_list as paged_list
class PagedListTestCase(unittest.TestCase):
def test_batch(self):
self.assertEqual(list(paged_list.batch(iter([3,4,5,6,7]), 2)),
[[3, 4], [5, 6], [7]])
def test_getitem(self):
with tempfile.TemporaryDirectory() as temp_dir:
list_ = paged_list.PagedList([3, 4, 5, 6], temp_dir, 4, 2)
self.assertEqual(list_[1], 4)
self.assertEqual(list_[1:3], [4, 5])
self.assertEqual(list_[0:4], [3, 4, 5, 6])
with tempfile.TemporaryDirectory() as temp_dir:
list_ = paged_list.PagedList([3, 4, 5, 6], temp_dir, 2, 2)
self.assertEqual(list_[1:3], [4, 5])
with tempfile.TemporaryDirectory() as temp_dir:
list_ = paged_list.PagedList([3, 4, 5, 6, 7, 8], temp_dir, 2, 2)
self.assertEqual(list_[1:5], [4, 5, 6, 7])
self.assertEqual(list_[:2], [3, 4])
self.assertEqual(list_[2:], [5, 6, 7, 8])
self.assertEqual(list(list_), [3, 4, 5, 6, 7, 8])
self.assertRaises(IndexError, list_.__getitem__, 6)
with tempfile.TemporaryDirectory() as temp_dir:
list_ = paged_list.PagedList([], temp_dir, 2, 2)
self.assertRaises(IndexError, list_.__getitem__, 0)
# self.assertEqual(list_[3:4], []) FIX
def test_pickling(self):
with tempfile.TemporaryDirectory() as temp_dir:
list_ = paged_list.PagedList([3, 4, 5], temp_dir, 2, 2)
list_b = pickle.loads(pickle.dumps(list_))
self.assertEqual(list_b[1], 4)
if __name__ == "__main__":
unittest.main()