From d415a3a89535278ee455c79f6ddf912cd383e4f0 Mon Sep 17 00:00:00 2001 From: Victor Shyba Date: Sat, 18 Jul 2015 00:19:25 +0200 Subject: fix integration.test_drafts --- service/test/integration/test_drafts.py | 68 ++++++++++++++++----------------- 1 file changed, 34 insertions(+), 34 deletions(-) (limited to 'service/test/integration') diff --git a/service/test/integration/test_drafts.py b/service/test/integration/test_drafts.py index 3a0f120b..d0505d75 100644 --- a/service/test/integration/test_drafts.py +++ b/service/test/integration/test_drafts.py @@ -16,7 +16,7 @@ from test.support.integration import SoledadTestBase, MailBuilder from mockito import unstub, when, any -from twisted.internet.defer import Deferred +from twisted.internet import defer class DraftsTest(SoledadTestBase): @@ -24,14 +24,15 @@ class DraftsTest(SoledadTestBase): def tearDown(self): unstub() + @defer.inlineCallbacks def test_post_sends_mail_and_deletes_previous_draft_if_it_exists(self): - # act is if sending the mail by SMTP succeeded - sendmail_deferred = Deferred() + # act as if sending the mail by SMTP succeeded + sendmail_deferred = defer.Deferred() when(self.mail_sender).sendmail(any()).thenReturn(sendmail_deferred) # creates one draft first_draft = MailBuilder().with_subject('First draft').build_json() - first_draft_ident = self.put_mail(first_draft)[0]['ident'] + first_draft_ident = (yield self.put_mail(first_draft)[0])['ident'] # sends an updated version of the draft second_draft = MailBuilder().with_subject('Second draft').with_ident(first_draft_ident).build_json() @@ -39,69 +40,68 @@ class DraftsTest(SoledadTestBase): sendmail_deferred.callback(None) # SMTP succeeded - def onSuccess(mail): - sent_mails = self.get_mails_by_tag('sent') - drafts = self.get_mails_by_tag('drafts') + yield deferred_res - # make sure there is one email in the sent mailbox and it is the second draft - self.assertEquals(1, len(sent_mails)) - self.assertEquals('Second draft', sent_mails[0].subject) + sent_mails = yield self.get_mails_by_tag('sent') + drafts = yield self.get_mails_by_tag('drafts') - # make sure that there are no drafts in the draft mailbox - self.assertEquals(0, len(drafts)) + # make sure there is one email in the sent mailbox and it is the second draft + self.assertEquals(1, len(sent_mails)) + self.assertEquals('Second draft', sent_mails[0].subject) - deferred_res.addCallback(onSuccess) - return deferred_res + # make sure that there are no drafts in the draft mailbox + self.assertEquals(0, len(drafts)) + @defer.inlineCallbacks def test_post_sends_mail_even_when_draft_does_not_exist(self): - # act is if sending the mail by SMTP succeeded - sendmail_deferred = Deferred() + # act as if sending the mail by SMTP succeeded + sendmail_deferred = defer.Deferred() when(self.mail_sender).sendmail(any()).thenReturn(sendmail_deferred) first_draft = MailBuilder().with_subject('First draft').build_json() - deferred_res = self.post_mail(first_draft) + res = self.post_mail(first_draft) sendmail_deferred.callback(True) + yield res - def onSuccess(result): - sent_mails = self.get_mails_by_tag('sent') - drafts = self.get_mails_by_tag('drafts') - - self.assertEquals(1, len(sent_mails)) - self.assertEquals('First draft', sent_mails[0].subject) - self.assertEquals(0, len(drafts)) + sent_mails = yield self.get_mails_by_tag('sent') + drafts = yield self.get_mails_by_tag('drafts') - deferred_res.addCallback(onSuccess) - return deferred_res + self.assertEquals(1, len(sent_mails)) + self.assertEquals('First draft', sent_mails[0].subject) + self.assertEquals(0, len(drafts)) def post_mail(self, data): deferred_res, req = self.post('/mails', data) - deferred_res.callback(None) return deferred_res + @defer.inlineCallbacks def test_put_creates_a_draft_if_it_does_not_exist(self): mail = MailBuilder().with_subject('A new draft').build_json() - self.put_mail(mail) - mails = self.get_mails_by_tag('drafts') + yield self.put_mail(mail)[0] + mails = yield self.get_mails_by_tag('drafts') self.assertEquals('A new draft', mails[0].subject) + @defer.inlineCallbacks def test_put_updates_draft_if_it_already_exists(self): draft = MailBuilder().with_subject('First draft').build_json() - draft_ident = self.put_mail(draft)[0]['ident'] + draft_ident = (yield self.put_mail(draft)[0])['ident'] updated_draft = MailBuilder().with_subject('First draft edited').with_ident(draft_ident).build_json() - self.put_mail(updated_draft) + yield self.put_mail(updated_draft)[0] - drafts = self.get_mails_by_tag('drafts') + drafts = yield self.get_mails_by_tag('drafts') self.assertEquals(1, len(drafts)) self.assertEquals('First draft edited', drafts[0].subject) + @defer.inlineCallbacks def test_respond_unprocessable_entity_if_draft_to_remove_doesnt_exist(self): draft = MailBuilder().with_subject('First draft').build_json() - self.put_mail(draft) + yield self.put_mail(draft)[0] updated_draft = MailBuilder().with_subject('First draft edited').with_ident('NOTFOUND').build_json() - _, request = self.put_mail(updated_draft) + response, request = self.put_mail(updated_draft) + yield response self.assertEquals(422, request.code) -- cgit v1.2.3