Beispiel #1
0
 def test_format_sync_url_escapes(self):
     # The base_url should not get munged (we assume it is already a
     # properly formed URL), but the replica-uid should get properly escaped
     target = c_backend_wrapper.create_http_sync_target(
             "http://host/base%2Ctest/")
     self.assertEqual("http://host/base%2Ctest/sync-from/replica%2Cuid",
         c_backend_wrapper._format_sync_url(target, "replica,uid"))
Beispiel #2
0
 def test_format_sync_url_escapes(self):
     # The base_url should not get munged (we assume it is already a
     # properly formed URL), but the replica-uid should get properly escaped
     target = c_backend_wrapper.create_http_sync_target(
         "http://host/base%2Ctest/")
     self.assertEqual(
         "http://host/base%2Ctest/sync-from/replica%2Cuid",
         c_backend_wrapper._format_sync_url(target, "replica,uid"))
Beispiel #3
0
 def test_trivial_sync(self):
     mem_db = self.request_state._create_database('test.db')
     mem_doc = mem_db.create_doc_from_json(tests.nested_doc)
     url = self.getURL('test.db')
     target = c_backend_wrapper.create_http_sync_target(url)
     db = c_backend_wrapper.CDatabase(':memory:')
     doc = db.create_doc_from_json(tests.simple_doc)
     c_backend_wrapper.sync_db_to_target(db, target)
     self.assertGetDoc(mem_db, doc.doc_id, doc.rev, doc.get_json(), False)
     self.assertGetDoc(db, mem_doc.doc_id, mem_doc.rev, mem_doc.get_json(),
                       False)
Beispiel #4
0
 def test_trivial_sync(self):
     mem_db = self.request_state._create_database('test.db')
     mem_doc = mem_db.create_doc_from_json(tests.nested_doc)
     url = self.getURL('test.db')
     target = c_backend_wrapper.create_http_sync_target(url)
     db = c_backend_wrapper.CDatabase(':memory:')
     doc = db.create_doc_from_json(tests.simple_doc)
     c_backend_wrapper.sync_db_to_target(db, target)
     self.assertGetDoc(mem_db, doc.doc_id, doc.rev, doc.get_json(), False)
     self.assertGetDoc(db, mem_doc.doc_id, mem_doc.rev, mem_doc.get_json(),
                       False)
Beispiel #5
0
    def test_unavailable(self):
        mem_db = self.request_state._create_database('test.db')
        mem_db.create_doc_from_json(tests.nested_doc)
        tries = []

        def wrapper(instance, *args, **kwargs):
            tries.append(None)
            raise errors.Unavailable

        mem_db.whats_changed = wrapper
        url = self.getURL('test.db')
        target = c_backend_wrapper.create_http_sync_target(url)
        db = c_backend_wrapper.CDatabase(':memory:')
        db.create_doc_from_json(tests.simple_doc)
        self.assertRaises(errors.Unavailable,
                          c_backend_wrapper.sync_db_to_target, db, target)
        self.assertEqual(5, len(tries))
Beispiel #6
0
    def test_unavailable(self):
        mem_db = self.request_state._create_database('test.db')
        mem_db.create_doc_from_json(tests.nested_doc)
        tries = []

        def wrapper(instance, *args, **kwargs):
            tries.append(None)
            raise errors.Unavailable

        mem_db.whats_changed = wrapper
        url = self.getURL('test.db')
        target = c_backend_wrapper.create_http_sync_target(url)
        db = c_backend_wrapper.CDatabase(':memory:')
        db.create_doc_from_json(tests.simple_doc)
        self.assertRaises(
            errors.Unavailable, c_backend_wrapper.sync_db_to_target, db,
            target)
        self.assertEqual(5, len(tries))
Beispiel #7
0
    def test_unavailable_then_available(self):
        mem_db = self.request_state._create_database('test.db')
        mem_doc = mem_db.create_doc_from_json(tests.nested_doc)
        orig_whatschanged = mem_db.whats_changed
        tries = []

        def wrapper(instance, *args, **kwargs):
            if len(tries) < 1:
                tries.append(None)
                raise errors.Unavailable
            return orig_whatschanged(instance, *args, **kwargs)

        mem_db.whats_changed = wrapper
        url = self.getURL('test.db')
        target = c_backend_wrapper.create_http_sync_target(url)
        db = c_backend_wrapper.CDatabase(':memory:')
        doc = db.create_doc_from_json(tests.simple_doc)
        c_backend_wrapper.sync_db_to_target(db, target)
        self.assertEqual(1, len(tries))
        self.assertGetDoc(mem_db, doc.doc_id, doc.rev, doc.get_json(), False)
        self.assertGetDoc(db, mem_doc.doc_id, mem_doc.rev, mem_doc.get_json(),
                          False)
Beispiel #8
0
    def test_unavailable_then_available(self):
        mem_db = self.request_state._create_database('test.db')
        mem_doc = mem_db.create_doc_from_json(tests.nested_doc)
        orig_whatschanged = mem_db.whats_changed
        tries = []

        def wrapper(instance, *args, **kwargs):
            if len(tries) < 1:
                tries.append(None)
                raise errors.Unavailable
            return orig_whatschanged(instance, *args, **kwargs)

        mem_db.whats_changed = wrapper
        url = self.getURL('test.db')
        target = c_backend_wrapper.create_http_sync_target(url)
        db = c_backend_wrapper.CDatabase(':memory:')
        doc = db.create_doc_from_json(tests.simple_doc)
        c_backend_wrapper.sync_db_to_target(db, target)
        self.assertEqual(1, len(tries))
        self.assertGetDoc(mem_db, doc.doc_id, doc.rev, doc.get_json(), False)
        self.assertGetDoc(db, mem_doc.doc_id, mem_doc.rev, mem_doc.get_json(),
                          False)
Beispiel #9
0
 def test_format_sync_url(self):
     target = c_backend_wrapper.create_http_sync_target("http://base_url")
     self.assertEqual("http://base_url/sync-from/replica-uid",
         c_backend_wrapper._format_sync_url(target, "replica-uid"))
Beispiel #10
0
 def test_format_sync_url(self):
     target = c_backend_wrapper.create_http_sync_target("http://base_url")
     self.assertEqual(
         "http://base_url/sync-from/replica-uid",
         c_backend_wrapper._format_sync_url(target, "replica-uid"))