summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--service/pixelated/adapter/mailstore/leap_mailstore.py4
-rw-r--r--service/pixelated/adapter/services/mailboxes.py11
-rw-r--r--service/test/unit/adapter/test_mailboxes.py18
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)