summaryrefslogtreecommitdiff
path: root/tests/server
diff options
context:
space:
mode:
authordrebs <drebs@riseup.net>2017-10-05 15:24:46 -0300
committerdrebs <drebs@riseup.net>2017-10-05 16:25:51 -0300
commit2772d76d0d66d9e094a435e110fd9f945d9e105c (patch)
tree6ac5c9c1fe78a16c649ff3d8c3e89ef4b1a78fc4 /tests/server
parente98dd6b7b7366c9ae6ca18c6e94866fbf8641afe (diff)
[bug] fix retries for blobs download
- add a MaximumRetriesError exception to encapsulate other exceptions. - record the pending status before trying to download - modify update_sync_status to insert or update - modify retry tests to check number of retries - add a test for download retry limit
Diffstat (limited to 'tests/server')
-rw-r--r--tests/server/test_blobs_server.py7
1 files changed, 4 insertions, 3 deletions
diff --git a/tests/server/test_blobs_server.py b/tests/server/test_blobs_server.py
index 892ae5ff..c4a00ab5 100644
--- a/tests/server/test_blobs_server.py
+++ b/tests/server/test_blobs_server.py
@@ -34,8 +34,9 @@ from leap.soledad.client._db.blobs import BlobAlreadyExistsError
from leap.soledad.client._db.blobs import InvalidFlagsError
from leap.soledad.client._db.blobs import SoledadError
from leap.soledad.client._db.blobs import SyncStatus
+from leap.soledad.client._db.blobs import RetriableTransferError
+from leap.soledad.client._db.blobs import MaximumRetriesError
from leap.soledad.client._db import blobs as client_blobs
-from leap.soledad.client._crypto import InvalidBlob
def sleep(x):
@@ -333,7 +334,7 @@ class BlobServerTestCase(unittest.TestCase):
# Corrupt the tag (last 16 bytes)
corrupted_blob.seek(-16, 2)
corrupted_blob.write('x' * 16)
- with pytest.raises(InvalidBlob):
+ with pytest.raises(MaximumRetriesError):
yield manager.sync()
status, retries = yield manager.local.get_sync_status(blob_id)
self.assertEquals(status, SyncStatus.FAILED_DOWNLOAD)
@@ -370,7 +371,7 @@ class BlobServerTestCase(unittest.TestCase):
manager = BlobManager(self.tempdir, self.uri, self.secret,
self.secret, uuid4().hex)
self.addCleanup(manager.close)
- with pytest.raises(SoledadError):
+ with pytest.raises(RetriableTransferError):
yield manager.get('missing_id')
@defer.inlineCallbacks