diff options
Diffstat (limited to 'testing/tests')
| -rw-r--r-- | testing/tests/sync/test_sync.py | 19 | ||||
| -rw-r--r-- | testing/tests/sync/test_sync_target.py | 40 | 
2 files changed, 41 insertions, 18 deletions
diff --git a/testing/tests/sync/test_sync.py b/testing/tests/sync/test_sync.py index a434e944..76757c5b 100644 --- a/testing/tests/sync/test_sync.py +++ b/testing/tests/sync/test_sync.py @@ -19,6 +19,7 @@ import threading  import time  from urlparse import urljoin +from mock import Mock  from twisted.internet import defer  from testscenarios import TestWithScenarios @@ -210,3 +211,21 @@ class TestSoledadDbSync(              self.db, doc2.doc_id, doc2.rev, tests.nested_doc, False)      # TODO: add u1db.tests.test_sync.TestRemoteSyncIntegration + + +class TestSoledadSynchronizer(BaseSoledadTest): + +    def setUp(self): +        BaseSoledadTest.setUp(self) +        self.db = Mock() +        self.target = Mock() +        self.synchronizer = sync.SoledadSynchronizer( +            self.db, +            self.target) + +    def test_docs_by_gen_includes_deleted(self): +        changes = [('id', 'gen', 'trans')] +        docs_by_gen = self.synchronizer._docs_by_gen_from_changes(changes) +        f, args, kwargs = docs_by_gen[0][0] +        self.assertIn('include_deleted', kwargs) +        self.assertTrue(kwargs['include_deleted']) diff --git a/testing/tests/sync/test_sync_target.py b/testing/tests/sync/test_sync_target.py index fd1d413e..e32f08b3 100644 --- a/testing/tests/sync/test_sync_target.py +++ b/testing/tests/sync/test_sync_target.py @@ -199,8 +199,9 @@ class TestSoledadSyncTarget(              other_docs.append((doc.doc_id, doc.rev, doc.get_json()))          doc = self.make_document('doc-here', 'replica:1', '{"value": "here"}') +        get_doc = (lambda _: doc, (1,), {})          new_gen, trans_id = yield remote_target.sync_exchange( -            [(doc, 10, 'T-sid')], 'replica', last_known_generation=0, +            [(get_doc, 10, 'T-sid')], 'replica', last_known_generation=0,              last_known_trans_id=None, insert_doc_cb=receive_doc)          self.assertEqual(1, new_gen)          self.assertGetEncryptedDoc( @@ -247,10 +248,12 @@ class TestSoledadSyncTarget(          doc1 = self.make_document('doc-here', 'replica:1', '{"value": "here"}')          doc2 = self.make_document('doc-here2', 'replica:1',                                    '{"value": "here2"}') +        get_doc1 = (lambda _: doc1, (1,), {}) +        get_doc2 = (lambda _: doc2, (2,), {})          with self.assertRaises(l2db.errors.U1DBError):              yield remote_target.sync_exchange( -                [(doc1, 10, 'T-sid'), (doc2, 11, 'T-sud')], +                [(get_doc1, 10, 'T-sid'), (get_doc2, 11, 'T-sud')],                  'replica',                  last_known_generation=0,                  last_known_trans_id=None, @@ -265,7 +268,7 @@ class TestSoledadSyncTarget(          # retry          trigger_ids = []          new_gen, trans_id = yield remote_target.sync_exchange( -            [(doc2, 11, 'T-sud')], 'replica', last_known_generation=0, +            [(get_doc2, 11, 'T-sud')], 'replica', last_known_generation=0,              last_known_trans_id=None, insert_doc_cb=receive_doc)          self.assertGetEncryptedDoc(              db, 'doc-here2', 'replica:1', '{"value": "here2"}', @@ -295,8 +298,9 @@ class TestSoledadSyncTarget(              replica_uid_box.append(replica_uid)          doc = self.make_document('doc-here', 'replica:1', '{"value": "here"}') +        get_doc = (lambda _: doc, (1,), {})          new_gen, trans_id = yield remote_target.sync_exchange( -            [(doc, 10, 'T-sid')], 'replica', last_known_generation=0, +            [(get_doc, 10, 'T-sid')], 'replica', last_known_generation=0,              last_known_trans_id=None, insert_doc_cb=receive_doc,              ensure_callback=ensure_cb)          self.assertEqual(1, new_gen) @@ -408,8 +412,8 @@ class SoledadDatabaseSyncTargetTests(          This test was adapted to decrypt remote content before assert.          """          docs_by_gen = [ -            (self.make_document('doc-id', 'replica:1', tests.simple_doc), 10, -             'T-sid')] +            ((self.make_document, ('doc-id', 'replica:1', tests.simple_doc,), {}), +                10, 'T-sid')]          new_gen, trans_id = yield self.st.sync_exchange(              docs_by_gen, 'replica', last_known_generation=0,              last_known_trans_id=None, insert_doc_cb=self.receive_doc) @@ -430,10 +434,10 @@ class SoledadDatabaseSyncTargetTests(          This test was adapted to decrypt remote content before assert.          """          docs_by_gen = [ -            (self.make_document( -                'doc-id', 'replica:1', tests.simple_doc), 10, 'T-1'), -            (self.make_document( -                'doc-id2', 'replica:1', tests.nested_doc), 11, 'T-2')] +            ((self.make_document, +                ('doc-id', 'replica:1', tests.simple_doc), {}), 10, 'T-1'), +            ((self.make_document, +                ('doc-id2', 'replica:1', tests.nested_doc), {}), 11, 'T-2')]          new_gen, trans_id = yield self.st.sync_exchange(              docs_by_gen, 'replica', last_known_generation=0,              last_known_trans_id=None, insert_doc_cb=self.receive_doc) @@ -515,7 +519,7 @@ class SoledadDatabaseSyncTargetTests(          doc = self.db.create_doc_from_json('{}')          edit_rev = 'replica:1|' + doc.rev          docs_by_gen = [ -            (self.make_document(doc.doc_id, edit_rev, None), 10, 'T-sid')] +            ((self.make_document, (doc.doc_id, edit_rev, None), {}), 10, 'T-sid')]          new_gen, trans_id = yield self.st.sync_exchange(              docs_by_gen, 'replica', last_known_generation=0,              last_known_trans_id=None, insert_doc_cb=self.receive_doc) @@ -534,7 +538,7 @@ class SoledadDatabaseSyncTargetTests(          self.assertTransactionLog([doc.doc_id], self.db)          new_doc = '{"key": "altval"}'          docs_by_gen = [ -            (self.make_document(doc.doc_id, 'replica:1', new_doc), 10, +            ((self.make_document, (doc.doc_id, 'replica:1', new_doc), {}), 10,               'T-sid')]          new_gen, _ = yield self.st.sync_exchange(              docs_by_gen, 'replica', last_known_generation=0, @@ -554,7 +558,7 @@ class SoledadDatabaseSyncTargetTests(          self.assertTransactionLog([doc.doc_id], self.db)          gen, txid = self.db._get_generation_info()          docs_by_gen = [ -            (self.make_document(doc.doc_id, doc.rev, tests.simple_doc), +            ((self.make_document, (doc.doc_id, doc.rev, tests.simple_doc), {}),               10, 'T-sid')]          new_gen, _ = yield self.st.sync_exchange(              docs_by_gen, 'replica', last_known_generation=gen, @@ -600,7 +604,7 @@ class SoledadDatabaseSyncTargetTests(          self.assertTransactionLog([doc.doc_id], self.db)          new_doc = '{"key": "altval"}'          docs_by_gen = [ -            (self.make_document(doc.doc_id, 'test:1|z:2', new_doc), 10, +            ((self.make_document, (doc.doc_id, 'test:1|z:2', new_doc), {}), 10,               'T-sid')]          new_gen, _ = yield self.st.sync_exchange(              docs_by_gen, 'other-replica', last_known_generation=0, @@ -625,7 +629,7 @@ class SoledadDatabaseSyncTargetTests(          self.assertTransactionLog([doc.doc_id], self.db)          new_doc = '{"key": "altval"}'          docs_by_gen = [ -            (self.make_document(doc.doc_id, 'test:1|z:2', new_doc), 10, +            ((self.make_document, (doc.doc_id, 'test:1|z:2', new_doc), {}), 10,               'T-sid')]          new_gen, _ = yield self.st.sync_exchange(              docs_by_gen, 'other-replica', last_known_generation=0, @@ -646,7 +650,7 @@ class SoledadDatabaseSyncTargetTests(          self.assertTransactionLog([doc.doc_id], self.db)          new_doc = '{"key": "altval"}'          docs_by_gen = [ -            (self.make_document(doc.doc_id, 'test:1|z:2', new_doc), 10, +            ((self.make_document, (doc.doc_id, 'test:1|z:2', new_doc), {}), 10,               'T-sid')]          new_gen, _ = yield self.st.sync_exchange(              docs_by_gen, 'other-replica', last_known_generation=0, @@ -657,8 +661,8 @@ class SoledadDatabaseSyncTargetTests(      def test_sync_exchange_converged_handling(self):          doc = self.db.create_doc_from_json(tests.simple_doc)          docs_by_gen = [ -            (self.make_document('new', 'other:1', '{}'), 4, 'T-foo'), -            (self.make_document(doc.doc_id, doc.rev, doc.get_json()), 5, +            ((self.make_document, ('new', 'other:1', '{}'), {}), 4, 'T-foo'), +            ((self.make_document, (doc.doc_id, doc.rev, doc.get_json()), {}), 5,               'T-bar')]          new_gen, _ = yield self.st.sync_exchange(              docs_by_gen, 'other-replica', last_known_generation=0,  | 
