From ad65388274feaea5f4e0c3df0aafeb800825491e Mon Sep 17 00:00:00 2001 From: Victor Shyba Date: Fri, 17 Jul 2015 22:50:28 +0200 Subject: fixing integration.test_tags --- service/pixelated/adapter/model/mail.py | 9 ++++++--- service/pixelated/adapter/services/mail_service.py | 7 ++++--- service/pixelated/adapter/soledad/soledad_writer_mixin.py | 2 +- 3 files changed, 11 insertions(+), 7 deletions(-) (limited to 'service/pixelated/adapter') diff --git a/service/pixelated/adapter/model/mail.py b/service/pixelated/adapter/model/mail.py index ed82b55e..552c2011 100644 --- a/service/pixelated/adapter/model/mail.py +++ b/service/pixelated/adapter/model/mail.py @@ -30,6 +30,8 @@ from pixelated.adapter.model.status import Status from pixelated.support import date from pixelated.support.functional import compact +from twisted.internet import defer + logger = logging.getLogger(__name__) @@ -419,9 +421,10 @@ class PixelatedMail(Mail): def remove_all_tags(self): self.update_tags(set([])) + @defer.inlineCallbacks def update_tags(self, tags): - self._persist_mail_tags(tags) - return self.tags + yield self._persist_mail_tags(tags) + defer.returnValue(self.tags) def mark_as_read(self): if Status.SEEN in self.flags: @@ -444,7 +447,7 @@ class PixelatedMail(Mail): def _persist_mail_tags(self, current_tags): self.fdoc.content['tags'] = json.dumps(list(current_tags)) - self.save() + return self.save() def has_tag(self, tag): return tag in self.tags diff --git a/service/pixelated/adapter/services/mail_service.py b/service/pixelated/adapter/services/mail_service.py index 01f22570..f98020a2 100644 --- a/service/pixelated/adapter/services/mail_service.py +++ b/service/pixelated/adapter/services/mail_service.py @@ -38,17 +38,18 @@ class MailService(object): defer.returnValue((mails, total)) + @defer.inlineCallbacks def update_tags(self, mail_id, new_tags): new_tags = self._filter_white_space_tags(new_tags) reserved_words = extract_reserved_tags(new_tags) if len(reserved_words): raise ValueError('None of the following words can be used as tags: ' + ' '.join(reserved_words)) new_tags = self._favor_existing_tags_casing(new_tags) - mail = self.mail(mail_id) - mail.update_tags(set(new_tags)) + mail = yield self.mail(mail_id) + yield mail.update_tags(set(new_tags)) self.search_engine.index_mail(mail) - return mail + defer.returnValue(mail) def _filter_white_space_tags(self, tags): return [tag.strip() for tag in tags if not tag.isspace()] diff --git a/service/pixelated/adapter/soledad/soledad_writer_mixin.py b/service/pixelated/adapter/soledad/soledad_writer_mixin.py index 43e5d323..bce7d083 100644 --- a/service/pixelated/adapter/soledad/soledad_writer_mixin.py +++ b/service/pixelated/adapter/soledad/soledad_writer_mixin.py @@ -31,7 +31,7 @@ class SoledadWriterMixin(SoledadDbFacadeMixin, object): self.put_doc(rct) def save_mail(self, mail): - self.put_doc(mail.fdoc) + return self.put_doc(mail.fdoc) @defer.inlineCallbacks def create_mail(self, mail, mailbox_name): -- cgit v1.2.3