diff options
author | Victor Shyba <victor.shyba@gmail.com> | 2015-07-18 00:19:25 +0200 |
---|---|---|
committer | Folker Bernitt <fbernitt@thoughtworks.com> | 2015-08-11 17:00:24 +0200 |
commit | d415a3a89535278ee455c79f6ddf912cd383e4f0 (patch) | |
tree | cf06351c9c17e903ac8244b6e05b144ad2329744 /service/pixelated/adapter/services | |
parent | ad65388274feaea5f4e0c3df0aafeb800825491e (diff) |
fix integration.test_drafts
Diffstat (limited to 'service/pixelated/adapter/services')
-rw-r--r-- | service/pixelated/adapter/services/draft_service.py | 13 | ||||
-rw-r--r-- | service/pixelated/adapter/services/mail_service.py | 17 | ||||
-rw-r--r-- | service/pixelated/adapter/services/mailbox.py | 7 |
3 files changed, 20 insertions, 17 deletions
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 <http://www.gnu.org/licenses/>. +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): |