summaryrefslogtreecommitdiff
path: root/service
diff options
context:
space:
mode:
authorVictor Shyba <victor.shyba@gmail.com>2015-07-21 13:46:26 +0200
committerFolker Bernitt <fbernitt@thoughtworks.com>2015-08-11 17:00:26 +0200
commitaf42b2b5d475f216f22c5451322d6cb17c9b4f35 (patch)
treeb90fee898e55b51427f86e84a2b302e3fc2882b9 /service
parentdb8336579936ba4628a7636508a1faa91599b816 (diff)
fix testing on draft while sending mails
Diffstat (limited to 'service')
-rw-r--r--service/test/unit/adapter/test_mail_service.py47
1 files changed, 19 insertions, 28 deletions
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)