def test_upload_download(self):
     manager = BlobManager('', self.uri, self.secret,
                           self.secret, uuid4().hex)
     fd = BytesIO("save me")
     yield manager._encrypt_and_upload('blob_id', fd)
     blob, size = yield manager._download_and_decrypt('blob_id')
     self.assertEquals(blob.getvalue(), "save me")
예제 #2
0
 def test_download_from_namespace(self):
     manager = BlobManager('', self.uri, self.secret, self.secret, 'user')
     namespace, blob_id, content = 'incoming', 'blob_id1', 'test'
     yield manager._encrypt_and_upload(blob_id,
                                       BytesIO(content),
                                       namespace=namespace)
     got_blob = yield manager._download_and_decrypt(blob_id, namespace)
     self.assertEquals(content, got_blob[0].getvalue())
예제 #3
0
 def test_download_from_namespace(self):
     manager = BlobManager('', self.uri, self.secret,
                           self.secret, uuid4().hex)
     namespace, blob_id, content = 'incoming', 'blob_id1', 'test'
     yield manager._encrypt_and_upload(blob_id, BytesIO(content),
                                       namespace=namespace)
     got_blob = yield manager._download_and_decrypt(blob_id, namespace)
     self.assertEquals(content, got_blob[0].getvalue())
예제 #4
0
 def test_send_missing(self):
     manager = BlobManager(self.tempdir, self.uri, self.secret, self.secret,
                           'user')
     self.addCleanup(manager.close)
     blob_id = 'local_only_blob_id'
     yield manager.local.put(blob_id, BytesIO("X"), size=1)
     yield manager.send_missing()
     result = yield manager._download_and_decrypt(blob_id)
     self.assertIsNotNone(result)
     self.assertEquals(result[0].getvalue(), "X")
 def test_send_missing(self):
     manager = BlobManager(self.tempdir, self.uri, self.secret,
                           self.secret, uuid4().hex)
     self.addCleanup(manager.close)
     blob_id = 'local_only_blob_id'
     yield manager.local.put(blob_id, BytesIO("X"), size=1)
     pending = SyncStatus.PENDING_UPLOAD
     yield manager.local.update_sync_status(blob_id, pending)
     yield manager.send_missing()
     result = yield manager._download_and_decrypt(blob_id)
     self.assertIsNotNone(result)
     self.assertEquals(result[0].getvalue(), "X")
 def test_upstream_from_namespace(self):
     manager = BlobManager(self.tempdir, self.uri, self.secret,
                           self.secret, uuid4().hex,
                           remote_stream=self.stream_uri)
     self.addCleanup(manager.close)
     blob_ids = [uuid4().hex for _ in range(5)]
     for i, blob_id in enumerate(blob_ids):
         yield manager.local.put(blob_id, BytesIO("X" * i), size=i,
                                 namespace='test')
     yield manager._upstream(blob_ids, namespace='test')
     for i, blob_id in enumerate(blob_ids):
         got_blob = yield manager._download_and_decrypt(blob_id,
                                                        namespace='test')
         self.assertEquals(got_blob[0].getvalue(), "X" * i)
    def test_send_missing_retry(self):
        manager = BlobManager(self.tempdir, self.uri, self.secret,
                              self.secret, uuid4().hex)
        self.addCleanup(manager.close)
        blob_id = 'remote_only_blob_id'
        yield manager.local.put(blob_id, BytesIO("X"), size=1)
        pending = SyncStatus.PENDING_UPLOAD
        yield manager.local.update_sync_status(blob_id, pending)
        yield self.port.stopListening()

        d = manager.send_missing()
        yield sleep(0.1)
        self.port = reactor.listenTCP(
            self.host.port, self.site, interface='127.0.0.1')
        yield d
        result = yield manager._download_and_decrypt(blob_id)
        self.assertIsNotNone(result)
        self.assertEquals(result[0].getvalue(), "X")