示例#1
0
 def test_read_entire_chunk(self):
     filename = os.path.join(self.tempdir, 'foo')
     f = open(filename, 'wb')
     f.write(b'onetwothreefourfivesixseveneightnineten')
     f.flush()
     chunk = ReadFileChunk(filename, start_byte=0, size=3)
     self.assertEqual(chunk.read(), b'one')
     self.assertEqual(chunk.read(), b'')
示例#2
0
 def test_read_entire_chunk(self):
     filename = os.path.join(self.tempdir, 'foo')
     f = open(filename, 'wb')
     f.write(b'onetwothreefourfivesixseveneightnineten')
     f.flush()
     chunk = ReadFileChunk(filename, start_byte=0, size=3)
     self.assertEqual(chunk.read(), b'one')
     self.assertEqual(chunk.read(), b'')
示例#3
0
 def test_read_past_end_of_file(self):
     filename = os.path.join(self.tempdir, 'foo')
     f = open(filename, 'wb')
     f.write(b'onetwothreefourfivesixseveneightnineten')
     f.flush()
     chunk = ReadFileChunk(filename, start_byte=36, size=100000)
     self.assertEqual(chunk.read(), b'ten')
     self.assertEqual(chunk.read(), b'')
     self.assertEqual(len(chunk), 3)
示例#4
0
 def test_read_past_end_of_file(self):
     filename = os.path.join(self.tempdir, 'foo')
     f = open(filename, 'wb')
     f.write(b'onetwothreefourfivesixseveneightnineten')
     f.flush()
     chunk = ReadFileChunk(filename, start_byte=36, size=100000)
     self.assertEqual(chunk.read(), b'ten')
     self.assertEqual(chunk.read(), b'')
     self.assertEqual(len(chunk), 3)
示例#5
0
 def test_reset_stream_emulation(self):
     filename = os.path.join(self.tempdir, 'foo')
     f = open(filename, 'wb')
     f.write(b'onetwothreefourfivesixseveneightnineten')
     f.flush()
     chunk = ReadFileChunk(filename, start_byte=11, size=4)
     self.assertEqual(chunk.read(), b'four')
     chunk.seek(0)
     self.assertEqual(chunk.read(), b'four')
示例#6
0
 def test_read_with_amount_size(self):
     filename = os.path.join(self.tempdir, 'foo')
     f = open(filename, 'wb')
     f.write(b'onetwothreefourfivesixseveneightnineten')
     f.flush()
     chunk = ReadFileChunk(filename, start_byte=11, size=4)
     self.assertEqual(chunk.read(1), b'f')
     self.assertEqual(chunk.read(1), b'o')
     self.assertEqual(chunk.read(1), b'u')
     self.assertEqual(chunk.read(1), b'r')
     self.assertEqual(chunk.read(1), b'')
示例#7
0
 def test_read_with_amount_size(self):
     filename = os.path.join(self.tempdir, 'foo')
     f = open(filename, 'wb')
     f.write(b'onetwothreefourfivesixseveneightnineten')
     f.flush()
     chunk = ReadFileChunk(filename, start_byte=11, size=4)
     self.assertEqual(chunk.read(1), b'f')
     self.assertEqual(chunk.read(1), b'o')
     self.assertEqual(chunk.read(1), b'u')
     self.assertEqual(chunk.read(1), b'r')
     self.assertEqual(chunk.read(1), b'')
示例#8
0
 def test_read_with_amount_size(self):
     filename = os.path.join(self.tempdir, "foo")
     f = open(filename, "wb")
     f.write(b"onetwothreefourfivesixseveneightnineten")
     f.flush()
     chunk = ReadFileChunk(filename, start_byte=11, size=4)
     self.assertEqual(chunk.read(1), b"f")
     self.assertEqual(chunk.read(1), b"o")
     self.assertEqual(chunk.read(1), b"u")
     self.assertEqual(chunk.read(1), b"r")
     self.assertEqual(chunk.read(1), b"")
示例#9
0
 def test_tell_and_seek(self):
     filename = os.path.join(self.tempdir, "foo")
     f = open(filename, "wb")
     f.write(b"onetwothreefourfivesixseveneightnineten")
     f.flush()
     chunk = ReadFileChunk(filename, start_byte=36, size=100000)
     self.assertEqual(chunk.tell(), 0)
     self.assertEqual(chunk.read(), b"ten")
     self.assertEqual(chunk.tell(), 3)
     chunk.seek(0)
     self.assertEqual(chunk.tell(), 0)
示例#10
0
 def test_reset_stream_emulation(self):
     filename = os.path.join(self.tempdir, 'foo')
     f = open(filename, 'wb')
     f.write(b'onetwothreefourfivesixseveneightnineten')
     f.flush()
     chunk = ReadFileChunk(filename, start_byte=11, size=4)
     self.assertEqual(chunk.read(), b'four')
     chunk.seek(0)
     self.assertEqual(chunk.read(), b'four')
示例#11
0
 def _read_part(self):
     actual_filename = self._filename.src
     in_file_part_number = self._part_number - 1
     starting_byte = in_file_part_number * self._chunk_size
     return ReadFileChunk(actual_filename, starting_byte, self._chunk_size)