summaryrefslogtreecommitdiff
path: root/testing
diff options
context:
space:
mode:
authorVictor Shyba <victor1984@riseup.net>2017-03-27 23:13:58 -0300
committerdrebs <drebs@leap.se>2017-04-19 11:37:05 +0200
commit6da5ce6286336f5945e2eff5ceb0ae10116f8546 (patch)
tree198d2ebf95e348095a53373aaf0159d9c50e60bf /testing
parent639569f611963d8b876f7705accba4b88a1c871d (diff)
[feature] add send_missing to send pending uploads
This method will gather a list of local docs and a list of remote docs, compare them and send docs which server doesn't have. - Related: #8807
Diffstat (limited to 'testing')
-rw-r--r--testing/tests/blobs/test_local_backend.py12
-rw-r--r--testing/tests/server/test_blobs_server.py13
2 files changed, 25 insertions, 0 deletions
diff --git a/testing/tests/blobs/test_local_backend.py b/testing/tests/blobs/test_local_backend.py
index 5bfece8f..297f0389 100644
--- a/testing/tests/blobs/test_local_backend.py
+++ b/testing/tests/blobs/test_local_backend.py
@@ -100,3 +100,15 @@ class BlobManagerTestCase(unittest.TestCase):
blobs_list = yield self.manager.local_list()
self.assertEquals(set(['myblob_id', 'myblob_id2']), set(blobs_list))
+
+ @defer.inlineCallbacks
+ @pytest.mark.usefixtures("method_tmpdir")
+ def test_send_missing(self):
+ fd = BytesIO('test')
+ self.manager._encrypt_and_upload = Mock(return_value=None)
+ self.manager.remote_list = Mock(return_value=[])
+ self.manager.local_list = Mock(return_value=['missing_id'])
+ self.manager.local = Mock(get=Mock(return_value=fd))
+ yield self.manager.send_missing()
+
+ self.manager._encrypt_and_upload.assert_called_with('missing_id', fd)
diff --git a/testing/tests/server/test_blobs_server.py b/testing/tests/server/test_blobs_server.py
index a0306504..910cd985 100644
--- a/testing/tests/server/test_blobs_server.py
+++ b/testing/tests/server/test_blobs_server.py
@@ -70,3 +70,16 @@ class BlobServerTestCase(unittest.TestCase):
fd = BytesIO("save me")
with pytest.raises(BlobAlreadyExistsError):
yield manager._encrypt_and_upload('blob_id', fd)
+
+ @defer.inlineCallbacks
+ @pytest.mark.usefixtures("method_tmpdir")
+ 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)
+ assert result is not None
+ assert result[0].getvalue() == "X"