54 lines
1.7 KiB
Python
54 lines
1.7 KiB
Python
import unittest
|
|
|
|
from src.new_big_text.bigger_text import FileModel, Line, LineType
|
|
|
|
|
|
class FileModelTestCase(unittest.TestCase):
|
|
def test_read_lines_with_offset_0(self):
|
|
fm = FileModel("testdata/readlines.txt")
|
|
actual_lines = fm.read(file_offset=0, lines_to_read=5, max_line_length=16, encoding="utf8")
|
|
self.assertEqual([
|
|
Line(0, 1, '1\n'),
|
|
Line(2, 4, '12\n'),
|
|
Line(5, 8, '123\n'),
|
|
Line(9, 13, '1234\n'),
|
|
Line(14, 19, '12345\n')
|
|
],
|
|
actual_lines)
|
|
|
|
def test_read_lines_with_offset_in_middle_of_line(self):
|
|
fm = FileModel("testdata/readlines.txt")
|
|
file_offset = "1\n12\n123\n".find("123") + 1
|
|
actual_lines = fm.read(
|
|
file_offset=file_offset, # at char 2 in line 3
|
|
lines_to_read=5,
|
|
max_line_length=16,
|
|
encoding="utf8")
|
|
self.assertEqual([
|
|
Line(5, 8, '123\n'),
|
|
Line(9, 13, '1234\n'),
|
|
Line(14, 19, '12345\n'),
|
|
Line(20, 26, '123456\n'),
|
|
Line(27, 34, '1234567\n')
|
|
],
|
|
actual_lines)
|
|
|
|
def test_read_long_line__buffer_larger_than_line(self):
|
|
fm = FileModel("testdata/longLines.txt")
|
|
fm.BUFFER_SIZE = 512
|
|
actual_lines = fm.read(
|
|
file_offset=0,
|
|
lines_to_read=3,
|
|
max_line_length=10,
|
|
encoding="utf8"
|
|
)
|
|
self.assertEqual([
|
|
Line(0, 9, "1aaaaaaaa-", LineType.Begin),
|
|
Line(10, 19, "bbbbbbbbb-", LineType.Middle),
|
|
Line(20, 27, "ccccccc\n", LineType.End),
|
|
], actual_lines)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|