def test_update_and_read(self): with temporaryPath() as srcPath, \ directio.DirectFile(srcPath, "w") as f: f.write(self.DATA[:BLOCK_SIZE]) with directio.DirectFile(srcPath, "r+") as f: f.seek(BLOCK_SIZE) f.write(self.DATA[BLOCK_SIZE:]) with io.open(srcPath, "rb") as f: self.assertEquals(f.read(), self.DATA)
def test_small_writes(self): with temporaryPath() as srcPath, \ directio.DirectFile(srcPath, "w") as f: f.write(self.DATA[:BLOCK_SIZE]) f.write(self.DATA[BLOCK_SIZE:]) with io.open(srcPath, "rb") as f: self.assertEquals(f.read(), self.DATA)
def _putMetadata(cls, metaId, meta): vgname, offs = metaId data = cls.formatMetadata(meta) data += "\0" * (sc.METADATA_SIZE - len(data)) metavol = lvm.lvPath(vgname, sd.METADATA) with directio.DirectFile(metavol, "r+") as f: f.seek(offs * sc.METADATA_SIZE) f.write(data)
def _putMetadata(cls, metaId, meta): vgname, offs = metaId data = cls.formatMetadata(meta) data += "\0" * (sc.METADATA_SIZE - len(data)) sd = sdCache.produce_manifest(vgname) metavol = sd.metadata_volume_path() with directio.DirectFile(metavol, "r+") as f: f.seek(offs * sc.METADATA_SIZE) f.write(data)
def test_read_all(self): with temporaryPath(data=self.DATA) as srcPath, \ directio.DirectFile(srcPath, "r") as direct_file, \ io.open(srcPath, "rb") as buffered_file: self.assertEquals(direct_file.read(), buffered_file.read())
def test_write_unaligned(self): with temporaryPath(data=self.DATA) as srcPath, \ directio.DirectFile(srcPath, "r+") as f: self.assertRaises(ValueError, f.write, "x" * 511) with io.open(srcPath, "rb") as f: self.assertEqual(f.read(), self.DATA)
def test_write(self): with temporaryPath() as srcPath, \ directio.DirectFile(srcPath, "w") as f: f.write(self.DATA) with io.open(srcPath, "rb") as f: self.assertEquals(f.read(), self.DATA)
def test_seek_and_read(self, offset): with temporaryPath(data=self.DATA) as srcPath, \ directio.DirectFile(srcPath, "r") as f: f.seek(offset) self.assertEquals(f.read(), self.DATA[offset:])
def test_read(self, size): with temporaryPath(data=self.DATA) as srcPath, \ directio.DirectFile(srcPath, "r") as f: self.assertEquals(f.read(size), self.DATA[:size])