summaryrefslogtreecommitdiff
path: root/testing/tests/client
diff options
context:
space:
mode:
authorVictor Shyba <victor1984@riseup.net>2016-11-19 04:13:52 -0300
committerdrebs <drebs@leap.se>2016-12-12 09:15:21 -0200
commit1804b5f74a4efa6b25c06fe353ac960fd42e4fb6 (patch)
treee3e8a66c85758a8a0ab3af77dde367b1394474da /testing/tests/client
parent378a07113a713a7c25f0fb8510d18ecdae2198bd (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/tests/client')
-rw-r--r--testing/tests/client/test_deprecated_crypto.py116
1 files changed, 70 insertions, 46 deletions
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