def test_is_lazy(self): called_times = 0 def generator(): nonlocal called_times for i in range(1, 5): called_times += 1 yield called_times, str(called_times) stream = kunit_parser.LineStream(generator()) self.assertEqual(called_times, 0) self.assertEqual(stream.pop(), '1') self.assertEqual(called_times, 1) self.assertEqual(stream.pop(), '2') self.assertEqual(called_times, 2)
def line_stream_from_strs(strs: Iterable[str]) -> kunit_parser.LineStream: return kunit_parser.LineStream(enumerate(strs, start=1))