diff options
| author | Victor Shyba <victor.shyba@gmail.com> | 2015-10-09 11:53:07 -0300 | 
|---|---|---|
| committer | Victor Shyba <victor.shyba@gmail.com> | 2015-10-09 11:54:08 -0300 | 
| commit | 36b9261f609901b83da4f8915640eb6043530f01 (patch) | |
| tree | 69e2406a52c81825dba2fab45d3e2c2b18a6cb70 | |
| parent | 2897b27a7243681ebbec95c117887bdfc330b3a7 (diff) | |
adds a listener for SOLEDAD_INVALID_AUTH_TOKEN
--Issue #485
| -rw-r--r-- | service/pixelated/bitmask_libraries/soledad.py | 6 | ||||
| -rw-r--r-- | service/test/unit/bitmask_libraries/test_soledad.py | 17 | 
2 files changed, 23 insertions, 0 deletions
| diff --git a/service/pixelated/bitmask_libraries/soledad.py b/service/pixelated/bitmask_libraries/soledad.py index 0546a158..84f9c3a3 100644 --- a/service/pixelated/bitmask_libraries/soledad.py +++ b/service/pixelated/bitmask_libraries/soledad.py @@ -16,6 +16,11 @@  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 @@ -42,6 +47,7 @@ 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 af2cfd0a..2359a652 100644 --- a/service/test/unit/bitmask_libraries/test_soledad.py +++ b/service/test/unit/bitmask_libraries/test_soledad.py @@ -17,6 +17,7 @@ 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): @@ -59,3 +60,19 @@ 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) | 
