def test_readline_and_read(self): """Test exercising one byte reads, readline, and then read again.""" transport = self.get_transport() transport.put_bytes('sample', '0\n2\n4\n') f = pack.ReadVFile(transport.readv('sample', [(0, 6)])) results = [] results.append(f.read(1)) results.append(f.readline()) results.append(f.read(4)) self.assertEqual(['0', '\n', '2\n4\n'], results)
def test_readline(self): """Test using readline() as ContainerReader does. This is always within a readv hunk, never across it. """ transport = self.get_transport() transport.put_bytes('sample', '0\n2\n4\n') f = pack.ReadVFile(transport.readv('sample', [(0, 2), (2, 4)])) results = [] results.append(f.readline()) results.append(f.readline()) results.append(f.readline()) self.assertEqual(['0\n', '2\n', '4\n'], results)
def test_read_bytes(self): """Test reading of both single bytes and all bytes in a hunk.""" transport = self.get_transport() transport.put_bytes('sample', '0123456789') f = pack.ReadVFile( transport.readv('sample', [(0, 1), (1, 2), (4, 1), (6, 2)])) results = [] results.append(f.read(1)) results.append(f.read(2)) results.append(f.read(1)) results.append(f.read(1)) results.append(f.read(1)) self.assertEqual(['0', '12', '4', '6', '7'], results)