diff options
| -rw-r--r-- | service/pixelated/adapter/mailstore/leap_mailstore.py | 4 | ||||
| -rw-r--r-- | service/pixelated/adapter/services/mailboxes.py | 11 | ||||
| -rw-r--r-- | service/test/unit/adapter/test_mailboxes.py | 18 | 
3 files changed, 14 insertions, 19 deletions
diff --git a/service/pixelated/adapter/mailstore/leap_mailstore.py b/service/pixelated/adapter/mailstore/leap_mailstore.py index 87bfea04..7bcd8a6a 100644 --- a/service/pixelated/adapter/mailstore/leap_mailstore.py +++ b/service/pixelated/adapter/mailstore/leap_mailstore.py @@ -23,9 +23,9 @@ from pixelated.adapter.model.mail import Mail  class LeapMail(Mail): -    def __init__(self, mail_id, headers, tags=set(), body=None): +    def __init__(self, mail_id, headers=None, tags=set(), body=None):          self._mail_id = mail_id -        self.headers = headers +        self.headers = headers if headers is not None else {}          self._body = body          self.tags = tags diff --git a/service/pixelated/adapter/services/mailboxes.py b/service/pixelated/adapter/services/mailboxes.py index 52c9c212..ce54055a 100644 --- a/service/pixelated/adapter/services/mailboxes.py +++ b/service/pixelated/adapter/services/mailboxes.py @@ -78,14 +78,13 @@ class Mailboxes(object):          return self._move_to(mail_id, self.trash)      def move_to_inbox(self, mail_id): -        return self._move_to(mail_id, self.inbox) +        # return self._move_to(mail_id, self.inbox) +        return self._move_to(mail_id, 'INBOX')      @defer.inlineCallbacks -    def _move_to(self, mail_id, mailbox): -        mailbox = yield mailbox -        mail = yield self.querier.mail(mail_id) -        mail.set_mailbox(mailbox.mailbox_name) -        mail.save() +    def _move_to(self, mail_id, mailbox_name): +        yield self.mail_store.add_mailbox(mailbox_name) +        mail = yield self.mail_store.move_mail_to_mailbox(mail_id, mailbox_name)          defer.returnValue(mail)      def mail(self, mail_id): diff --git a/service/test/unit/adapter/test_mailboxes.py b/service/test/unit/adapter/test_mailboxes.py index 814d36a1..daa37c0a 100644 --- a/service/test/unit/adapter/test_mailboxes.py +++ b/service/test/unit/adapter/test_mailboxes.py @@ -13,13 +13,12 @@  #  # You should have received a copy of the GNU Affero General Public License  # along with Pixelated. If not, see <http://www.gnu.org/licenses/>. -import unittest +from twisted.trial import unittest +from pixelated.adapter.mailstore.leap_mailstore import LeapMail -from pixelated.adapter.model.mail import PixelatedMail  from pixelated.adapter.services.mailboxes import Mailboxes -from mockito import mock, when, verify, any as ANY +from mockito import mock, when, verify  from twisted.internet import defer -from test.support import test_helper  from mock import MagicMock @@ -34,11 +33,8 @@ class PixelatedMailboxesTest(unittest.TestCase):      @defer.inlineCallbacks      def test_move_to_inbox(self): -        mail = PixelatedMail.from_soledad(*test_helper.leap_mail(), soledad_querier=self.querier) -        when(self.mail_store).mail(1).thenReturn(defer.succeed(mail)) -        when(self.mail_store).update_mail(ANY()).thenReturn(defer.succeed(None)) +        when(self.mail_store).move_mail_to_mailbox(1, 'INBOX').thenReturn(defer.succeed(LeapMail('2', None))) -        mail.set_mailbox('TRASH') -        recovered_mail = yield self.mailboxes.move_to_inbox(1) -        self.assertEquals('INBOX', recovered_mail.mailbox_name) -        verify(mail).save() +        moved_mail = yield self.mailboxes.move_to_inbox(1) + +        self.assertEqual('2', moved_mail.mail_id)  | 
