summaryrefslogtreecommitdiff
path: root/common/src/leap/soledad
diff options
context:
space:
mode:
authordrebs <drebs@leap.se>2015-08-04 17:08:33 -0300
committerdrebs <drebs@leap.se>2015-08-04 17:26:06 -0300
commit77a4f36680b0740d499a7700a5892b95696b58c8 (patch)
tree49473039e62a894cb4a0c68e1ca0b2971d225a81 /common/src/leap/soledad
parent5adddb8bc3fec1f0258659ca11a4f13f36210fa0 (diff)
[test] add test for receiving many docs on decpool
Diffstat (limited to 'common/src/leap/soledad')
-rw-r--r--common/src/leap/soledad/common/tests/test_encdecpool.py44
1 files changed, 40 insertions, 4 deletions
diff --git a/common/src/leap/soledad/common/tests/test_encdecpool.py b/common/src/leap/soledad/common/tests/test_encdecpool.py
index 0f12a526..7dfa2bbe 100644
--- a/common/src/leap/soledad/common/tests/test_encdecpool.py
+++ b/common/src/leap/soledad/common/tests/test_encdecpool.py
@@ -20,6 +20,7 @@ Tests for encryption and decryption pool.
import json
from twisted.internet.defer import inlineCallbacks
+from twisted.trial.unittest import TestCase
from leap.soledad.client.encdecpool import SyncEncrypterPool
from leap.soledad.client.encdecpool import SyncDecrypterPool
@@ -32,7 +33,7 @@ DOC_ID = "mydoc"
DOC_REV = "rev"
DOC_CONTENT = {'simple': 'document'}
-class TestSyncEncrypterPool(BaseSoledadTest):
+class TestSyncEncrypterPool(TestCase, BaseSoledadTest):
def setUp(self):
BaseSoledadTest.setUp(self)
@@ -66,7 +67,7 @@ class TestSyncEncrypterPool(BaseSoledadTest):
self.assertIsNotNone(encrypted)
self.assertTrue(attempts < 10)
-class TestSyncDecrypterPool(BaseSoledadTest):
+class TestSyncDecrypterPool(TestCase, BaseSoledadTest):
def _insert_doc_cb(self, doc, gen, trans_id):
self._inserted_docs.append((doc, gen, trans_id))
@@ -79,15 +80,16 @@ class TestSyncDecrypterPool(BaseSoledadTest):
self._soledad._sync_db,
source_replica_uid=self._soledad._dbpool.replica_uid,
insert_doc_cb=self._insert_doc_cb)
- self._pool.start(1)
# reset the inserted docs mock
self._inserted_docs = []
def tearDown(self):
- self._pool.stop()
+ if self._pool.running:
+ self._pool.stop()
BaseSoledadTest.tearDown(self)
def test_insert_received_doc(self):
+ self._pool.start(1)
self._pool.insert_received_doc(
DOC_ID, DOC_REV, "{}", 1, "trans_id", 1)
@@ -98,3 +100,37 @@ class TestSyncDecrypterPool(BaseSoledadTest):
self._pool.deferred.addCallback(_assert_doc_was_inserted)
return self._pool.deferred
+
+ def test_insert_received_doc_many(self):
+ many = 100
+ self._pool.start(many)
+
+ for i in xrange(many):
+ gen = idx = i + 1
+ doc_id = "doc_id: %d" % idx
+ rev = "rev: %d" % idx
+ content = {'idx': idx}
+ trans_id = "trans_id: %d" % idx
+ self._pool.insert_received_doc(
+ doc_id, rev, content, gen, trans_id, idx)
+
+ def _assert_doc_was_inserted(_):
+ self.assertEqual(many, len(self._inserted_docs))
+ idx = 1
+ for doc, gen, trans_id in self._inserted_docs:
+ expected_gen = idx
+ expected_doc_id = "doc_id: %d" % idx
+ expected_rev = "rev: %d" % idx
+ expected_content = json.dumps({'idx': idx})
+ expected_trans_id = "trans_id: %d" % idx
+
+ self.assertEqual(expected_doc_id, doc.doc_id)
+ self.assertEqual(expected_rev, doc.rev)
+ self.assertEqual(expected_content, json.dumps(doc.content))
+ self.assertEqual(expected_gen, gen)
+ self.assertEqual(expected_trans_id, trans_id)
+
+ idx += 1
+
+ self._pool.deferred.addCallback(_assert_doc_was_inserted)
+ return self._pool.deferred