47
47
self.assertIs(chunks, result)
49
49
def test_fulltext_chunk_to_lines(self):
50
self.assertChunksToLines(['foo\n', 'bar\r\n', 'ba\rz\n'],
51
['foo\nbar\r\nba\rz\n'])
52
self.assertChunksToLines(['foobarbaz\n'], ['foobarbaz\n'],
54
self.assertChunksToLines(['foo\n', 'bar\n', '\n', 'baz\n', '\n', '\n'],
55
['foo\nbar\n\nbaz\n\n\n'])
56
self.assertChunksToLines(['foobarbaz'], ['foobarbaz'],
58
self.assertChunksToLines(['foobarbaz'], ['foo', 'bar', 'baz'])
50
self.assertChunksToLines(
51
[b'foo\n', b'bar\r\n', b'ba\rz\n'],
52
[b'foo\nbar\r\nba\rz\n'])
53
self.assertChunksToLines(
54
[b'foobarbaz\n'], [b'foobarbaz\n'], alreadly_lines=True)
55
self.assertChunksToLines(
56
[b'foo\n', b'bar\n', b'\n', b'baz\n', b'\n', b'\n'],
57
[b'foo\nbar\n\nbaz\n\n\n'])
58
self.assertChunksToLines(
59
[b'foobarbaz'], [b'foobarbaz'], alreadly_lines=True)
60
self.assertChunksToLines([b'foobarbaz'], [b'foo', b'bar', b'baz'])
60
62
def test_newlines(self):
61
self.assertChunksToLines(['\n'], ['\n'], alreadly_lines=True)
62
self.assertChunksToLines(['\n'], ['', '\n', ''])
63
self.assertChunksToLines(['\n'], ['\n', ''])
64
self.assertChunksToLines(['\n'], ['', '\n'])
65
self.assertChunksToLines(['\n', '\n', '\n'], ['\n\n\n'])
66
self.assertChunksToLines(['\n', '\n', '\n'], ['\n', '\n', '\n'],
63
self.assertChunksToLines([b'\n'], [b'\n'], alreadly_lines=True)
64
self.assertChunksToLines([b'\n'], [b'', b'\n', b''])
65
self.assertChunksToLines([b'\n'], [b'\n', b''])
66
self.assertChunksToLines([b'\n'], [b'', b'\n'])
67
self.assertChunksToLines([b'\n', b'\n', b'\n'], [b'\n\n\n'])
68
self.assertChunksToLines([b'\n', b'\n', b'\n'], [b'\n', b'\n', b'\n'],
67
69
alreadly_lines=True)
69
71
def test_lines_to_lines(self):
70
self.assertChunksToLines(['foo\n', 'bar\r\n', 'ba\rz\n'],
71
['foo\n', 'bar\r\n', 'ba\rz\n'],
72
self.assertChunksToLines([b'foo\n', b'bar\r\n', b'ba\rz\n'],
73
[b'foo\n', b'bar\r\n', b'ba\rz\n'],
72
74
alreadly_lines=True)
74
76
def test_no_final_newline(self):
75
self.assertChunksToLines(['foo\n', 'bar\r\n', 'ba\rz'],
76
['foo\nbar\r\nba\rz'])
77
self.assertChunksToLines(['foo\n', 'bar\r\n', 'ba\rz'],
78
['foo\n', 'bar\r\n', 'ba\rz'],
77
self.assertChunksToLines([b'foo\n', b'bar\r\n', b'ba\rz'],
78
[b'foo\nbar\r\nba\rz'])
79
self.assertChunksToLines([b'foo\n', b'bar\r\n', b'ba\rz'],
80
[b'foo\n', b'bar\r\n', b'ba\rz'],
79
81
alreadly_lines=True)
80
self.assertChunksToLines(('foo\n', 'bar\r\n', 'ba\rz'),
81
('foo\n', 'bar\r\n', 'ba\rz'),
82
self.assertChunksToLines((b'foo\n', b'bar\r\n', b'ba\rz'),
83
(b'foo\n', b'bar\r\n', b'ba\rz'),
82
84
alreadly_lines=True)
83
85
self.assertChunksToLines([], [], alreadly_lines=True)
84
self.assertChunksToLines(['foobarbaz'], ['foobarbaz'],
86
self.assertChunksToLines([b'foobarbaz'], [b'foobarbaz'],
85
87
alreadly_lines=True)
86
self.assertChunksToLines([], [''])
88
self.assertChunksToLines([], [b''])
88
90
def test_mixed(self):
89
self.assertChunksToLines(['foo\n', 'bar\r\n', 'ba\rz'],
90
['foo\n', 'bar\r\nba\r', 'z'])
91
self.assertChunksToLines(['foo\n', 'bar\r\n', 'ba\rz'],
92
['foo\nb', 'a', 'r\r\nba\r', 'z'])
93
self.assertChunksToLines(['foo\n', 'bar\r\n', 'ba\rz'],
94
['foo\nbar\r\nba', '\r', 'z'])
91
self.assertChunksToLines([b'foo\n', b'bar\r\n', b'ba\rz'],
92
[b'foo\n', b'bar\r\nba\r', b'z'])
93
self.assertChunksToLines([b'foo\n', b'bar\r\n', b'ba\rz'],
94
[b'foo\nb', b'a', b'r\r\nba\r', b'z'])
95
self.assertChunksToLines([b'foo\n', b'bar\r\n', b'ba\rz'],
96
[b'foo\nbar\r\nba', b'\r', b'z'])
96
self.assertChunksToLines(['foo\n', 'bar\r\n', 'ba\rz'],
97
['foo\n', '', 'bar\r\nba', '\r', 'z'])
98
self.assertChunksToLines(['foo\n', 'bar\r\n', 'ba\rz\n'],
99
['foo\n', 'bar\r\n', 'ba\rz\n', ''])
100
self.assertChunksToLines(['foo\n', 'bar\r\n', 'ba\rz\n'],
101
['foo\n', 'bar', '\r\n', 'ba\rz\n'])
98
self.assertChunksToLines([b'foo\n', b'bar\r\n', b'ba\rz'],
99
[b'foo\n', b'', b'bar\r\nba', b'\r', b'z'])
100
self.assertChunksToLines([b'foo\n', b'bar\r\n', b'ba\rz\n'],
101
[b'foo\n', b'bar\r\n', b'ba\rz\n', b''])
102
self.assertChunksToLines([b'foo\n', b'bar\r\n', b'ba\rz\n'],
103
[b'foo\n', b'bar', b'\r\n', b'ba\rz\n'])
103
105
def test_not_lines(self):
104
106
# We should raise a TypeError, not crash