summaryrefslogtreecommitdiff
path: root/tests/benchmarks/test_blobs_fs_backend.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/benchmarks/test_blobs_fs_backend.py')
-rw-r--r--tests/benchmarks/test_blobs_fs_backend.py27
1 files changed, 15 insertions, 12 deletions
diff --git a/tests/benchmarks/test_blobs_fs_backend.py b/tests/benchmarks/test_blobs_fs_backend.py
index d3a663d2..bb5b9b88 100644
--- a/tests/benchmarks/test_blobs_fs_backend.py
+++ b/tests/benchmarks/test_blobs_fs_backend.py
@@ -2,7 +2,7 @@ import pytest
from io import BytesIO
from leap.soledad.server._blobs import FilesystemBlobsBackend
from twisted.internet import defer
-from twisted.web.test.test_web import DummyRequest
+from twisted.web.client import FileBodyProducer
def create_write_test(amount, size):
@@ -12,12 +12,11 @@ def create_write_test(amount, size):
def test(txbenchmark, payload, tmpdir):
backend = FilesystemBlobsBackend(blobs_path=tmpdir.strpath)
data = payload(size)
+ semaphore = defer.DeferredSemaphore(100)
deferreds = []
for i in xrange(amount):
- fd = BytesIO(data)
- request = DummyRequest([''])
- request.content = fd
- d = backend.write_blob('user', str(i), request)
+ producer = FileBodyProducer(BytesIO(data))
+ d = semaphore.run(backend.write_blob, 'user', str(i), producer)
deferreds.append(d)
yield txbenchmark(defer.gatherResults, deferreds)
@@ -30,6 +29,12 @@ test_blobs_fs_backend_write_100_100k = create_write_test(100, 100 * 1000)
test_blobs_fs_backend_write_1000_10k = create_write_test(1000, 10 * 1000)
+class DevNull(object):
+
+ def write(self, data):
+ pass
+
+
def create_read_test(amount, size):
@pytest.inlineCallbacks
@@ -39,22 +44,20 @@ def create_read_test(amount, size):
data = payload(size)
# first write blobs to the backend...
+ semaphore = defer.DeferredSemaphore(100)
deferreds = []
for i in xrange(amount):
- fd = BytesIO(data)
- request = DummyRequest([''])
- request.content = fd
- d = backend.write_blob('user', str(i), request)
+ producer = FileBodyProducer(BytesIO(data))
+ d = semaphore.run(backend.write_blob, 'user', str(i), producer)
deferreds.append(d)
yield defer.gatherResults(deferreds)
# ... then measure the read operation
deferreds = []
for i in xrange(amount):
- request = DummyRequest([''])
- d = request.notifyFinish()
+ consumer = DevNull()
+ d = semaphore.run(backend.read_blob, 'user', str(i), consumer)
deferreds.append(d)
- backend.read_blob('user', str(i), request)
yield txbenchmark(defer.gatherResults, deferreds)
return test