def test_tranfer_data_to_rbd(self): service = CephBackupService(self.ctxt) with tempfile.NamedTemporaryFile() as test_file: checksum = hashlib.sha256() def write_data(inst, data, offset): checksum.update(data) test_file.write(data) self.stubs.Set(service.rbd.Image, "write", write_data) service._transfer_data(self.volume_file, service.rbd.Image(), "foo", self.length, dest_is_rbd=True) # Ensure the files are equal self.assertEquals(checksum.digest(), self.checksum.digest())
def test_tranfer_data_from_rbd(self): service = CephBackupService(self.ctxt) with tempfile.NamedTemporaryFile() as test_file: self.volume_file.seek(0) def read_data(inst, offset, length): return self.volume_file.read(self.length) self.stubs.Set(service.rbd.Image, "read", read_data) service._transfer_data(service.rbd.Image(), test_file, "foo", self.length) checksum = hashlib.sha256() test_file.seek(0) for c in xrange(0, self.num_chunks): checksum.update(test_file.read(self.chunk_size)) # Ensure the files are equal self.assertEquals(checksum.digest(), self.checksum.digest())