From af42b2b5d475f216f22c5451322d6cb17c9b4f35 Mon Sep 17 00:00:00 2001 From: Victor Shyba Date: Tue, 21 Jul 2015 13:46:26 +0200 Subject: fix testing on draft while sending mails --- service/test/unit/adapter/test_mail_service.py | 47 +++++++++++--------------- 1 file changed, 19 insertions(+), 28 deletions(-) (limited to 'service') diff --git a/service/test/unit/adapter/test_mail_service.py b/service/test/unit/adapter/test_mail_service.py index f5e29b0c..4ee99d3a 100644 --- a/service/test/unit/adapter/test_mail_service.py +++ b/service/test/unit/adapter/test_mail_service.py @@ -19,7 +19,7 @@ from pixelated.adapter.model.mail import InputMail, PixelatedMail from pixelated.adapter.services.mail_service import MailService from test.support.test_helper import mail_dict, leap_mail from mockito import mock, unstub, when, verify, verifyNoMoreInteractions, any -from twisted.internet.defer import Deferred +from twisted.internet import defer class TestMailService(unittest.TestCase): @@ -27,7 +27,9 @@ class TestMailService(unittest.TestCase): self.drafts = mock() self.querier = mock() self.mailboxes = mock() - self.mailboxes.drafts = self.drafts + + self.mailboxes.drafts = defer.succeed(self.drafts) + self.mailboxes.trash = mock() self.mailboxes.sent = mock() @@ -40,7 +42,7 @@ class TestMailService(unittest.TestCase): def test_send_mail(self): when(InputMail).from_dict(any()).thenReturn('inputmail') - when(self.mail_sender).sendmail(any()).thenReturn(Deferred()) + when(self.mail_sender).sendmail(any()).thenReturn(defer.Deferred()) sent_deferred = self.mail_service.send_mail(mail_dict()) @@ -50,43 +52,32 @@ class TestMailService(unittest.TestCase): return sent_deferred + @defer.inlineCallbacks def test_send_mail_removes_draft(self): - mail_ident = 'Some ident' - mail = mail_dict() - mail['ident'] = mail_ident when(InputMail).from_dict(any()).thenReturn('inputmail') - deferred = Deferred() - when(self.mail_sender).sendmail(any()).thenReturn(deferred) - sent_deferred = self.mail_service.send_mail(mail) - - verify(self.mail_sender).sendmail("inputmail") + deferred_success = defer.succeed(None) + when(self.mail_sender).sendmail(any()).thenReturn(deferred_success) - def assert_removed_from_drafts(_): - verify(self.drafts).remove(any()) + yield self.mail_service.send_mail({'ident': '12'}) - sent_deferred.addCallback(assert_removed_from_drafts) - sent_deferred.callback('Assume sending mail succeeded') - - return sent_deferred + verify(self.mail_sender).sendmail("inputmail") + verify(self.drafts).remove(any()) + @defer.inlineCallbacks def test_send_mail_does_not_delete_draft_on_error(self): when(InputMail).from_dict(any()).thenReturn('inputmail') - when(self.mail_sender).sendmail(any()).thenReturn(Deferred()) - - send_deferred = self.mail_service.send_mail(mail_dict()) - verify(self.mail_sender).sendmail("inputmail") + deferred_failure = defer.fail(Exception("Assume sending mail failed")) + when(self.mail_sender).sendmail(any()).thenReturn(deferred_failure) - def assert_not_removed_from_drafts(_): + try: + yield self.mail_service.send_mail({'ident': '12'}) + self.fail("send_mail is expected to raise if underlying call fails") + except: + verify(self.mail_sender).sendmail("inputmail") verifyNoMoreInteractions(self.drafts) - send_deferred.addErrback(assert_not_removed_from_drafts) - - send_deferred.errback(Exception('Assume sending mail failed')) - - return send_deferred - def test_mark_as_read(self): mail = mock() when(self.mail_service).mail(any()).thenReturn(mail) -- cgit v1.2.3