From 4a0e23cf0b94ce1d9e4d8664532989ddd994dc88 Mon Sep 17 00:00:00 2001 From: Folker Bernitt Date: Mon, 4 May 2015 10:36:21 +0200 Subject: Changed maintenance load mails format from mbox to maildir. - Can now import mails from maildir (allows import of old mail accounts, too) - Flags currently supported: Replied, Seen - Issue #336 --- service/test/unit/fixtures/mailset/cur/.keep | 0 service/test/unit/fixtures/mailset/mbox00000000 | 12 --------- service/test/unit/fixtures/mailset/mbox00000001 | 12 --------- .../test/unit/fixtures/mailset/new/mbox00000000 | 12 +++++++++ .../test/unit/fixtures/mailset/new/mbox00000001 | 12 +++++++++ service/test/unit/fixtures/mailset/tmp/.keep | 0 service/test/unit/maintenance/test_commands.py | 30 +++++++++++++++++++--- 7 files changed, 50 insertions(+), 28 deletions(-) create mode 100644 service/test/unit/fixtures/mailset/cur/.keep delete mode 100644 service/test/unit/fixtures/mailset/mbox00000000 delete mode 100644 service/test/unit/fixtures/mailset/mbox00000001 create mode 100644 service/test/unit/fixtures/mailset/new/mbox00000000 create mode 100644 service/test/unit/fixtures/mailset/new/mbox00000001 create mode 100644 service/test/unit/fixtures/mailset/tmp/.keep (limited to 'service/test/unit') diff --git a/service/test/unit/fixtures/mailset/cur/.keep b/service/test/unit/fixtures/mailset/cur/.keep new file mode 100644 index 00000000..e69de29b diff --git a/service/test/unit/fixtures/mailset/mbox00000000 b/service/test/unit/fixtures/mailset/mbox00000000 deleted file mode 100644 index 3d01c203..00000000 --- a/service/test/unit/fixtures/mailset/mbox00000000 +++ /dev/null @@ -1,12 +0,0 @@ -From darby.senger@zemlak.biz -Subject: Itaque consequatur repellendus provident sunt quia. -To: carmel@murazikortiz.name -X-TW-Pixelated-Tags: nite, macro, trash -Date: Tue, 21 Apr 2015 08:43:27 +0000 (UTC) - -Dignissimos ducimus veritatis. Est tenetur consequatur quia occaecati. Vel sit sit voluptas. - -Earum distinctio eos. Accusantium qui sint ut quia assumenda. Facere dignissimos inventore autem sit amet. Pariatur voluptatem sint est. - -Ut recusandae praesentium aspernatur. Exercitationem amet placeat deserunt quae consequatur eum. Unde doloremque suscipit quia. - diff --git a/service/test/unit/fixtures/mailset/mbox00000001 b/service/test/unit/fixtures/mailset/mbox00000001 deleted file mode 100644 index fc76bba2..00000000 --- a/service/test/unit/fixtures/mailset/mbox00000001 +++ /dev/null @@ -1,12 +0,0 @@ -From madeline.littel@sanfordruel.com -Subject: Error illum dignissimos autem eos aspernatur. -To: phyllis@stiedemann.net -X-TW-Pixelated-Tags: instadaily, inspiration -Date: Tue, 21 Apr 2015 08:43:27 +0000 (UTC) - -Et inventore placeat aut. Sint eveniet labore perferendis nulla. Maiores rerum sunt perferendis. Voluptate iure hic et ut blanditiis ad veritatis. Labore occaecati rerum. - -Sit fugiat aliquam voluptates ipsum non. Dolor quo sapiente. Itaque sed odit velit. Qui et aspernatur et fugiat voluptas eum est. Et expedita eos rerum nisi ut eum vero. - -Ab et est cumque. Qui nostrum perferendis. Labore est tempora porro est quia deleniti consequatur. Fugit quis ipsa. - diff --git a/service/test/unit/fixtures/mailset/new/mbox00000000 b/service/test/unit/fixtures/mailset/new/mbox00000000 new file mode 100644 index 00000000..3d01c203 --- /dev/null +++ b/service/test/unit/fixtures/mailset/new/mbox00000000 @@ -0,0 +1,12 @@ +From darby.senger@zemlak.biz +Subject: Itaque consequatur repellendus provident sunt quia. +To: carmel@murazikortiz.name +X-TW-Pixelated-Tags: nite, macro, trash +Date: Tue, 21 Apr 2015 08:43:27 +0000 (UTC) + +Dignissimos ducimus veritatis. Est tenetur consequatur quia occaecati. Vel sit sit voluptas. + +Earum distinctio eos. Accusantium qui sint ut quia assumenda. Facere dignissimos inventore autem sit amet. Pariatur voluptatem sint est. + +Ut recusandae praesentium aspernatur. Exercitationem amet placeat deserunt quae consequatur eum. Unde doloremque suscipit quia. + diff --git a/service/test/unit/fixtures/mailset/new/mbox00000001 b/service/test/unit/fixtures/mailset/new/mbox00000001 new file mode 100644 index 00000000..fc76bba2 --- /dev/null +++ b/service/test/unit/fixtures/mailset/new/mbox00000001 @@ -0,0 +1,12 @@ +From madeline.littel@sanfordruel.com +Subject: Error illum dignissimos autem eos aspernatur. +To: phyllis@stiedemann.net +X-TW-Pixelated-Tags: instadaily, inspiration +Date: Tue, 21 Apr 2015 08:43:27 +0000 (UTC) + +Et inventore placeat aut. Sint eveniet labore perferendis nulla. Maiores rerum sunt perferendis. Voluptate iure hic et ut blanditiis ad veritatis. Labore occaecati rerum. + +Sit fugiat aliquam voluptates ipsum non. Dolor quo sapiente. Itaque sed odit velit. Qui et aspernatur et fugiat voluptas eum est. Et expedita eos rerum nisi ut eum vero. + +Ab et est cumque. Qui nostrum perferendis. Labore est tempora porro est quia deleniti consequatur. Fugit quis ipsa. + diff --git a/service/test/unit/fixtures/mailset/tmp/.keep b/service/test/unit/fixtures/mailset/tmp/.keep new file mode 100644 index 00000000..e69de29b diff --git a/service/test/unit/maintenance/test_commands.py b/service/test/unit/maintenance/test_commands.py index 6c881cb9..6f993106 100644 --- a/service/test/unit/maintenance/test_commands.py +++ b/service/test/unit/maintenance/test_commands.py @@ -19,10 +19,12 @@ import email from pixelated.maintenance import delete_all_mails, load_mails from pixelated.bitmask_libraries.session import LeapSession from leap.mail.imap.account import SoledadBackedAccount +from leap.mail.imap.fields import WithMsgFields from leap.soledad.client import Soledad from leap.soledad.common.document import SoledadDocument from mock import MagicMock, ANY from os.path import join, dirname +from twisted.internet import defer, reactor class TestCommands(unittest.TestCase): @@ -78,13 +80,33 @@ class TestCommands(unittest.TestCase): self.assertFalse(self.mailbox.called) def test_load_mails_adds_mails(self): + # given mail_root = join(dirname(__file__), '..', 'fixtures', 'mailset') + firstMailDeferred = defer.Deferred() + secondMailDeferred = defer.Deferred() + self.mailbox.addMessage.side_effect = [firstMailDeferred, secondMailDeferred] - foo = load_mails(self.args, [mail_root]) + # when + d = load_mails(self.args, [mail_root]) - self.assertTrue(self.mailbox.addMessage.called) - self.mailbox.addMessage.assert_any_call(self._mail_content(join(mail_root, 'mbox00000000')), flags=("\\RECENT",), notify_on_disk=False) - self.mailbox.addMessage.assert_any_call(self._mail_content(join(mail_root, 'mbox00000001')), flags=("\\RECENT",), notify_on_disk=False) + # then + def assert_mails_added(_): + self.assertTrue(self.mailbox.addMessage.called) + self.mailbox.addMessage.assert_any_call(self._mail_content(join(mail_root, 'new', 'mbox00000000')), flags=(WithMsgFields.RECENT_FLAG,), notify_on_disk=False) + self.mailbox.addMessage.assert_any_call(self._mail_content(join(mail_root, 'new', 'mbox00000001')), flags=(WithMsgFields.RECENT_FLAG,), notify_on_disk=False) + + def error_callack(err): + print err + self.assertTrue(False) + + d.addCallback(assert_mails_added) + d.addErrback(error_callack) + + # trigger callbacks for both mails + reactor.callLater(0, firstMailDeferred.callback, None) + reactor.callLater(0, secondMailDeferred.callback, None) + + return d def _mail_content(self, mail_file): with open(mail_file, 'r') as fp: -- cgit v1.2.3