コード例 #1
0
    async def test_delete_corrupt(self):
        tmp_dir = tempfile.mkdtemp()
        self.addCleanup(lambda: shutil.rmtree(tmp_dir))
        blob = BlobFile(
            self.loop,
            self.blob_hash,
            len(self.blob_bytes),
            blob_completed_callback=self.blob_manager.blob_completed,
            blob_directory=tmp_dir)
        writer = blob.get_blob_writer()
        writer.write(self.blob_bytes)
        await blob.verified.wait()
        blob.close()
        blob = BlobFile(
            self.loop,
            self.blob_hash,
            len(self.blob_bytes),
            blob_completed_callback=self.blob_manager.blob_completed,
            blob_directory=tmp_dir)
        self.assertTrue(blob.get_is_verified())

        with open(blob.file_path, 'wb+') as f:
            f.write(b'\x00')
        blob = BlobFile(
            self.loop,
            self.blob_hash,
            len(self.blob_bytes),
            blob_completed_callback=self.blob_manager.blob_completed,
            blob_directory=tmp_dir)
        self.assertFalse(blob.get_is_verified())
        self.assertFalse(os.path.isfile(blob.file_path))
コード例 #2
0
ファイル: descriptor.py プロジェクト: stjordanis/lbry
 async def make_sd_blob(self):
     sd_hash = self.calculate_sd_hash()
     sd_data = self.as_json()
     sd_blob = BlobFile(self.loop, self.blob_dir, sd_hash, len(sd_data))
     if not sd_blob.get_is_verified():
         writer = sd_blob.open_for_writing()
         writer.write(sd_data)
     await sd_blob.verified.wait()
     sd_blob.close()
     return sd_blob