diff options
Diffstat (limited to 'src/leap/soledad/tests/test_sqlcipher.py')
| -rw-r--r-- | src/leap/soledad/tests/test_sqlcipher.py | 38 | 
1 files changed, 37 insertions, 1 deletions
| diff --git a/src/leap/soledad/tests/test_sqlcipher.py b/src/leap/soledad/tests/test_sqlcipher.py index b937b634..39a60a2f 100644 --- a/src/leap/soledad/tests/test_sqlcipher.py +++ b/src/leap/soledad/tests/test_sqlcipher.py @@ -458,6 +458,13 @@ sync_scenarios.append(('pyleap', {  class SQLCipherDatabaseSyncTests(          test_sync.DatabaseSyncTests, BaseSoledadTest): +    """ +    Test for succesfull sync between SQLCipher and LeapBackend. + +    Some of the tests in this class had to be adapted because the remote +    backend always receive encrypted content, and so it can not rely on +    document's content comparison to try to autoresolve conflicts. +    """      scenarios = sync_scenarios @@ -470,6 +477,12 @@ class SQLCipherDatabaseSyncTests(          BaseSoledadTest.tearDown(self)      def test_sync_autoresolves(self): +        """ +        Test for sync autoresolve remote. + +        This test was adapted because the remote database receives encrypted +        content and so it can't compare documents contents to autoresolve. +        """          # The remote database can't autoresolve conflicts based on magic          # content convergence, so we modify this test to leave the possibility          # of the remode document ending up in conflicted state. @@ -490,6 +503,11 @@ class SQLCipherDatabaseSyncTests(          self.assertTrue(v.is_newer(vectorclock.VectorClockRev(rev2)))      def test_sync_autoresolves_moar(self): +        """ +        Test for sync autoresolve local. + +        This test was adapted to decrypt remote content before assert. +        """          # here we test that when a database that has a conflicted document is          # the source of a sync, and the target database has a revision of the          # conflicted document that is newer than the source database's, and @@ -561,16 +579,29 @@ class SQLCipherDatabaseSyncTests(          #          # Despite that, in Soledad we suppose that the server never syncs, so          # it never has conflicted documents. Also, if it had, convergence -        # would not be possible in terms of document's contents. +        # would not be possible by checking document's contents because they +        # would be encrypted in server.          #          # Therefore we suppress this test.          pass      def test_sync_autoresolves_moar_backwards_three(self): +        # here we would test that when a database that has a conflicted +        # document is the target of a sync, and the source database has a +        # revision of the conflicted document that is newer than the target +        # database's, and that source's database's document's content is the +        # same as the target's document's conflict's, the target's document's +        # conflict gets autoresolved, and the document's revision bumped. +        #          # We use the same reasoning from the last test to suppress this one.          pass      def test_sync_propagates_resolution(self): +        """ +        Test if synchronization propagates resolution. + +        This test was adapted to decrypt remote content before assert. +        """          self.db1 = self.create_database('test1', 'both')          self.db2 = self.create_database('test2', 'both')          doc1 = self.db1.create_doc_from_json('{"a": 1}', doc_id='the-doc') @@ -614,6 +645,11 @@ class SQLCipherDatabaseSyncTests(          self.assertFalse(doc3.has_conflicts)      def test_sync_puts_changes(self): +        """ +        Test if sync puts changes in remote replica. + +        This test was adapted to decrypt remote content before assert. +        """          self.db1 = self.create_database('test1', 'source')          self.db2 = self.create_database('test2', 'target')          doc = self.db1.create_doc_from_json(tests.simple_doc) | 
