[otConverters_test] add tests for _LazyList

This commit is contained in:
Cosimo Lupo 2017-08-18 17:26:22 +01:00
parent a47f658855
commit 4bf68d82bc

View File

@ -350,6 +350,75 @@ class AATLookupTest(unittest.TestCase):
])
class LazyListTest(unittest.TestCase):
def test_slice(self):
ll = otConverters._LazyList([10, 11, 12, 13])
sl = ll[:]
self.assertIsNot(sl, ll)
self.assertIsInstance(sl, list)
self.assertEqual([10, 11, 12, 13], sl)
self.assertEqual([11, 12], ll[1:3])
def test_getitem(self):
count = 2
reader = OTTableReader(b"\x00\xFE\xFF\x00\x00\x00", offset=1)
converter = otConverters.UInt8("UInt8", 0, None, None)
recordSize = converter.staticSize
l = otConverters._LazyList()
l.reader = reader
l.pos = l.reader.pos
l.font = None
l.conv = converter
l.recordSize = recordSize
l.extend(otConverters._MissingItem([i]) for i in range(count))
reader.advance(count * recordSize)
self.assertEqual(l[0], 254)
self.assertEqual(l[1], 255)
def test_add_both_LazyList(self):
ll1 = otConverters._LazyList([1])
ll2 = otConverters._LazyList([2])
l3 = ll1 + ll2
self.assertIsInstance(l3, list)
self.assertEqual([1, 2], l3)
def test_add_LazyList_and_list(self):
ll1 = otConverters._LazyList([1])
l2 = [2]
l3 = ll1 + l2
self.assertIsInstance(l3, list)
self.assertEqual([1, 2], l3)
def test_add_not_implemented(self):
with self.assertRaises(TypeError):
otConverters._LazyList() + 0
with self.assertRaises(TypeError):
otConverters._LazyList() + tuple()
def test_radd_list_and_LazyList(self):
l1 = [1]
ll2 = otConverters._LazyList([2])
l3 = l1 + ll2
self.assertIsInstance(l3, list)
self.assertEqual([1, 2], l3)
def test_radd_not_implemented(self):
with self.assertRaises(TypeError):
0 + otConverters._LazyList()
with self.assertRaises(TypeError):
tuple() + otConverters._LazyList()
if __name__ == "__main__":
import sys
sys.exit(unittest.main())