summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorVictor Shyba <victor1984@riseup.net>2017-11-22 19:38:46 -0300
committerVictor Shyba <victor1984@riseup.net>2017-11-22 19:38:46 -0300
commit502a9d24516f8b8af32b27a8445726687c0c5bff (patch)
treec39d7465734577e1d27cc52c63e1c2576af080b5 /tests
parent54491b798ffd1c8e619c8cb94a8069f6f312dd95 (diff)
[test] improve isolation by avoiding _all_dbs
Accessing _all_dbs slows down the test and open possibilites for heisenbugs where some old leftover database can change code behavior. -- Resolves: #9001
Diffstat (limited to 'tests')
-rw-r--r--tests/couch/test_state.py21
1 files changed, 17 insertions, 4 deletions
diff --git a/tests/couch/test_state.py b/tests/couch/test_state.py
index 8b06676d..8599d173 100644
--- a/tests/couch/test_state.py
+++ b/tests/couch/test_state.py
@@ -1,4 +1,5 @@
import pytest
+import mock
from leap.soledad.common.couch import CONFIG_DOC_ID
from leap.soledad.common.couch import SCHEMA_VERSION
@@ -16,6 +17,14 @@ from twisted.internet import reactor
from twisted.web.client import HTTPConnectionPool, Agent
+def restricted_listing(function):
+ @mock.patch('leap.soledad.common.couch.check.list_dbs')
+ def _set_list(self, *args, **kwargs):
+ args[-1].return_value = defer.succeed([self.db.name])
+ return function(self, *args, **kwargs)
+ return _set_list
+
+
class CouchStateTests(CouchDBTestCase):
def setUp(self):
@@ -29,8 +38,9 @@ class CouchStateTests(CouchDBTestCase):
def tearDown(self):
yield self.pool.closeCachedConnections()
+ @restricted_listing
@defer.inlineCallbacks
- def test__check_db_schema_version_wrong_schema_version_raises(self):
+ def test__check_db_schema_version_wrong_schema_version_raises(self, lmock):
wrong_schema_version = SCHEMA_VERSION + 1
self.db.create(
{'_id': CONFIG_DOC_ID, SCHEMA_VERSION_KEY: wrong_schema_version})
@@ -38,8 +48,9 @@ class CouchStateTests(CouchDBTestCase):
yield _check_db_schema_version(
self.couch_url, self.db.name, None, agent=self.agent)
+ @restricted_listing
@defer.inlineCallbacks
- def test_check_schema_versions_wrong_schema_version_raises(self):
+ def test_check_schema_versions_wrong_schema_version_raises(self, lmock):
wrong_schema_version = SCHEMA_VERSION + 1
self.db.create(
{'_id': CONFIG_DOC_ID, SCHEMA_VERSION_KEY: wrong_schema_version})
@@ -48,15 +59,17 @@ class CouchStateTests(CouchDBTestCase):
with pytest.raises(Exception, match=expected_msg):
yield check_schema_versions(self.couch_url, agent=self.agent)
+ @restricted_listing
@defer.inlineCallbacks
- def test__check_db_schema_version_missing_config_doc_raises(self):
+ def test__check_db_schema_version_missing_config_doc_raises(self, lmock):
self.db.create({})
with pytest.raises(MissingCouchConfigDocumentError):
yield _check_db_schema_version(
self.couch_url, self.db.name, None, agent=self.agent)
+ @restricted_listing
@defer.inlineCallbacks
- def test_check_schema_versions_missing_config_doc_raises(self):
+ def test_check_schema_versions_missing_config_doc_raises(self, lmock):
self.db.create({})
expected_msg = 'Error checking CouchDB schema versions: ' \
'FirstError.*MissingCouchConfigDocumentError()'