diff options
| author | drebs <drebs@leap.se> | 2017-12-12 20:11:13 -0200 |
|---|---|---|
| committer | drebs <drebs@leap.se> | 2017-12-13 13:52:30 -0200 |
| commit | 383a19aaf87bd8e2665112c1350627140958eedf (patch) | |
| tree | 402ba69a04158e6293ca3533d82b5515bba3c433 /tests/benchmarks | |
| parent | cc480a2e6c11856759a5297e94a0ff128d0a1593 (diff) | |
[refactor] use producer/consumer on write/read_blob respectivelly
Diffstat (limited to 'tests/benchmarks')
| -rw-r--r-- | tests/benchmarks/test_blobs_fs_backend.py | 27 |
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 |
