From fd8d3cc1da5079c931a7ad897bff047509f27a40 Mon Sep 17 00:00:00 2001 From: Folker Bernitt Date: Mon, 31 Aug 2015 14:33:42 +0200 Subject: Ensure MailboxIndexerListener does not let exceptions escape. - Issue #445 --- .../test/unit/adapter/test_mailbox_indexer_listener.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'service/test/unit/adapter') diff --git a/service/test/unit/adapter/test_mailbox_indexer_listener.py b/service/test/unit/adapter/test_mailbox_indexer_listener.py index d107c68a..9ad3c94d 100644 --- a/service/test/unit/adapter/test_mailbox_indexer_listener.py +++ b/service/test/unit/adapter/test_mailbox_indexer_listener.py @@ -13,10 +13,13 @@ # # You should have received a copy of the GNU Affero General Public License # along with Pixelated. If not, see . -import unittest +from twisted.trial import unittest -from mockito import mock, when, verify +from mockito import mock, when, verify, any as ANY from pixelated.adapter.listeners.mailbox_indexer_listener import MailboxIndexerListener +from twisted.internet import defer + +from pixelated.adapter.listeners.mailbox_indexer_listener import logger class MailboxListenerTest(unittest.TestCase): @@ -52,3 +55,12 @@ class MailboxListenerTest(unittest.TestCase): verify(self.mail_store, times=1).get_mails('INBOX') self.assertIn({'missing_ident'}, self.mail_store.used_arguments) + + @defer.inlineCallbacks + def test_catches_exceptions_to_not_break_other_listeners(self): + when(logger).error(ANY()).thenReturn(None) + listener = MailboxIndexerListener('INBOX', self.mail_store) + + yield listener.newMessages(1, 1) + + verify(logger).error(ANY()) -- cgit v1.2.3