diff options
Diffstat (limited to 'testing/tests')
| -rw-r--r-- | testing/tests/couch/conftest.py | 31 | ||||
| -rw-r--r-- | testing/tests/couch/test_command.py | 8 | ||||
| -rw-r--r-- | testing/tests/couch/test_state.py | 23 | ||||
| -rw-r--r-- | testing/tests/perf/conftest.py | 4 | ||||
| -rw-r--r-- | testing/tests/server/test_server.py | 4 | 
5 files changed, 63 insertions, 7 deletions
diff --git a/testing/tests/couch/conftest.py b/testing/tests/couch/conftest.py new file mode 100644 index 00000000..1074f091 --- /dev/null +++ b/testing/tests/couch/conftest.py @@ -0,0 +1,31 @@ +import couchdb +import pytest +import random +import string + + +@pytest.fixture +def random_name(): +    return 'user-' + ''.join( +        random.choice( +            string.ascii_lowercase) for _ in range(10)) + + +class RandomDatabase(object): + +    def __init__(self, couch_url, name): +        self.couch_url = couch_url +        self.name = name +        self.server = couchdb.client.Server(couch_url) +        self.database = self.server.create(name) + +    def teardown(self): +        self.server.delete(self.name) + + +@pytest.fixture +def db(random_name, request): +    couch_url = request.config.getoption('--couch-url') +    db = RandomDatabase(couch_url, random_name) +    request.addfinalizer(db.teardown) +    return db diff --git a/testing/tests/couch/test_command.py b/testing/tests/couch/test_command.py index 6a96ebf9..68097fb1 100644 --- a/testing/tests/couch/test_command.py +++ b/testing/tests/couch/test_command.py @@ -9,7 +9,8 @@ from mock import Mock  class CommandBasedDBCreationTest(unittest.TestCase):      def test_ensure_db_using_custom_command(self): -        state = couch_state.CouchServerState("url", create_cmd="/bin/echo") +        state = couch_state.CouchServerState( +            "url", create_cmd="/bin/echo", check_schema_versions=False)          mock_db = Mock()          mock_db.replica_uid = 'replica_uid'          state.open_database = Mock(return_value=mock_db) @@ -18,11 +19,12 @@ class CommandBasedDBCreationTest(unittest.TestCase):          self.assertEquals(mock_db.replica_uid, replica_uid)      def test_raises_unauthorized_on_failure(self): -        state = couch_state.CouchServerState("url", create_cmd="inexistent") +        state = couch_state.CouchServerState( +            "url", create_cmd="inexistent", check_schema_versions=False)          self.assertRaises(u1db_errors.Unauthorized,                            state.ensure_database, "user-1337")      def test_raises_unauthorized_by_default(self): -        state = couch_state.CouchServerState("url") +        state = couch_state.CouchServerState("url", check_schema_versions=False)          self.assertRaises(u1db_errors.Unauthorized,                            state.ensure_database, "user-1337") diff --git a/testing/tests/couch/test_state.py b/testing/tests/couch/test_state.py new file mode 100644 index 00000000..a53ba076 --- /dev/null +++ b/testing/tests/couch/test_state.py @@ -0,0 +1,23 @@ +import pytest + +from leap.soledad.common.couch import CONFIG_DOC_ID +from leap.soledad.common.couch import SCHEMA_VERSION +from leap.soledad.common.couch import SCHEMA_VERSION_KEY +from leap.soledad.common.couch.state import CouchServerState + +from leap.soledad.common.errors import WrongCouchSchemaVersionError +from leap.soledad.common.errors import MissingCouchConfigDocumentError + + +def test_wrong_couch_version_raises(db): +    wrong_schema_version = SCHEMA_VERSION + 1 +    db.database.create( +        {'_id': CONFIG_DOC_ID, SCHEMA_VERSION_KEY: wrong_schema_version}) +    with pytest.raises(WrongCouchSchemaVersionError): +        CouchServerState(db.couch_url, create_cmd='/bin/echo') + + +def test_missing_config_doc_raises(db): +    db.database.create({}) +    with pytest.raises(MissingCouchConfigDocumentError): +        CouchServerState(db.couch_url, create_cmd='/bin/echo') diff --git a/testing/tests/perf/conftest.py b/testing/tests/perf/conftest.py index 3681025f..5ac1f3c0 100644 --- a/testing/tests/perf/conftest.py +++ b/testing/tests/perf/conftest.py @@ -193,8 +193,8 @@ def soledad_server(tmpdir_factory, request):  def txbenchmark(benchmark):      def blockOnThread(*args, **kwargs):          return threads.deferToThread( -                benchmark, threads.blockingCallFromThread, -                reactor, *args, **kwargs) +            benchmark, threads.blockingCallFromThread, +            reactor, *args, **kwargs)      return blockOnThread diff --git a/testing/tests/server/test_server.py b/testing/tests/server/test_server.py index 18f92d88..6bbcf002 100644 --- a/testing/tests/server/test_server.py +++ b/testing/tests/server/test_server.py @@ -43,8 +43,8 @@ from test_soledad.util import (  from leap.soledad.common import crypto  from leap.soledad.client import Soledad -from leap.soledad.server import load_configuration -from leap.soledad.server import CONFIG_DEFAULTS +from leap.soledad.server.config import load_configuration +from leap.soledad.server.config import CONFIG_DEFAULTS  from leap.soledad.server.auth import URLToAuthorization  from leap.soledad.server.auth import SoledadTokenAuthMiddleware  | 
