summaryrefslogtreecommitdiff
path: root/common/src/leap/soledad
diff options
context:
space:
mode:
Diffstat (limited to 'common/src/leap/soledad')
-rw-r--r--common/src/leap/soledad/common/tests/test_couch.py19
-rw-r--r--common/src/leap/soledad/common/tests/test_couch_operations_atomicity.py8
-rw-r--r--common/src/leap/soledad/common/tests/test_server.py2
-rw-r--r--common/src/leap/soledad/common/tests/test_sqlcipher_sync.py2
-rw-r--r--common/src/leap/soledad/common/tests/test_sync.py11
-rw-r--r--common/src/leap/soledad/common/tests/test_sync_deferred.py10
-rw-r--r--common/src/leap/soledad/common/tests/test_sync_mutex.py6
-rw-r--r--common/src/leap/soledad/common/tests/test_sync_target.py34
8 files changed, 39 insertions, 53 deletions
diff --git a/common/src/leap/soledad/common/tests/test_couch.py b/common/src/leap/soledad/common/tests/test_couch.py
index 468ad8d8..08a14d02 100644
--- a/common/src/leap/soledad/common/tests/test_couch.py
+++ b/common/src/leap/soledad/common/tests/test_couch.py
@@ -25,6 +25,7 @@ import json
from urlparse import urljoin
from couchdb.client import Server
+from uuid import uuid4
from testscenarios import TestWithScenarios
@@ -56,8 +57,8 @@ class TestCouchBackendImpl(CouchDBTestCase):
def test__allocate_doc_id(self):
db = couch.CouchDatabase.open_database(
urljoin(
- 'http://localhost:' + str(self.wrapper.port),
- 'u1db_tests'
+ 'http://localhost:' + str(self.couch_port),
+ ('test-%s' % uuid4().hex)
),
create=True,
ensure_ddocs=True)
@@ -66,6 +67,7 @@ class TestCouchBackendImpl(CouchDBTestCase):
self.assertEqual(34, len(doc_id1))
int(doc_id1[len('D-'):], 16)
self.assertNotEqual(doc_id1, db._allocate_doc_id())
+ self.delete_db(db._dbname)
# -----------------------------------------------------------------------------
@@ -73,25 +75,26 @@ class TestCouchBackendImpl(CouchDBTestCase):
# -----------------------------------------------------------------------------
def make_couch_database_for_test(test, replica_uid):
- port = str(test.wrapper.port)
- return couch.CouchDatabase.open_database(
- urljoin('http://localhost:' + port, replica_uid),
+ port = str(test.couch_port)
+ dbname = ('test-%s' % uuid4().hex)
+ db = couch.CouchDatabase.open_database(
+ urljoin('http://localhost:' + port, dbname),
create=True,
replica_uid=replica_uid or 'test',
ensure_ddocs=True)
def copy_couch_database_for_test(test, db):
- port = str(test.wrapper.port)
+ port = str(test.couch_port)
couch_url = 'http://localhost:' + port
- new_dbname = db._replica_uid + '_copy'
+ new_dbname = db._dbname + '_copy'
new_db = couch.CouchDatabase.open_database(
urljoin(couch_url, new_dbname),
create=True,
replica_uid=db._replica_uid or 'test')
# copy all docs
session = couch.Session()
- old_couch_db = Server(couch_url, session=session)[db._replica_uid]
+ old_couch_db = Server(couch_url, session=session)[db._dbname]
new_couch_db = Server(couch_url, session=session)[new_dbname]
for doc_id in old_couch_db:
doc = old_couch_db.get(doc_id)
diff --git a/common/src/leap/soledad/common/tests/test_couch_operations_atomicity.py b/common/src/leap/soledad/common/tests/test_couch_operations_atomicity.py
index 0a06cc39..25f709ca 100644
--- a/common/src/leap/soledad/common/tests/test_couch_operations_atomicity.py
+++ b/common/src/leap/soledad/common/tests/test_couch_operations_atomicity.py
@@ -23,6 +23,7 @@ import threading
from urlparse import urljoin
from twisted.internet import defer
+from uuid import uuid4
from leap.soledad.client import Soledad
from leap.soledad.common.couch import CouchDatabase, CouchServerState
@@ -55,7 +56,7 @@ class CouchAtomicityTestCase(CouchDBTestCase, TestCaseWithServer):
sync_target = soledad_sync_target
- def _soledad_instance(self, user='user-uuid', passphrase=u'123',
+ def _soledad_instance(self, user=None, passphrase=u'123',
prefix='',
secrets_path='secrets.json',
local_db_path='soledad.u1db', server_url='',
@@ -63,6 +64,7 @@ class CouchAtomicityTestCase(CouchDBTestCase, TestCaseWithServer):
"""
Instantiate Soledad.
"""
+ user = user or self.user
# this callback ensures we save a document which is sent to the shared
# db.
@@ -89,9 +91,9 @@ class CouchAtomicityTestCase(CouchDBTestCase, TestCaseWithServer):
def setUp(self):
TestCaseWithServer.setUp(self)
CouchDBTestCase.setUp(self)
- self.couch_url = 'http://localhost:' + str(self.wrapper.port)
+ self.user = ('user-%s' % uuid4().hex)
self.db = CouchDatabase.open_database(
- urljoin(self.couch_url, 'user-user-uuid'),
+ urljoin(self.couch_url, 'user-' + self.user),
create=True,
replica_uid='replica',
ensure_ddocs=True)
diff --git a/common/src/leap/soledad/common/tests/test_server.py b/common/src/leap/soledad/common/tests/test_server.py
index 5e8e5f90..0667459e 100644
--- a/common/src/leap/soledad/common/tests/test_server.py
+++ b/common/src/leap/soledad/common/tests/test_server.py
@@ -333,7 +333,6 @@ class EncryptedSyncTestCase(
# dependencies.
# XXX explain better
CouchDBTestCase.setUp(self)
- self.couch_url = 'http://localhost:' + str(self.wrapper.port)
self.tempdir = tempfile.mkdtemp(prefix="leap_tests-")
TestCaseWithServer.setUp(self)
@@ -494,7 +493,6 @@ class LockResourceTestCase(
# dependencies.
# XXX explain better
CouchDBTestCase.setUp(self)
- self.couch_url = 'http://localhost:' + str(self.wrapper.port)
self.tempdir = tempfile.mkdtemp(prefix="leap_tests-")
TestCaseWithServer.setUp(self)
# create the databases
diff --git a/common/src/leap/soledad/common/tests/test_sqlcipher_sync.py b/common/src/leap/soledad/common/tests/test_sqlcipher_sync.py
index af2d0e2a..ead4ee5f 100644
--- a/common/src/leap/soledad/common/tests/test_sqlcipher_sync.py
+++ b/common/src/leap/soledad/common/tests/test_sqlcipher_sync.py
@@ -20,10 +20,12 @@ Test sqlcipher backend sync.
import json
+import os
from u1db import sync
from u1db import vectorclock
from u1db import errors
+from uuid import uuid4
from testscenarios import TestWithScenarios
from urlparse import urljoin
diff --git a/common/src/leap/soledad/common/tests/test_sync.py b/common/src/leap/soledad/common/tests/test_sync.py
index 61f3879f..04e8b163 100644
--- a/common/src/leap/soledad/common/tests/test_sync.py
+++ b/common/src/leap/soledad/common/tests/test_sync.py
@@ -63,7 +63,6 @@ class InterruptableSyncTestCase(
TestCaseWithServer.setUp(self)
CouchDBTestCase.setUp(self)
self.tempdir = tempfile.mkdtemp(prefix="leap_tests-")
- self.couch_url = 'http://localhost:' + str(self.wrapper.port)
def tearDown(self):
CouchDBTestCase.tearDown(self)
@@ -177,13 +176,7 @@ class TestSoledadDbSync(
SoledadWithCouchServerMixin.setUp(self)
self.startTwistedServer()
self.db = self.make_database_for_test(self, 'test1')
- self.db2 = couch.CouchDatabase.open_database(
- urljoin(
- 'http://localhost:' + str(self.wrapper.port),
- 'test'
- ),
- create=True,
- ensure_ddocs=True)
+ self.db2 = self.request_state._create_database(replica_uid='test')
def tearDown(self):
"""
@@ -199,7 +192,7 @@ class TestSoledadDbSync(
and Token auth.
"""
target = soledad_sync_target(
- self, target_name,
+ self, self.db2._dbname,
source_replica_uid=self._soledad._dbpool.replica_uid)
self.addCleanup(target.close)
return sync.SoledadSynchronizer(
diff --git a/common/src/leap/soledad/common/tests/test_sync_deferred.py b/common/src/leap/soledad/common/tests/test_sync_deferred.py
index 0065413a..a07be66f 100644
--- a/common/src/leap/soledad/common/tests/test_sync_deferred.py
+++ b/common/src/leap/soledad/common/tests/test_sync_deferred.py
@@ -85,13 +85,7 @@ class BaseSoledadDeferredEncTest(SoledadWithCouchServerMixin):
defer_encryption=True, sync_db_key=sync_db_key)
self.db1 = SQLCipherDatabase(self.opts)
- self.db2 = couch.CouchDatabase.open_database(
- urljoin(
- 'http://localhost:' + str(self.wrapper.port),
- 'test'
- ),
- create=True,
- ensure_ddocs=True)
+ self.db2 = self.request_state._create_database('test')
def tearDown(self):
# XXX should not access "private" attrs
@@ -159,7 +153,7 @@ class TestSoledadDbSyncDeferredEncDecr(
sync_db = self._soledad._sync_db
sync_enc_pool = self._soledad._sync_enc_pool
target = soledad_sync_target(
- self, target_name,
+ self, self.db2._dbname,
source_replica_uid=replica_uid,
sync_db=sync_db,
sync_enc_pool=sync_enc_pool)
diff --git a/common/src/leap/soledad/common/tests/test_sync_mutex.py b/common/src/leap/soledad/common/tests/test_sync_mutex.py
index aa46d5b7..2e2123a7 100644
--- a/common/src/leap/soledad/common/tests/test_sync_mutex.py
+++ b/common/src/leap/soledad/common/tests/test_sync_mutex.py
@@ -91,7 +91,7 @@ class TestSyncMutex(
TestCaseWithServer.setUp(self)
CouchDBTestCase.setUp(self)
self.tempdir = tempfile.mkdtemp(prefix="leap_tests-")
- self.couch_url = 'http://localhost:' + str(self.wrapper.port)
+ self.user = ('user-%s' % uuid.uuid4().hex)
def tearDown(self):
CouchDBTestCase.tearDown(self)
@@ -103,12 +103,12 @@ class TestSyncMutex(
# ensure remote db exists before syncing
db = couch.CouchDatabase.open_database(
- urljoin(self.couch_url, 'user-user-uuid'),
+ urljoin(self.couch_url, 'user-' + self.user),
create=True,
ensure_ddocs=True)
sol = self._soledad_instance(
- user='user-uuid', server_url=self.getURL())
+ user=self.user, server_url=self.getURL())
d1 = sol.sync()
d2 = sol.sync()
diff --git a/common/src/leap/soledad/common/tests/test_sync_target.py b/common/src/leap/soledad/common/tests/test_sync_target.py
index 79c350cd..da4ff034 100644
--- a/common/src/leap/soledad/common/tests/test_sync_target.py
+++ b/common/src/leap/soledad/common/tests/test_sync_target.py
@@ -63,7 +63,6 @@ class TestSoledadParseReceivedDocResponse(SoledadWithCouchServerMixin):
def setUp(self):
SoledadWithCouchServerMixin.setUp(self)
- self.couch_url = 'http://localhost:' + str(self.wrapper.port)
creds = {'token': {
'uuid': 'user-uuid',
'token': 'auth-token',
@@ -151,11 +150,11 @@ def make_local_db_and_soledad_target(
test, path='test',
source_replica_uid=uuid4().hex):
test.startTwistedServer()
- db = test.request_state._create_database(os.path.basename(path))
+ db = test.request_state._create_database(replica_uid=os.path.basename(path))
sync_db = test._soledad._sync_db
sync_enc_pool = test._soledad._sync_enc_pool
st = soledad_sync_target(
- test, path,
+ test, db._dbname,
source_replica_uid=source_replica_uid,
sync_db=sync_db,
sync_enc_pool=sync_enc_pool)
@@ -191,6 +190,8 @@ class TestSoledadSyncTarget(
self.startTwistedServer()
sync_db = self._soledad._sync_db
sync_enc_pool = self._soledad._sync_enc_pool
+ if path is None:
+ path = self.db2._dbname
target = self.sync_target(
self, path,
source_replica_uid=source_replica_uid,
@@ -204,11 +205,11 @@ class TestSoledadSyncTarget(
SoledadWithCouchServerMixin.setUp(self)
self.startTwistedServer()
self.db1 = make_sqlcipher_database_for_test(self, 'test1')
- self.db2 = self.request_state._create_database('test2')
+ self.db2 = self.request_state._create_database('test')
def tearDown(self):
# db2, _ = self.request_state.ensure_database('test2')
- self.db2.delete_database()
+ self.delete_db(self.db2._dbname)
self.db1.close()
SoledadWithCouchServerMixin.tearDown(self)
TestWithScenarios.tearDown(self)
@@ -220,8 +221,8 @@ class TestSoledadSyncTarget(
This test was adapted to decrypt remote content before assert.
"""
- db = self.request_state._create_database('test')
- remote_target = self.getSyncTarget('test')
+ db = self.db2
+ remote_target = self.getSyncTarget()
other_docs = []
def receive_doc(doc, gen, trans_id):
@@ -247,7 +248,7 @@ class TestSoledadSyncTarget(
def blackhole_getstderr(inst):
return cStringIO.StringIO()
- db = self.request_state._create_database('test')
+ db = self.db2
_put_doc_if_newer = db._put_doc_if_newer
trigger_ids = ['doc-here2']
@@ -333,7 +334,7 @@ class TestSoledadSyncTarget(
last_known_trans_id=None, insert_doc_cb=receive_doc,
ensure_callback=ensure_cb, defer_decryption=False)
self.assertEqual(1, new_gen)
- db = self.request_state.open_database('test')
+ db = self.db2
self.assertEqual(1, len(replica_uid_box))
self.assertEqual(db._replica_uid, replica_uid_box[0])
self.assertGetEncryptedDoc(
@@ -358,17 +359,16 @@ class TestSoledadSyncTarget(
@defer.inlineCallbacks
def test_record_sync_info(self):
- db = self.request_state._create_database('test')
remote_target = self.getSyncTarget(
'test',
source_replica_uid='other-id')
yield remote_target.record_sync_info('other-id', 2, 'T-transid')
self.assertEqual(
- (2, 'T-transid'), db._get_replica_gen_and_trans_id('other-id'))
+ (2, 'T-transid'), self.db2._get_replica_gen_and_trans_id('other-id'))
@defer.inlineCallbacks
def test_sync_exchange_receive(self):
- db = self.request_state._create_database('test')
+ db = self.db2
doc = db.create_doc_from_json('{"value": "there"}')
remote_target = self.getSyncTarget('test')
other_changes = []
@@ -857,13 +857,7 @@ class TestSoledadDbSync(
defer_encryption=True, sync_db_key=sync_db_key)
self.db1 = SQLCipherDatabase(self.opts)
- self.db2 = couch.CouchDatabase.open_database(
- urljoin(
- 'http://localhost:' + str(self.wrapper.port),
- 'test'
- ),
- create=True,
- ensure_ddocs=True)
+ self.db2 = self.request_state._create_database(replica_uid='test')
def tearDown(self):
"""
@@ -890,7 +884,7 @@ class TestSoledadDbSync(
'uuid': 'user-uuid',
'token': 'auth-token',
}}
- target_url = self.getURL(target_name)
+ target_url = self.getURL(self.db2._dbname)
# get a u1db syncer
crypto = self._soledad._crypto