From 87892a34544c3fee446288e0d52f30c774187bc7 Mon Sep 17 00:00:00 2001 From: Folker Bernitt Date: Mon, 12 Oct 2015 13:58:02 +0200 Subject: Move SOLEDAD_INVALID_AUTH_TOKEN listner to outermost user agent start - Issue #485 - Problem was that register starts ZMQ without a session every time soledad is used - This reverts commit 36b9261f609901b83da4f8915640eb6043530f01 --- service/pixelated/application.py | 10 ++++++++++ service/pixelated/bitmask_libraries/soledad.py | 6 ------ service/test/unit/bitmask_libraries/test_soledad.py | 17 ----------------- 3 files changed, 10 insertions(+), 23 deletions(-) diff --git a/service/pixelated/application.py b/service/pixelated/application.py index 1194a1a8..8502d5d1 100644 --- a/service/pixelated/application.py +++ b/service/pixelated/application.py @@ -28,6 +28,11 @@ from pixelated.config.site import PixelatedSite from pixelated.resources.loading_page import LoadingResource from pixelated.resources.root_resource import RootResource +from leap.common.events import ( + register, + catalog as events +) + @defer.inlineCallbacks def start_user_agent(loading_app, host, port, sslkey, sslcert, leap_home, leap_session): @@ -95,6 +100,11 @@ def initialize(): failure.printTraceback() reactor.stop() + def _register_shutdown_on_token_expire(leap_session): + register(events.SOLEDAD_INVALID_AUTH_TOKEN, lambda _: reactor.stop()) + return leap_session + + deferred.add_callback(_register_shutdown_on_token_expire) deferred.addErrback(_quit_on_error) reactor.run() diff --git a/service/pixelated/bitmask_libraries/soledad.py b/service/pixelated/bitmask_libraries/soledad.py index 84f9c3a3..0546a158 100644 --- a/service/pixelated/bitmask_libraries/soledad.py +++ b/service/pixelated/bitmask_libraries/soledad.py @@ -16,11 +16,6 @@ import errno import os -from twisted.internet import reactor -from leap.common.events import ( - register, - catalog as events -) from leap.soledad.client import Soledad from leap.soledad.common.crypto import WrongMacError, UnknownMacMethodError from pixelated.bitmask_libraries.certs import LeapCertificate @@ -47,7 +42,6 @@ class SoledadSessionFactory(object): class SoledadSession(object): def __init__(self, provider, encryption_passphrase, user_token, user_uuid): - register(events.SOLEDAD_INVALID_AUTH_TOKEN, lambda _: reactor.stop()) self.provider = provider self.config = provider.config self.user_uuid = user_uuid diff --git a/service/test/unit/bitmask_libraries/test_soledad.py b/service/test/unit/bitmask_libraries/test_soledad.py index 2359a652..af2cfd0a 100644 --- a/service/test/unit/bitmask_libraries/test_soledad.py +++ b/service/test/unit/bitmask_libraries/test_soledad.py @@ -17,7 +17,6 @@ from mock import patch from pixelated.bitmask_libraries.soledad import SoledadSession from pixelated.bitmask_libraries.certs import LeapCertificate from test_abstract_leap import AbstractLeapTest -from leap.common.events import catalog as events class SoledadSessionTest(AbstractLeapTest): @@ -60,19 +59,3 @@ class SoledadSessionTest(AbstractLeapTest): # then instance.sync.assert_called_with() - - @patch('pixelated.bitmask_libraries.soledad.Soledad') - @patch('leap.common.events.client') - def test_register_token_error_handler(self, events_mock, soledad_mock): - instance = soledad_mock.return_value - instance.server_url = '/foo/bar' - register_mock = events_mock.register - register_mock.register.return_value = None - # when - SoledadSession(self.provider, 'any-passphrase', self.auth.token, self.auth.uuid) - - # then - used_arguments = register_mock.call_args - self.assertIsNotNone(used_arguments) - used_arguments = used_arguments[0] - self.assertEqual(used_arguments[0], events.SOLEDAD_INVALID_AUTH_TOKEN) -- cgit v1.2.3