summaryrefslogtreecommitdiff
path: root/testing
diff options
context:
space:
mode:
authorVictor Shyba <victor1984@riseup.net>2016-11-19 04:13:52 -0300
committerVictor Shyba <victor1984@riseup.net>2016-11-19 04:13:52 -0300
commiteb5982c31f44468ecb9bf3dbcf36dde714e2e49a (patch)
tree12529dbd6be5da60177c9713cd59f4b019e52516 /testing
parent0a467f58845d183df89e37010d9a4600c2ba4736 (diff)
[tests] migrate pytest to trial
test_deprecated_crypto was using pytest, which unfortunately doesnt work when mixed with trial. Migrated back. Also added norecursedirs option back, as it is necessary for parallel testing mode.
Diffstat (limited to 'testing')
-rw-r--r--testing/pytest.ini1
-rw-r--r--testing/test_soledad/util.py2
-rw-r--r--testing/tests/client/test_deprecated_crypto.py116
3 files changed, 72 insertions, 47 deletions
diff --git a/testing/pytest.ini b/testing/pytest.ini
index eb70b67c..9c9fc3b7 100644
--- a/testing/pytest.ini
+++ b/testing/pytest.ini
@@ -1,3 +1,4 @@
[pytest]
testpaths = tests
twisted = yes
+norecursedirs = tests/benchmarks
diff --git a/testing/test_soledad/util.py b/testing/test_soledad/util.py
index 4a705396..57f8199b 100644
--- a/testing/test_soledad/util.py
+++ b/testing/test_soledad/util.py
@@ -56,7 +56,7 @@ from leap.soledad.server.auth import SoledadTokenAuthMiddleware
PASSWORD = '123456'
-ADDRESS = 'leap@leap.se'
+ADDRESS = 'user-1234'
def make_local_db_and_target(test):
diff --git a/testing/tests/client/test_deprecated_crypto.py b/testing/tests/client/test_deprecated_crypto.py
index ca1b1558..8ee3735c 100644
--- a/testing/tests/client/test_deprecated_crypto.py
+++ b/testing/tests/client/test_deprecated_crypto.py
@@ -1,11 +1,16 @@
import json
-import pytest
+from twisted.internet import defer
+from uuid import uuid4
+from urlparse import urljoin
from leap.soledad.client import crypto as old_crypto
from leap.soledad.common.couch import CouchDatabase
from leap.soledad.common import crypto as common_crypto
from test_soledad.u1db_tests import simple_doc
+from test_soledad.util import SoledadWithCouchServerMixin
+from test_soledad.util import make_token_soledad_app
+from test_soledad.u1db_tests import TestCaseWithServer
def deprecate_client_crypto(client):
@@ -20,48 +25,67 @@ def couch_database(couch_url, uuid):
return db
-@pytest.inlineCallbacks
-def test_touch_updates_remote_representation(
- soledad_client, request):
-
- client = soledad_client()
- deprecated_client = deprecate_client_crypto(soledad_client())
-
- couch_url = request.config.option.couch_url
- remote = couch_database(couch_url, client._uuid)
-
- # ensure remote db is empty
- gen, docs = remote.get_all_docs()
- assert gen == 0
- assert len(docs) == 0
-
- # create a doc with deprecated client and sync
- yield deprecated_client.create_doc(json.loads(simple_doc))
- yield deprecated_client.sync()
-
- # check for doc in remote db
- gen, docs = remote.get_all_docs()
- assert gen == 1
- assert len(docs) == 1
- doc = docs.pop()
- content = doc.content
- assert common_crypto.ENC_JSON_KEY in content
- assert common_crypto.ENC_SCHEME_KEY in content
- assert common_crypto.ENC_METHOD_KEY in content
- assert common_crypto.ENC_IV_KEY in content
- assert common_crypto.MAC_KEY in content
- assert common_crypto.MAC_METHOD_KEY in content
-
- # "touch" the document with a newer client and synx
- _, docs = yield client.get_all_docs()
- yield client.put_doc(doc)
- yield client.sync()
-
- # check for newer representation of doc in remote db
- gen, docs = remote.get_all_docs()
- assert gen == 2
- assert len(docs) == 1
- doc = docs.pop()
- content = doc.content
- assert len(content) == 1
- assert 'raw' in content
+class DeprecatedCryptoTest(SoledadWithCouchServerMixin, TestCaseWithServer):
+
+ def setUp(self):
+ SoledadWithCouchServerMixin.setUp(self)
+ TestCaseWithServer.setUp(self)
+
+ def tearDown(self):
+ SoledadWithCouchServerMixin.tearDown(self)
+ TestCaseWithServer.tearDown(self)
+
+ @staticmethod
+ def make_app_with_state(state):
+ return make_token_soledad_app(state)
+
+ @defer.inlineCallbacks
+ def test_touch_updates_remote_representation(self):
+ self.startTwistedServer()
+ user = 'user-' + uuid4().hex
+ server_url = 'http://%s:%d' % (self.server_address)
+ client = self._soledad_instance(user=user, server_url=server_url)
+ deprecated_client = deprecate_client_crypto(
+ self._soledad_instance(user=user, server_url=server_url))
+
+ self.make_app()
+ remote = self.request_state._create_database(replica_uid=client._uuid)
+ remote = CouchDatabase.open_database(
+ urljoin(self.couch_url, 'user-' + user),
+ create=True)
+
+ # ensure remote db is empty
+ gen, docs = remote.get_all_docs()
+ assert gen == 0
+ assert len(docs) == 0
+
+ # create a doc with deprecated client and sync
+ yield deprecated_client.create_doc(json.loads(simple_doc))
+ yield deprecated_client.sync()
+
+ # check for doc in remote db
+ gen, docs = remote.get_all_docs()
+ assert gen == 1
+ assert len(docs) == 1
+ doc = docs.pop()
+ content = doc.content
+ assert common_crypto.ENC_JSON_KEY in content
+ assert common_crypto.ENC_SCHEME_KEY in content
+ assert common_crypto.ENC_METHOD_KEY in content
+ assert common_crypto.ENC_IV_KEY in content
+ assert common_crypto.MAC_KEY in content
+ assert common_crypto.MAC_METHOD_KEY in content
+
+ # "touch" the document with a newer client and synx
+ _, docs = yield client.get_all_docs()
+ yield client.put_doc(doc)
+ yield client.sync()
+
+ # check for newer representation of doc in remote db
+ gen, docs = remote.get_all_docs()
+ assert gen == 2
+ assert len(docs) == 1
+ doc = docs.pop()
+ content = doc.content
+ assert len(content) == 1
+ assert 'raw' in content