diff options
| author | Victor Shyba <victor1984@riseup.net> | 2016-11-19 04:13:52 -0300 | 
|---|---|---|
| committer | Victor Shyba <victor1984@riseup.net> | 2016-11-19 04:13:52 -0300 | 
| commit | eb5982c31f44468ecb9bf3dbcf36dde714e2e49a (patch) | |
| tree | 12529dbd6be5da60177c9713cd59f4b019e52516 | |
| parent | 0a467f58845d183df89e37010d9a4600c2ba4736 (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.
| -rw-r--r-- | testing/pytest.ini | 1 | ||||
| -rw-r--r-- | testing/test_soledad/util.py | 2 | ||||
| -rw-r--r-- | testing/tests/client/test_deprecated_crypto.py | 116 | 
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 | 
