summaryrefslogtreecommitdiff
path: root/service/test/unit/adapter/mailstore
diff options
context:
space:
mode:
authorFolker Bernitt <fbernitt@thoughtworks.com>2015-07-24 10:05:56 +0200
committerFolker Bernitt <fbernitt@thoughtworks.com>2015-08-11 17:00:27 +0200
commit634fd37726f753ea9928fb629c6cccec1f9d5885 (patch)
tree3a4472bbeaae40c8abcc3afb117e66f399af9aae /service/test/unit/adapter/mailstore
parentca2be15686064d3ece97261df72560a4f91ade4d (diff)
Added leap mailstore integration test.
Diffstat (limited to 'service/test/unit/adapter/mailstore')
-rw-r--r--service/test/unit/adapter/mailstore/test_leap_mailstore.py60
1 files changed, 38 insertions, 22 deletions
diff --git a/service/test/unit/adapter/mailstore/test_leap_mailstore.py b/service/test/unit/adapter/mailstore/test_leap_mailstore.py
index cee1dfd2..aa4e62fd 100644
--- a/service/test/unit/adapter/mailstore/test_leap_mailstore.py
+++ b/service/test/unit/adapter/mailstore/test_leap_mailstore.py
@@ -22,9 +22,8 @@ from leap.soledad.common.document import SoledadDocument
from twisted.internet.defer import FirstError
from twisted.trial.unittest import TestCase
from leap.mail import constants
-from leap.mail.imap.account import IMAPAccount
from twisted.internet import defer
-from mockito import mock, when
+from mockito import mock, when, verify, any
from leap.mail.adaptors.soledad import SoledadMailAdaptor
import pkg_resources
from leap.mail.mail import Message
@@ -66,13 +65,12 @@ class TestLeapMail(TestCase):
class TestLeapMailStore(TestCase):
def setUp(self):
- self.account = mock(mocked_obj=IMAPAccount)
self.soledad = mock()
self.mbox_uuid = str(uuid4())
@defer.inlineCallbacks
def test_get_mail_not_exist(self):
- store = LeapMailStore(self.account, self.soledad)
+ store = LeapMailStore(self.soledad)
mail = yield store.get_mail(_format_mdoc_id(uuid4(), 1))
@@ -80,9 +78,9 @@ class TestLeapMailStore(TestCase):
@defer.inlineCallbacks
def test_get_mail(self):
- mdoc_id = self._add_mail_fixture_to_soledad('mbox00000000')
+ mdoc_id, _ = self._add_mail_fixture_to_soledad('mbox00000000')
- store = LeapMailStore(self.account, self.soledad)
+ store = LeapMailStore(self.soledad)
mail = yield store.get_mail(mdoc_id)
@@ -94,10 +92,10 @@ class TestLeapMailStore(TestCase):
@defer.inlineCallbacks
def test_get_two_different_mails(self):
- first_mdoc_id = self._add_mail_fixture_to_soledad('mbox00000000')
- second_mdoc_id = self._add_mail_fixture_to_soledad('mbox00000001')
+ first_mdoc_id, _ = self._add_mail_fixture_to_soledad('mbox00000000')
+ second_mdoc_id, _ = self._add_mail_fixture_to_soledad('mbox00000001')
- store = LeapMailStore(self.account, self.soledad)
+ store = LeapMailStore(self.soledad)
mail1 = yield store.get_mail(first_mdoc_id)
mail2 = yield store.get_mail(second_mdoc_id)
@@ -108,12 +106,12 @@ class TestLeapMailStore(TestCase):
@defer.inlineCallbacks
def test_get_mails(self):
- first_mdoc_id = self._add_mail_fixture_to_soledad('mbox00000000')
- second_mdoc_id = self._add_mail_fixture_to_soledad('mbox00000001')
+ first_mdoc_id, _ = self._add_mail_fixture_to_soledad('mbox00000000')
+ second_mdoc_id, _ = self._add_mail_fixture_to_soledad('mbox00000001')
- store = LeapMailStore(self.account, self.soledad)
+ store = LeapMailStore(self.soledad)
- mails = yield store.get_mails([first_mdoc_id,second_mdoc_id])
+ mails = yield store.get_mails([first_mdoc_id, second_mdoc_id])
self.assertEqual(2, len(mails))
self.assertEqual('Itaque consequatur repellendus provident sunt quia.', mails[0].subject)
@@ -121,7 +119,7 @@ class TestLeapMailStore(TestCase):
@defer.inlineCallbacks
def test_get_mails_fails_for_invalid_mail_id(self):
- store = LeapMailStore(self.account, self.soledad)
+ store = LeapMailStore(self.soledad)
try:
yield store.get_mails(['invalid'])
@@ -131,16 +129,31 @@ class TestLeapMailStore(TestCase):
@defer.inlineCallbacks
def test_get_mail_with_body(self):
- mdoc_id = self._add_mail_fixture_to_soledad('mbox00000000')
+ expeted_body = 'Dignissimos ducimus veritatis. Est tenetur consequatur quia occaecati. Vel sit sit voluptas.\n\nEarum distinctio eos. Accusantium qui sint ut quia assumenda. Facere dignissimos inventore autem sit amet. Pariatur voluptatem sint est.\n\nUt recusandae praesentium aspernatur. Exercitationem amet placeat deserunt quae consequatur eum. Unde doloremque suscipit quia.\n\n'
+ mdoc_id, _ = self._add_mail_fixture_to_soledad('mbox00000000')
- store = LeapMailStore(self.account, self.soledad)
+ store = LeapMailStore(self.soledad)
mail = yield store.get_mail(mdoc_id, include_body=True)
- expeted_body = 'Dignissimos ducimus veritatis. Est tenetur consequatur quia occaecati. Vel sit sit voluptas.\n\nEarum distinctio eos. Accusantium qui sint ut quia assumenda. Facere dignissimos inventore autem sit amet. Pariatur voluptatem sint est.\n\nUt recusandae praesentium aspernatur. Exercitationem amet placeat deserunt quae consequatur eum. Unde doloremque suscipit quia.\n\n'
-
self.assertEqual(expeted_body, mail.body)
+ @defer.inlineCallbacks
+ def test_update_mail(self):
+ mdoc_id, flags_doc = self._add_mail_fixture_to_soledad('mbox00000000')
+ when(self.soledad).put_doc(flags_doc).thenReturn(defer.succeed(None))
+
+ store = LeapMailStore(self.soledad)
+
+ mail = yield store.get_mail(mdoc_id)
+
+ mail.tags.add('new_tag')
+
+ yield store.update_mail(mail)
+
+ verify(self.soledad).put_doc(flags_doc)
+ self.assertTrue('new_tag' in flags_doc.content['tags'])
+
def _add_mail_fixture_to_soledad(self, mail_file):
mail = self._load_mail_from_file(mail_file)
@@ -154,15 +167,18 @@ class TestLeapMailStore(TestCase):
cdoc_id = msg.get_wrapper().mdoc.cdocs[0]
when(self.soledad).get_doc(mdoc_id).thenReturn(defer.succeed(msg.get_wrapper().mdoc.serialize()))
- when(self.soledad).get_doc(fdoc_id).thenReturn(defer.succeed(msg.get_wrapper().fdoc.serialize()))
+
+ flags_doc = SoledadDocument(doc_id=fdoc_id, json=json.dumps(msg.get_wrapper().fdoc.serialize()))
+ when(self.soledad).get_doc(fdoc_id).thenReturn(defer.succeed(flags_doc))
+
+ # when(self.soledad).get_doc(fdoc_id).thenReturn(defer.succeed(msg.get_wrapper().fdoc.serialize()))
when(self.soledad).get_doc(hdoc_id).thenReturn(defer.succeed(msg.get_wrapper().hdoc.serialize()))
content = SoledadDocument(doc_id=cdoc_id, json=json.dumps(msg.get_wrapper().cdocs[1].serialize()))
when(self.soledad).get_doc(cdoc_id).thenReturn(defer.succeed(content))
- # when(self.soledad).get_doc(cdoc_id).thenReturn(defer.succeed(msg.get_wrapper().cdocs[1].serialize()))
- return mdoc_id
+ return mdoc_id, flags_doc
def _load_mail_from_file(self, mail_file):
mailset_dir = pkg_resources.resource_filename('test.unit.fixtures', 'mailset')
@@ -173,4 +189,4 @@ class TestLeapMailStore(TestCase):
def _format_mdoc_id(mbox_uuid, chash):
- return constants.METAMSGID.format(mbox_uuid=mbox_uuid, chash=chash) \ No newline at end of file
+ return constants.METAMSGID.format(mbox_uuid=mbox_uuid, chash=chash)