Beispiel #1
0
 def test_eager_load(self):
     text1 = arrayfiles.read_text(self.fp.name,
                                  newline=self.newline,
                                  lazy=False)
     text2 = arrayfiles.read_text(self.fp.name,
                                  newline=self.newline,
                                  lazy=True)
     for a, b in zip(text1, text2):
         self.assertEqual(a, b)
Beispiel #2
0
 def test_raise_value_error_with_invalid_span(self):
     text = arrayfiles.read_text(self.fp.name)
     step = 10
     for start in range(0, self.length, step):
         end = start + step
         with self.subTest(start=start, end=end):
             for i, line in zip(range(start, end), text.iterate(start,
                                                                end)):
                 self.assertEqual(line, f'line #{i}')
Beispiel #3
0
    def test_raises_index_error_with_invalid_index(self):
        text = arrayfiles.read_text(self.fp.name)

        def getitem(i):
            return text[i]

        with self.assertRaises(IndexError):
            getitem(self.length)
        with self.assertRaises(IndexError):
            getitem(-self.length - 1)
Beispiel #4
0
 def test_dunder_setstate(self):
     text = arrayfiles.read_text(self.fp.name)
     state = text.__getstate__()
     self.assertNotIn('_mm', state)
     text.__setstate__(state)
     self.assertIn('_mm', text.__dict__)
Beispiel #5
0
 def test_dunder_len(self):
     text = arrayfiles.read_text(self.fp.name)
     self.assertEqual(len(text), self.length)
     self.assertEqual(len(text[:None]), self.length)
     self.assertEqual(len(list(text)), self.length)
Beispiel #6
0
 def test_iterates(self):
     text = arrayfiles.read_text(self.fp.name)
     with self.assertRaises(ValueError):
         next(text.iterate(self.length, 0))
Beispiel #7
0
 def test_slices_items(self):
     text = arrayfiles.read_text(self.fp.name)
     self.assertSequenceEqual(text[:self.length], text)
Beispiel #8
0
 def test_iterates_each_line(self):
     text = arrayfiles.read_text(self.fp.name)
     for i, x in enumerate(text):
         self.assertEqual(x, f'line #{i}')
Beispiel #9
0
 def test_supports_random_access(self):
     text = arrayfiles.read_text(self.fp.name)
     for i in range(self.length):
         self.assertEqual(text[i], f'line #{i}')
         self.assertEqual(text[i - self.length], f'line #{i}')
Beispiel #10
0
 def test_dunder_init(self):
     text = arrayfiles.read_text(self.fp.name)
     self.assertEqual(text._path, self.fp.name)
     self.assertEqual(text._encoding, 'utf-8')
Beispiel #11
0
 def test_iterates_each_line(self):
     text = arrayfiles.read_text(self.fp.name, newline=self.newline)
     for i, (x, y) in enumerate(zip(text, text[:None])):
         self.assertEqual(x, y, f'line #{i}')