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/_version.py4
-rw-r--r--common/src/leap/soledad/common/couch.py7
-rw-r--r--common/src/leap/soledad/common/crypto.py7
-rw-r--r--common/src/leap/soledad/common/errors.py12
-rw-r--r--common/src/leap/soledad/common/tests/server_state.py1
-rw-r--r--common/src/leap/soledad/common/tests/test_async.py1
-rw-r--r--common/src/leap/soledad/common/tests/test_crypto.py4
-rw-r--r--common/src/leap/soledad/common/tests/test_encdecpool.py7
-rw-r--r--common/src/leap/soledad/common/tests/test_http.py1
-rw-r--r--common/src/leap/soledad/common/tests/test_http_client.py1
-rw-r--r--common/src/leap/soledad/common/tests/test_https.py3
-rw-r--r--common/src/leap/soledad/common/tests/test_server.py5
-rw-r--r--common/src/leap/soledad/common/tests/test_soledad.py2
-rw-r--r--common/src/leap/soledad/common/tests/test_soledad_app.py13
-rw-r--r--common/src/leap/soledad/common/tests/test_sqlcipher.py8
-rw-r--r--common/src/leap/soledad/common/tests/test_sqlcipher_sync.py4
-rw-r--r--common/src/leap/soledad/common/tests/test_sync.py16
-rw-r--r--common/src/leap/soledad/common/tests/test_sync_deferred.py7
-rw-r--r--common/src/leap/soledad/common/tests/test_sync_target.py8
-rw-r--r--common/src/leap/soledad/common/tests/u1db_tests/__init__.py4
-rw-r--r--common/src/leap/soledad/common/tests/u1db_tests/test_backends.py1
-rw-r--r--common/src/leap/soledad/common/tests/u1db_tests/test_http_app.py1
-rw-r--r--common/src/leap/soledad/common/tests/util.py10
23 files changed, 99 insertions, 28 deletions
diff --git a/common/src/leap/soledad/common/_version.py b/common/src/leap/soledad/common/_version.py
index 538b829d..a58af503 100644
--- a/common/src/leap/soledad/common/_version.py
+++ b/common/src/leap/soledad/common/_version.py
@@ -129,11 +129,11 @@ def versions_from_vcs(tag_prefix, versionfile_source, verbose=False):
root = os.path.dirname(
os.path.join('..', here))
- ######################################################
+ #
# XXX patch for our specific configuration with
# the three projects leap.soledad.{common, client, server}
# inside the same repo.
- ######################################################
+ #
root = os.path.dirname(os.path.join('..', root))
if not os.path.exists(os.path.join(root, ".git")):
diff --git a/common/src/leap/soledad/common/couch.py b/common/src/leap/soledad/common/couch.py
index ae9e7d2a..1747d067 100644
--- a/common/src/leap/soledad/common/couch.py
+++ b/common/src/leap/soledad/common/couch.py
@@ -71,12 +71,14 @@ COUCH_TIMEOUT = 120 # timeout for transfers between Soledad server and Couch
class InvalidURLError(Exception):
+
"""
Exception raised when Soledad encounters a malformed URL.
"""
class CouchDocument(SoledadDocument):
+
"""
This is the document used for maintaining the Couch backend.
@@ -251,6 +253,7 @@ def raise_server_error(exc, ddoc_path):
class MultipartWriter(object):
+
"""
A multipart writer adapted from python-couchdb's one so we can PUT
documents using couch's multipart PUT.
@@ -356,6 +359,7 @@ def couch_server(url):
class CouchDatabase(CommonBackend):
+
"""
A U1DB implementation that uses CouchDB as its persistence layer.
"""
@@ -367,6 +371,7 @@ class CouchDatabase(CommonBackend):
sync_info_lock = defaultdict(threading.Lock)
class _GetDocThread(threading.Thread):
+
"""
A thread that gets a document from a database.
@@ -1506,6 +1511,7 @@ class CouchDatabase(CommonBackend):
class CouchSyncTarget(CommonSyncTarget):
+
"""
Functionality for using a CouchDatabase as a synchronization target.
"""
@@ -1528,6 +1534,7 @@ class CouchSyncTarget(CommonSyncTarget):
class CouchServerState(ServerState):
+
"""
Inteface of the WSGI server with the CouchDB backend.
"""
diff --git a/common/src/leap/soledad/common/crypto.py b/common/src/leap/soledad/common/crypto.py
index 77a5a93b..c13c4aa7 100644
--- a/common/src/leap/soledad/common/crypto.py
+++ b/common/src/leap/soledad/common/crypto.py
@@ -26,6 +26,7 @@ Soledad common crypto bits.
#
class EncryptionSchemes(object):
+
"""
Representation of encryption schemes used to encrypt documents.
"""
@@ -36,6 +37,7 @@ class EncryptionSchemes(object):
class UnknownEncryptionSchemeError(Exception):
+
"""
Raised when trying to decrypt from unknown encryption schemes.
"""
@@ -43,6 +45,7 @@ class UnknownEncryptionSchemeError(Exception):
class EncryptionMethods(object):
+
"""
Representation of encryption methods that can be used.
"""
@@ -51,6 +54,7 @@ class EncryptionMethods(object):
class UnknownEncryptionMethodError(Exception):
+
"""
Raised when trying to encrypt/decrypt with unknown method.
"""
@@ -58,6 +62,7 @@ class UnknownEncryptionMethodError(Exception):
class MacMethods(object):
+
"""
Representation of MAC methods used to authenticate document's contents.
"""
@@ -66,6 +71,7 @@ class MacMethods(object):
class UnknownMacMethodError(Exception):
+
"""
Raised when trying to authenticate document's content with unknown MAC
mehtod.
@@ -74,6 +80,7 @@ class UnknownMacMethodError(Exception):
class WrongMacError(Exception):
+
"""
Raised when failing to authenticate document's contents based on MAC.
"""
diff --git a/common/src/leap/soledad/common/errors.py b/common/src/leap/soledad/common/errors.py
index ea4bf7f6..f285cc77 100644
--- a/common/src/leap/soledad/common/errors.py
+++ b/common/src/leap/soledad/common/errors.py
@@ -40,6 +40,7 @@ def register_exception(cls):
class SoledadError(errors.U1DBError):
+
"""
Base Soledad HTTP errors.
"""
@@ -52,6 +53,7 @@ class SoledadError(errors.U1DBError):
@register_exception
class InvalidAuthTokenError(errors.Unauthorized):
+
"""
Exception raised when failing to get authorization for some action because
the provided token either does not exist in the tokens database, has a
@@ -69,6 +71,7 @@ class InvalidAuthTokenError(errors.Unauthorized):
@register_exception
class InvalidTokenError(SoledadError):
+
"""
Exception raised when trying to unlock shared database with invalid token.
"""
@@ -79,6 +82,7 @@ class InvalidTokenError(SoledadError):
@register_exception
class NotLockedError(SoledadError):
+
"""
Exception raised when trying to unlock shared database when it is not
locked.
@@ -90,6 +94,7 @@ class NotLockedError(SoledadError):
@register_exception
class AlreadyLockedError(SoledadError):
+
"""
Exception raised when trying to lock shared database but it is already
locked.
@@ -101,6 +106,7 @@ class AlreadyLockedError(SoledadError):
@register_exception
class LockTimedOutError(SoledadError):
+
"""
Exception raised when timing out while trying to lock the shared database.
"""
@@ -111,6 +117,7 @@ class LockTimedOutError(SoledadError):
@register_exception
class CouldNotObtainLockError(SoledadError):
+
"""
Exception raised when timing out while trying to lock the shared database.
"""
@@ -125,6 +132,7 @@ class CouldNotObtainLockError(SoledadError):
@register_exception
class MissingDesignDocError(SoledadError):
+
"""
Raised when trying to access a missing couch design document.
"""
@@ -135,6 +143,7 @@ class MissingDesignDocError(SoledadError):
@register_exception
class MissingDesignDocNamedViewError(SoledadError):
+
"""
Raised when trying to access a missing named view on a couch design
document.
@@ -146,6 +155,7 @@ class MissingDesignDocNamedViewError(SoledadError):
@register_exception
class MissingDesignDocListFunctionError(SoledadError):
+
"""
Raised when trying to access a missing list function on a couch design
document.
@@ -157,6 +167,7 @@ class MissingDesignDocListFunctionError(SoledadError):
@register_exception
class MissingDesignDocDeletedError(SoledadError):
+
"""
Raised when trying to access a deleted couch design document.
"""
@@ -167,6 +178,7 @@ class MissingDesignDocDeletedError(SoledadError):
@register_exception
class DesignDocUnknownError(SoledadError):
+
"""
Raised when trying to access a couch design document and getting an
unknown error.
diff --git a/common/src/leap/soledad/common/tests/server_state.py b/common/src/leap/soledad/common/tests/server_state.py
index 2bc15377..2fe9472f 100644
--- a/common/src/leap/soledad/common/tests/server_state.py
+++ b/common/src/leap/soledad/common/tests/server_state.py
@@ -33,6 +33,7 @@ from leap.soledad.common.tests.util import (
class ServerStateForTests(ServerState):
+
"""Passed to a Request when it is instantiated.
This is used to track server-side state, such as working-directory, open
diff --git a/common/src/leap/soledad/common/tests/test_async.py b/common/src/leap/soledad/common/tests/test_async.py
index 5f273e08..302ecc37 100644
--- a/common/src/leap/soledad/common/tests/test_async.py
+++ b/common/src/leap/soledad/common/tests/test_async.py
@@ -27,6 +27,7 @@ from leap.soledad.client.sqlcipher import SQLCipherOptions
class ASyncSQLCipherRetryTestCase(BaseSoledadTest):
+
"""
Test asynchronous SQLCipher operation.
"""
diff --git a/common/src/leap/soledad/common/tests/test_crypto.py b/common/src/leap/soledad/common/tests/test_crypto.py
index 55ecbdd7..ca10a1e1 100644
--- a/common/src/leap/soledad/common/tests/test_crypto.py
+++ b/common/src/leap/soledad/common/tests/test_crypto.py
@@ -34,6 +34,7 @@ from leap.soledad.common.crypto import MAC_METHOD_KEY
class EncryptedSyncTestCase(BaseSoledadTest):
+
"""
Tests that guarantee that data will always be encrypted when syncing.
"""
@@ -71,7 +72,8 @@ class RecoveryDocumentTestCase(BaseSoledadTest):
self.assertEqual(secret_id, self._soledad.secrets._secret_id)
self.assertEqual(secret, self._soledad.secrets._secrets[secret_id])
# assert recovery document structure
- encrypted_secret = rd[self._soledad.secrets.STORAGE_SECRETS_KEY][secret_id]
+ encrypted_secret = rd[
+ self._soledad.secrets.STORAGE_SECRETS_KEY][secret_id]
self.assertTrue(self._soledad.secrets.CIPHER_KEY in encrypted_secret)
self.assertTrue(
encrypted_secret[self._soledad.secrets.CIPHER_KEY] == 'aes256')
diff --git a/common/src/leap/soledad/common/tests/test_encdecpool.py b/common/src/leap/soledad/common/tests/test_encdecpool.py
index 9334f88c..a741d993 100644
--- a/common/src/leap/soledad/common/tests/test_encdecpool.py
+++ b/common/src/leap/soledad/common/tests/test_encdecpool.py
@@ -71,10 +71,11 @@ class TestSyncEncrypterPool(TestCase, BaseSoledadTest):
while encrypted is None and attempts < 10:
encrypted = yield self._pool.get_encrypted_doc(DOC_ID, DOC_REV)
attempts += 1
-
+
self.assertIsNotNone(encrypted)
self.assertTrue(attempts < 10)
+
class TestSyncDecrypterPool(TestCase, BaseSoledadTest):
def _insert_doc_cb(self, doc, gen, trans_id):
@@ -106,7 +107,7 @@ class TestSyncDecrypterPool(TestCase, BaseSoledadTest):
"""
self._pool.start(1)
self._pool.insert_received_doc(
- DOC_ID, DOC_REV, "{}", 1, "trans_id", 1)
+ DOC_ID, DOC_REV, "{}", 1, "trans_id", 1)
def _assert_doc_was_inserted(_):
self.assertEqual(
@@ -168,7 +169,7 @@ class TestSyncDecrypterPool(TestCase, BaseSoledadTest):
# insert the encrypted document in the pool
self._pool.start(1)
self._pool.insert_encrypted_received_doc(
- DOC_ID, DOC_REV, encrypted_content, 1, "trans_id", 1)
+ DOC_ID, DOC_REV, encrypted_content, 1, "trans_id", 1)
def _assert_doc_was_decrypted_and_inserted(_):
self.assertEqual(self._inserted_docs, [(doc, 1, u"trans_id")])
diff --git a/common/src/leap/soledad/common/tests/test_http.py b/common/src/leap/soledad/common/tests/test_http.py
index bedd1868..bc486fe3 100644
--- a/common/src/leap/soledad/common/tests/test_http.py
+++ b/common/src/leap/soledad/common/tests/test_http.py
@@ -28,6 +28,7 @@ from leap.soledad.common.tests.u1db_tests import test_http_database
# -----------------------------------------------------------------------------
class _HTTPDatabase(http_database.HTTPDatabase, auth.TokenBasedAuth):
+
"""
Wraps our token auth implementation.
"""
diff --git a/common/src/leap/soledad/common/tests/test_http_client.py b/common/src/leap/soledad/common/tests/test_http_client.py
index fcf5f75e..700ae3b6 100644
--- a/common/src/leap/soledad/common/tests/test_http_client.py
+++ b/common/src/leap/soledad/common/tests/test_http_client.py
@@ -35,6 +35,7 @@ from leap.soledad.server.auth import SoledadTokenAuthMiddleware
class TestSoledadClientBase(
TestWithScenarios,
test_http_client.TestHTTPClientBase):
+
"""
This class should be used to test Token auth.
"""
diff --git a/common/src/leap/soledad/common/tests/test_https.py b/common/src/leap/soledad/common/tests/test_https.py
index 93619515..eeeb4982 100644
--- a/common/src/leap/soledad/common/tests/test_https.py
+++ b/common/src/leap/soledad/common/tests/test_https.py
@@ -83,7 +83,8 @@ class TestSoledadHTTPSyncTargetHttpsSupport(
# run smoothly with standard u1db.
test_https.TestHttpSyncTargetHttpsSupport.setUp(self)
# so here monkey patch again to test our functionality.
- http_client._VerifiedHTTPSConnection = client.api.VerifiedHTTPSConnection
+ api = client.api
+ http_client._VerifiedHTTPSConnection = api.VerifiedHTTPSConnection
client.api.SOLEDAD_CERT = http_client.CA_CERTS
def test_cannot_verify_cert(self):
diff --git a/common/src/leap/soledad/common/tests/test_server.py b/common/src/leap/soledad/common/tests/test_server.py
index 47cbf4d1..3ed23184 100644
--- a/common/src/leap/soledad/common/tests/test_server.py
+++ b/common/src/leap/soledad/common/tests/test_server.py
@@ -59,6 +59,7 @@ CouchServerState.ensure_database = _couch_ensure_database
class ServerAuthorizationTestCase(BaseSoledadTest):
+
"""
Tests related to Soledad server authorization.
"""
@@ -268,6 +269,7 @@ class ServerAuthorizationTestCase(BaseSoledadTest):
class EncryptedSyncTestCase(
CouchDBTestCase, TestCaseWithServer):
+
"""
Tests for encrypted sync using Soledad server backed by a couch database.
"""
@@ -456,7 +458,7 @@ class EncryptedSyncTestCase(
"""
Test if Soledad can sync very large files.
"""
- length = 100 * (10**6) # 100 MB
+ length = 100 * (10 ** 6) # 100 MB
return self._test_encrypted_sym_sync(doc_size=length, number_of_docs=1)
def test_sync_many_small_files(self):
@@ -468,6 +470,7 @@ class EncryptedSyncTestCase(
class LockResourceTestCase(
CouchDBTestCase, TestCaseWithServer):
+
"""
Tests for use of PUT and DELETE on lock resource.
"""
diff --git a/common/src/leap/soledad/common/tests/test_soledad.py b/common/src/leap/soledad/common/tests/test_soledad.py
index 1cd74dad..8c791672 100644
--- a/common/src/leap/soledad/common/tests/test_soledad.py
+++ b/common/src/leap/soledad/common/tests/test_soledad.py
@@ -165,6 +165,7 @@ class AuxMethodsTestCase(BaseSoledadTest):
class SoledadSharedDBTestCase(BaseSoledadTest):
+
"""
These tests ensure the functionalities of the shared recovery database.
"""
@@ -209,6 +210,7 @@ class SoledadSharedDBTestCase(BaseSoledadTest):
class SoledadSignalingTestCase(BaseSoledadTest):
+
"""
These tests ensure signals are correctly emmited by Soledad.
"""
diff --git a/common/src/leap/soledad/common/tests/test_soledad_app.py b/common/src/leap/soledad/common/tests/test_soledad_app.py
index 07ad00a0..4598a7bb 100644
--- a/common/src/leap/soledad/common/tests/test_soledad_app.py
+++ b/common/src/leap/soledad/common/tests/test_soledad_app.py
@@ -49,11 +49,10 @@ class SoledadTests(
TestWithScenarios, test_backends.AllDatabaseTests, BaseSoledadTest):
scenarios = LEAP_SCENARIOS + [
- ('token_http', {'make_database_for_test':
- make_token_http_database_for_test,
- 'copy_database_for_test':
- copy_token_http_database_for_test,
- 'make_document_for_test': make_soledad_document_for_test,
- 'make_app_with_state': make_token_soledad_app,
- })
+ ('token_http', {
+ 'make_database_for_test': make_token_http_database_for_test,
+ 'copy_database_for_test': copy_token_http_database_for_test,
+ 'make_document_for_test': make_soledad_document_for_test,
+ 'make_app_with_state': make_token_soledad_app,
+ })
]
diff --git a/common/src/leap/soledad/common/tests/test_sqlcipher.py b/common/src/leap/soledad/common/tests/test_sqlcipher.py
index e1b92fb4..4d23f1be 100644
--- a/common/src/leap/soledad/common/tests/test_sqlcipher.py
+++ b/common/src/leap/soledad/common/tests/test_sqlcipher.py
@@ -97,7 +97,8 @@ class SQLCipherTests(TestWithScenarios, test_backends.AllDatabaseTests):
scenarios = SQLCIPHER_SCENARIOS
-class SQLCipherDatabaseTests(TestWithScenarios, test_backends.LocalDatabaseTests):
+class SQLCipherDatabaseTests(TestWithScenarios,
+ test_backends.LocalDatabaseTests):
scenarios = SQLCIPHER_SCENARIOS
@@ -128,7 +129,8 @@ class SQLCipherIndexTests(
# The following tests come from `u1db.tests.test_sqlite_backend`.
# -----------------------------------------------------------------------------
-class TestSQLCipherDatabase(TestWithScenarios, test_sqlite_backend.TestSQLiteDatabase):
+class TestSQLCipherDatabase(TestWithScenarios,
+ test_sqlite_backend.TestSQLiteDatabase):
def test_atomic_initialize(self):
# This test was modified to ensure that db2.close() is called within
@@ -181,6 +183,7 @@ class TestSQLCipherDatabase(TestWithScenarios, test_sqlite_backend.TestSQLiteDat
class TestAlternativeDocument(SoledadDocument):
+
"""A (not very) alternative implementation of Document."""
@@ -372,6 +375,7 @@ class SQLCipherOpen(test_open.TestU1DBOpen):
# -----------------------------------------------------------------------------
class SQLCipherEncryptionTest(BaseSoledadTest):
+
"""
Tests to guarantee SQLCipher is indeed encrypting data when storing.
"""
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 869ecf9a..f9da9a99 100644
--- a/common/src/leap/soledad/common/tests/test_sqlcipher_sync.py
+++ b/common/src/leap/soledad/common/tests/test_sqlcipher_sync.py
@@ -50,7 +50,8 @@ from leap.soledad.common.tests.util import (
# -----------------------------------------------------------------------------
def sync_via_synchronizer_and_soledad(test, db_source, db_target,
- trace_hook=None, trace_hook_shallow=None):
+ trace_hook=None,
+ trace_hook_shallow=None):
if trace_hook:
test.skipTest("full trace hook unsupported over http")
path = test._http_at[db_target]
@@ -72,6 +73,7 @@ class SQLCipherDatabaseSyncTests(
TestWithScenarios,
test_sync.DatabaseSyncTests,
BaseSoledadTest):
+
"""
Test for succesfull sync between SQLCipher and LeapBackend.
diff --git a/common/src/leap/soledad/common/tests/test_sync.py b/common/src/leap/soledad/common/tests/test_sync.py
index 9449f269..50fcc9f8 100644
--- a/common/src/leap/soledad/common/tests/test_sync.py
+++ b/common/src/leap/soledad/common/tests/test_sync.py
@@ -45,6 +45,7 @@ from leap.soledad.common.tests.test_couch import CouchDBTestCase
class InterruptableSyncTestCase(
BaseSoledadTest, CouchDBTestCase, TestCaseWithServer):
+
"""
Tests for encrypted sync using Soledad server backed by a couch database.
"""
@@ -77,6 +78,7 @@ class InterruptableSyncTestCase(
"""
class _SyncInterruptor(threading.Thread):
+
"""
A thread meant to interrupt the sync process.
"""
@@ -97,7 +99,8 @@ class InterruptableSyncTestCase(
self.startServer()
# instantiate soledad and create a document
- sol = self._soledad_instance(user='user-uuid', server_url=self.getURL())
+ sol = self._soledad_instance(
+ user='user-uuid', server_url=self.getURL())
# ensure remote db exists before syncing
db = couch.CouchDatabase.open_database(
@@ -122,14 +125,18 @@ class InterruptableSyncTestCase(
# sync with server
d.addCallback(_create_docs)
d.addCallback(lambda _: sol.get_all_docs())
- d.addCallback(lambda results: self.assertEqual(number_of_docs, len(results[1])))
+ d.addCallback(
+ lambda results: self.assertEqual(number_of_docs, len(results[1])))
d.addCallback(lambda _: sol.sync())
d.addCallback(lambda _: t.join())
d.addCallback(lambda _: db.get_all_docs())
- d.addCallback(lambda results: self.assertNotEqual(number_of_docs, len(results[1])))
+ d.addCallback(
+ lambda results: self.assertNotEqual(
+ number_of_docs, len(results[1])))
d.addCallback(lambda _: sol.sync())
d.addCallback(lambda _: db.get_all_docs())
- d.addCallback(lambda results: self.assertEqual(number_of_docs, len(results[1])))
+ d.addCallback(
+ lambda results: self.assertEqual(number_of_docs, len(results[1])))
def _tear_down(results):
db.delete_database()
@@ -148,6 +155,7 @@ class TestSoledadDbSync(
TestWithScenarios,
SoledadWithCouchServerMixin,
test_sync.TestDbSync):
+
"""
Test db.sync remote sync shortcut
"""
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 33c54641..dcbd16f6 100644
--- a/common/src/leap/soledad/common/tests/test_sync_deferred.py
+++ b/common/src/leap/soledad/common/tests/test_sync_deferred.py
@@ -49,6 +49,7 @@ DBPASS = "pass"
class BaseSoledadDeferredEncTest(SoledadWithCouchServerMixin):
+
"""
Another base class for testing the deferred encryption/decryption during
the syncs, using the intermediate database.
@@ -102,6 +103,7 @@ class BaseSoledadDeferredEncTest(SoledadWithCouchServerMixin):
class SyncTimeoutError(Exception):
+
"""
Dummy exception to notify timeout during sync.
"""
@@ -112,6 +114,7 @@ class TestSoledadDbSyncDeferredEncDecr(
TestWithScenarios,
test_sync.TestDbSync,
BaseSoledadDeferredEncTest):
+
"""
Test db.sync remote sync shortcut.
Case with deferred encryption and decryption: using the intermediate
@@ -205,8 +208,8 @@ class TestSoledadDbSyncDeferredEncDecr(
def _assert_successful_sync(results):
import time
# need to give time to the encryption to proceed
- # TODO should implement a defer list to subscribe to the all-decrypted
- # event
+ # TODO should implement a defer list to subscribe to the
+ # all-decrypted event
time.sleep(2)
local_gen_before_sync = results
self.wait_for_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 65c7a2f2..75ab70cf 100644
--- a/common/src/leap/soledad/common/tests/test_sync_target.py
+++ b/common/src/leap/soledad/common/tests/test_sync_target.py
@@ -57,6 +57,7 @@ from leap.soledad.common.tests.u1db_tests import test_sync
class TestSoledadSyncTargetBasics(
test_remote_sync_target.TestHTTPSyncTargetBasics):
+
"""
Some tests had to be copied to this class so we can instantiate our own
target.
@@ -73,6 +74,7 @@ class TestSoledadSyncTargetBasics(
class TestSoledadParsingSyncStream(
test_remote_sync_target.TestParsingSyncStream,
BaseSoledadTest):
+
"""
Some tests had to be copied to this class so we can instantiate our own
target.
@@ -444,6 +446,7 @@ DBPASS = "pass"
class SyncTimeoutError(Exception):
+
"""
Dummy exception to notify timeout during sync.
"""
@@ -454,6 +457,7 @@ class TestSoledadDbSync(
TestWithScenarios,
SoledadWithCouchServerMixin,
test_sync.TestDbSync):
+
"""Test db.sync remote sync shortcut"""
scenarios = [
@@ -581,8 +585,8 @@ class TestSoledadDbSync(
def _assert_successful_sync(results):
import time
# need to give time to the encryption to proceed
- # TODO should implement a defer list to subscribe to the all-decrypted
- # event
+ # TODO should implement a defer list to subscribe to the
+ # all-decrypted event
time.sleep(2)
local_gen_before_sync = results
self.wait_for_sync()
diff --git a/common/src/leap/soledad/common/tests/u1db_tests/__init__.py b/common/src/leap/soledad/common/tests/u1db_tests/__init__.py
index 787494d3..9efe7ebf 100644
--- a/common/src/leap/soledad/common/tests/u1db_tests/__init__.py
+++ b/common/src/leap/soledad/common/tests/u1db_tests/__init__.py
@@ -238,6 +238,7 @@ class DatabaseBaseTests(TestCase):
class ServerStateForTests(server_state.ServerState):
+
"""Used in the test suite, so we don't have to touch disk, etc."""
def __init__(self):
@@ -284,6 +285,7 @@ class ServerStateForTests(server_state.ServerState):
class ResponderForTests(object):
+
"""Responder for tests."""
_started = False
sent_response = False
@@ -309,6 +311,7 @@ class TestCaseWithServer(TestCase):
# hook point
# should return (ServerClass, "shutdown method name", "url_scheme")
class _RequestHandler(simple_server.WSGIRequestHandler):
+
def log_request(*args):
pass # suppress
@@ -394,6 +397,7 @@ token3 = oauth.OAuthToken('kkkk3', 'ZYX')
class TestingOAuthDataStore(oauth.OAuthDataStore):
+
"""In memory predefined OAuthDataStore for testing."""
consumers = {
diff --git a/common/src/leap/soledad/common/tests/u1db_tests/test_backends.py b/common/src/leap/soledad/common/tests/u1db_tests/test_backends.py
index f26a4474..e777996e 100644
--- a/common/src/leap/soledad/common/tests/u1db_tests/test_backends.py
+++ b/common/src/leap/soledad/common/tests/u1db_tests/test_backends.py
@@ -78,6 +78,7 @@ def copy_oauth_http_database_for_test(test, db):
class TestAlternativeDocument(DocumentBase):
+
"""A (not very) alternative implementation of Document."""
diff --git a/common/src/leap/soledad/common/tests/u1db_tests/test_http_app.py b/common/src/leap/soledad/common/tests/u1db_tests/test_http_app.py
index c545aa55..3ca50d93 100644
--- a/common/src/leap/soledad/common/tests/u1db_tests/test_http_app.py
+++ b/common/src/leap/soledad/common/tests/u1db_tests/test_http_app.py
@@ -1134,6 +1134,7 @@ class TestPluggableSyncExchange(tests.TestCase):
def test_plugging(self):
class MySyncExchange(object):
+
def __init__(self, db, source_replica_uid, last_known_generation):
pass
diff --git a/common/src/leap/soledad/common/tests/util.py b/common/src/leap/soledad/common/tests/util.py
index cbd92b94..f7a2bd4e 100644
--- a/common/src/leap/soledad/common/tests/util.py
+++ b/common/src/leap/soledad/common/tests/util.py
@@ -186,6 +186,7 @@ def token_soledad_sync_target(test, path):
class BaseSoledadTest(BaseLeapTest, MockedSharedDBTest):
+
"""
Instantiates Soledad for usage in tests.
"""
@@ -314,6 +315,7 @@ class BaseSoledadTest(BaseLeapTest, MockedSharedDBTest):
# from: https://github.com/smcq/paisley/blob/master/paisley/test/util.py
# TODO: include license of above project.
class CouchDBWrapper(object):
+
"""
Wrapper for external CouchDB instance which is started and stopped for
testing.
@@ -331,7 +333,8 @@ class CouchDBWrapper(object):
print traceback.format_exc()
self.stop()
tries += 1
- raise Exception("Check your couchdb: Tried to start 3 times and failed badly")
+ raise Exception(
+ "Check your couchdb: Tried to start 3 times and failed badly")
def _try_start(self):
"""
@@ -358,7 +361,8 @@ class CouchDBWrapper(object):
# create the dirs from the template
mkdir_p(os.path.join(self.tempdir, 'lib'))
mkdir_p(os.path.join(self.tempdir, 'log'))
- args = ['/usr/bin/couchdb', '-n', '-a', defaultConfPath, '-a', confPath]
+ args = ['/usr/bin/couchdb', '-n',
+ '-a', defaultConfPath, '-a', confPath]
null = open('/dev/null', 'w')
self.process = subprocess.Popen(
@@ -418,6 +422,7 @@ stderr:
class CouchDBTestCase(unittest.TestCase, MockedSharedDBTest):
+
"""
TestCase base class for tests against a real CouchDB server.
"""
@@ -438,6 +443,7 @@ class CouchDBTestCase(unittest.TestCase, MockedSharedDBTest):
class CouchServerStateForTests(CouchServerState):
+
"""
This is a slightly modified CouchDB server state that allows for creating
a database.