summaryrefslogtreecommitdiff
path: root/testing/tests/responsiveness/test_responsiveness.py
blob: c8844d94ddc3c6b67910814695032286ad310804 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import pytest

from twisted.internet import defer


@pytest.inlineCallbacks
def load_up(client, amount, payload):
    # create a bunch of local documents
    deferreds = []
    for i in xrange(amount):
        deferreds.append(client.create_doc({'content': payload}))
    yield defer.gatherResults(deferreds)


def create_upload(amount, size):

    @pytest.mark.responsiveness
    @pytest.inlineCallbacks
    def _test(soledad_client, payload, watchdog):

        client = soledad_client()
        yield load_up(client, amount, payload(size))
        yield watchdog(lambda: client.sync())

    return _test


test_responsiveness_upload_10_1000k = create_upload(10, 1000 * 1000)
test_responsiveness_upload_100_100k = create_upload(100, 100 * 1000)
test_responsiveness_upload_1000_10k = create_upload(1000, 10 * 1000)


def create_download(downloads, size):

    @pytest.mark.responsiveness
    @pytest.inlineCallbacks
    def _test(soledad_client, payload, watchdog):
        client = soledad_client()
        yield load_up(client, downloads, payload(size))
        yield client.sync()

        clean_client = soledad_client(force_fresh_db=True)
        yield watchdog(clean_client.sync)

    return _test


test_responsiveness_download_10_1000k = create_download(10, 1000 * 1000)
test_responsiveness_download_100_100k = create_download(100, 100 * 1000)
test_responsiveness_download_1000_10k = create_download(1000, 10 * 1000)