53
57
self.addCleanup(shutil.rmtree, tempdir)
60
def make_document(self, doc_id, doc_rev, content, has_conflicts):
61
return Document(doc_id, doc_rev, content, has_conflicts)
56
63
def assertGetDoc(self, db, doc_id, doc_rev, content, has_conflicts):
57
64
"""Assert that the document in the database looks correct."""
58
exp_doc = Document(doc_id, doc_rev, content,
59
has_conflicts=has_conflicts)
65
exp_doc = self.make_document(doc_id, doc_rev, content,
66
has_conflicts=has_conflicts)
60
67
self.assertEqual(exp_doc, db.get_doc(doc_id))
62
69
def assertGetDocConflicts(self, db, doc_id, conflicts):
111
def create_doc(doc_id, rev, content, has_conflicts=False):
112
return Document(doc_id, rev, content, has_conflicts=has_conflicts)
115
def create_c_database(test, replica_uid):
116
if c_backend_wrapper is None:
117
test.skipTest('c_backend_wrapper is not available')
118
db = c_backend_wrapper.CDatabase(':memory:')
119
db._set_machine_id(replica_uid)
123
def create_c_document(doc_id, rev, content, has_conflicts=False):
124
return c_backend_wrapper.make_document(doc_id, rev, content,
125
has_conflicts=has_conflicts)
104
128
LOCAL_DATABASES_SCENARIOS = [
105
('mem', {'do_create_database': create_memory_database}),
106
('sql', {'do_create_database': create_sqlite_partial_expanded}),
129
('mem', {'do_create_database': create_memory_database,
130
'make_document': create_doc}),
131
('sql', {'do_create_database': create_sqlite_partial_expanded,
132
'make_document': create_doc}),
136
C_DATABASE_SCENARIOS = [
137
('c', {'do_create_database': create_c_database,
138
'make_document': create_c_document})]
110
141
class DatabaseBaseTests(TestCase):
112
143
scenarios = LOCAL_DATABASES_SCENARIOS