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/pixelated/adapter/model/mail.py | 2 +- service/pixelated/adapter/services/draft_service.py | 13 ++++++++----- service/pixelated/adapter/services/mail_service.py | 17 ++++++++--------- service/pixelated/adapter/services/mailbox.py | 7 ++++--- .../pixelated/adapter/soledad/soledad_writer_mixin.py | 7 ++++--- 5 files changed, 25 insertions(+), 21 deletions(-) (limited to 'service/pixelated/adapter') diff --git a/service/pixelated/adapter/model/mail.py b/service/pixelated/adapter/model/mail.py index 552c2011..3cf97111 100644 --- a/service/pixelated/adapter/model/mail.py +++ b/service/pixelated/adapter/model/mail.py @@ -419,7 +419,7 @@ class PixelatedMail(Mail): self.fdoc.content['mbox'] = mailbox_name def remove_all_tags(self): - self.update_tags(set([])) + return self.update_tags(set([])) @defer.inlineCallbacks def update_tags(self, tags): diff --git a/service/pixelated/adapter/services/draft_service.py b/service/pixelated/adapter/services/draft_service.py index c8df0a05..5a0ee5f3 100644 --- a/service/pixelated/adapter/services/draft_service.py +++ b/service/pixelated/adapter/services/draft_service.py @@ -13,6 +13,7 @@ # # You should have received a copy of the GNU Affero General Public License # along with Pixelated. If not, see . +from twisted.internet import defer class DraftService(object): @@ -21,11 +22,13 @@ class DraftService(object): def __init__(self, mailboxes): self._mailboxes = mailboxes + @defer.inlineCallbacks def create_draft(self, input_mail): - pixelated_mail = self._mailboxes.drafts.add(input_mail) - return pixelated_mail + pixelated_mail = yield (yield self._mailboxes.drafts).add(input_mail) + defer.returnValue(pixelated_mail) + @defer.inlineCallbacks def update_draft(self, ident, input_mail): - pixelated_mail = self.create_draft(input_mail) - self._mailboxes.drafts.remove(ident) - return pixelated_mail + pixelated_mail = yield self.create_draft(input_mail) + yield (yield self._mailboxes.drafts).remove(ident) + defer.returnValue(pixelated_mail) diff --git a/service/pixelated/adapter/services/mail_service.py b/service/pixelated/adapter/services/mail_service.py index f98020a2..3dfbc9a7 100644 --- a/service/pixelated/adapter/services/mail_service.py +++ b/service/pixelated/adapter/services/mail_service.py @@ -69,24 +69,23 @@ class MailService(object): def attachment(self, attachment_id, encoding): return self.querier.attachment(attachment_id, encoding) + @defer.inlineCallbacks def mail_exists(self, mail_id): - return not(not(self.querier.get_header_by_chash(mail_id))) + defer.returnValue(not(not((yield self.querier.get_header_by_chash(mail_id))))) + @defer.inlineCallbacks def send_mail(self, content_dict): mail = InputMail.from_dict(content_dict) draft_id = content_dict.get('ident') - def move_to_sent(_): - return self.move_to_sent(draft_id, mail) - - deferred = self.mail_sender.sendmail(mail) - deferred.addCallback(move_to_sent) - return deferred + yield self.mail_sender.sendmail(mail) + yield self.move_to_sent(draft_id, mail) + @defer.inlineCallbacks def move_to_sent(self, last_draft_ident, mail): if last_draft_ident: - self.mailboxes.drafts.remove(last_draft_ident) - return self.mailboxes.sent.add(mail) + yield (yield self.mailboxes.drafts).remove(last_draft_ident) + defer.returnValue((yield (yield self.mailboxes.sent).add(mail))) def mark_as_read(self, mail_id): mail = self.mail(mail_id) diff --git a/service/pixelated/adapter/services/mailbox.py b/service/pixelated/adapter/services/mailbox.py index 479d0ee7..3ed311b2 100644 --- a/service/pixelated/adapter/services/mailbox.py +++ b/service/pixelated/adapter/services/mailbox.py @@ -39,11 +39,12 @@ class Mailbox(object): self.search_engine.index_mail(added_mail) defer.returnValue(added_mail) + @defer.inlineCallbacks def remove(self, ident): - mail = self.querier.mail(ident) + mail = yield self.querier.mail(ident) self.search_engine.remove_from_index(mail.ident) - mail.remove_all_tags() - self.querier.remove_mail(mail) + yield mail.remove_all_tags() + yield self.querier.remove_mail(mail) @classmethod def create(cls, mailbox_name, soledad_querier, search_engine): diff --git a/service/pixelated/adapter/soledad/soledad_writer_mixin.py b/service/pixelated/adapter/soledad/soledad_writer_mixin.py index bce7d083..2e45b7d1 100644 --- a/service/pixelated/adapter/soledad/soledad_writer_mixin.py +++ b/service/pixelated/adapter/soledad/soledad_writer_mixin.py @@ -46,8 +46,9 @@ class SoledadWriterMixin(SoledadDbFacadeMixin, object): defer.returnValue((yield self.mail(mail.ident))) + @defer.inlineCallbacks def remove_mail(self, mail): # FIX-ME: Must go through all the part_map phash to delete all the cdocs - self.delete_doc(mail.fdoc) - self.delete_doc(mail.hdoc) - self.delete_doc(mail.bdoc) + yield self.delete_doc(mail.fdoc) + yield self.delete_doc(mail.hdoc) + yield self.delete_doc(mail.bdoc) -- cgit v1.2.3