summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFolker Bernitt <fbernitt@thoughtworks.com>2015-08-03 17:49:25 +0200
committerFolker Bernitt <fbernitt@thoughtworks.com>2015-08-11 17:00:31 +0200
commit5f0df1ecb43ba0a3520047b49d50e840c9727afc (patch)
tree8a984e00b71433f0336afa337c59ecaafb38c998
parent992f0b4f8832f7e5eb3e8e73737051bd585720e6 (diff)
Added common LeapMailStore to soledad test base.
- provides instance to all integration tests
-rw-r--r--service/test/integration/test_leap_mailstore.py40
-rw-r--r--service/test/support/integration/__init__.py1
-rw-r--r--service/test/support/integration/soledad_test_base.py25
-rw-r--r--service/test/support/integration/util.py26
4 files changed, 56 insertions, 36 deletions
diff --git a/service/test/integration/test_leap_mailstore.py b/service/test/integration/test_leap_mailstore.py
index d4589a1a..9481f063 100644
--- a/service/test/integration/test_leap_mailstore.py
+++ b/service/test/integration/test_leap_mailstore.py
@@ -13,15 +13,8 @@
#
# You should have received a copy of the GNU Affero General Public License
# along with Pixelated. If not, see <http://www.gnu.org/licenses/>.
-from email.parser import Parser
-from leap.mail.mail import Message
-import pkg_resources
-import os
-from pixelated.adapter.mailstore.leap_mailstore import LeapMailStore
-from test.support.integration import SoledadTestBase
-from leap.mail.adaptors.soledad import SoledadMailAdaptor
+from test.support.integration import SoledadTestBase, load_mail_from_file
from twisted.internet import defer
-from uuid import uuid4
class LeapMailStoreTest(SoledadTestBase):
@@ -29,13 +22,10 @@ class LeapMailStoreTest(SoledadTestBase):
@defer.inlineCallbacks
def setUp(self):
yield super(LeapMailStoreTest, self).setUp()
- self.adaptor = SoledadMailAdaptor()
- self.mbox_uuid = str(uuid4())
- self.store = LeapMailStore(self.soledad)
@defer.inlineCallbacks
def test_get_mail_with_body(self):
- mail = _load_mail_from_file('mbox00000000')
+ mail = load_mail_from_file('mbox00000000')
mail_id = yield self._create_mail_in_soledad(mail)
expected_mail_dict = {'body': u'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', 'header': {u'date': u'Tue, 21 Apr 2015 08:43:27 +0000 (UTC)', u'to': u'carmel@murazikortiz.name', u'x-tw-pixelated-tags': u'nite, macro, trash', u'from': u'darby.senger@zemlak.biz', u'subject': u'Itaque consequatur repellendus provident sunt quia.'}, 'ident': mail_id, 'tags': set([])}
@@ -45,7 +35,7 @@ class LeapMailStoreTest(SoledadTestBase):
@defer.inlineCallbacks
def test_all_mails(self):
- mail = _load_mail_from_file('mbox00000000')
+ mail = load_mail_from_file('mbox00000000')
yield self._create_mail_in_soledad(mail)
mails = yield self.store.all_mails()
@@ -56,7 +46,7 @@ class LeapMailStoreTest(SoledadTestBase):
@defer.inlineCallbacks
def test_add_and_remove_mail(self):
yield self.adaptor.initialize_store(self.soledad)
- mail = _load_mail_from_file('mbox00000000')
+ mail = load_mail_from_file('mbox00000000')
yield self.store.add_mailbox('INBOX')
msg = yield self.store.add_mail('INBOX', mail.as_string())
@@ -69,7 +59,7 @@ class LeapMailStoreTest(SoledadTestBase):
@defer.inlineCallbacks
def test_get_mailbox_mail_ids(self):
- mail = _load_mail_from_file('mbox00000000')
+ mail = load_mail_from_file('mbox00000000')
yield self.store.add_mailbox('INBOX')
mail = yield self.store.add_mail('INBOX', mail.as_string())
@@ -78,23 +68,3 @@ class LeapMailStoreTest(SoledadTestBase):
self.assertEqual(1, len(mails))
self.assertEqual(mail.mail_id, mails[0])
- @defer.inlineCallbacks
- def _create_mail_in_soledad(self, mail):
- message = self._convert_mail_to_leap_message(mail)
- yield self.adaptor.initialize_store(self.soledad)
- yield self.adaptor.create_msg(self.soledad, message)
-
- defer.returnValue(message.get_wrapper().mdoc.doc_id)
-
- def _convert_mail_to_leap_message(self, mail):
- message = self.adaptor.get_msg_from_string(Message, mail.as_string())
- message.get_wrapper().set_mbox_uuid(self.mbox_uuid)
- return message
-
-
-def _load_mail_from_file(mail_file):
- mailset_dir = pkg_resources.resource_filename('test.unit.fixtures', 'mailset')
- mail_file = os.path.join(mailset_dir, 'new', mail_file)
- with open(mail_file) as f:
- mail = Parser().parse(f)
- return mail
diff --git a/service/test/support/integration/__init__.py b/service/test/support/integration/__init__.py
index 8d0bbb7a..d590ae71 100644
--- a/service/test/support/integration/__init__.py
+++ b/service/test/support/integration/__init__.py
@@ -16,3 +16,4 @@
from .app_test_client import AppTestClient
from .model import MailBuilder, ResponseMail
from .soledad_test_base import SoledadTestBase
+from .util import load_mail_from_file \ No newline at end of file
diff --git a/service/test/support/integration/soledad_test_base.py b/service/test/support/integration/soledad_test_base.py
index 5fed3a12..1e3e3094 100644
--- a/service/test/support/integration/soledad_test_base.py
+++ b/service/test/support/integration/soledad_test_base.py
@@ -13,7 +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/>.
+from uuid import uuid4
+from leap.mail.adaptors.soledad import SoledadMailAdaptor
+from leap.mail.mail import Message
+from twisted.internet import defer
from twisted.trial import unittest
+from pixelated.adapter.mailstore import LeapMailStore
from test.support.integration.app_test_client import AppTestClient
from leap.common.events.flags import set_events_enabled
@@ -23,10 +28,28 @@ class SoledadTestBase(unittest.TestCase, AppTestClient):
DEFERRED_TIMEOUT = 120
DEFERRED_TIMEOUT_LONG = 300
+ @defer.inlineCallbacks
def setUp(self):
set_events_enabled(False)
- return self.start_client()
+ super(SoledadTestBase, self).setUp()
+ self.adaptor = SoledadMailAdaptor()
+ self.mbox_uuid = str(uuid4())
+ yield self.start_client()
+ self.store = LeapMailStore(self.soledad)
def tearDown(self):
set_events_enabled(True)
self.cleanup()
+
+ @defer.inlineCallbacks
+ def _create_mail_in_soledad(self, mail):
+ message = self._convert_mail_to_leap_message(mail)
+ yield self.adaptor.initialize_store(self.soledad)
+ yield self.adaptor.create_msg(self.soledad, message)
+
+ defer.returnValue(message.get_wrapper().mdoc.doc_id)
+
+ def _convert_mail_to_leap_message(self, mail):
+ message = self.adaptor.get_msg_from_string(Message, mail.as_string())
+ message.get_wrapper().set_mbox_uuid(self.mbox_uuid)
+ return message
diff --git a/service/test/support/integration/util.py b/service/test/support/integration/util.py
new file mode 100644
index 00000000..1d8ebbd2
--- /dev/null
+++ b/service/test/support/integration/util.py
@@ -0,0 +1,26 @@
+#
+# Copyright (c) 2014 ThoughtWorks, Inc.
+#
+# Pixelated is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# Pixelated is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with Pixelated. If not, see <http://www.gnu.org/licenses/>.
+from email.parser import Parser
+import os
+import pkg_resources
+
+
+def load_mail_from_file(mail_file):
+ mailset_dir = pkg_resources.resource_filename('test.unit.fixtures', 'mailset')
+ mail_file = os.path.join(mailset_dir, 'new', mail_file)
+ with open(mail_file) as f:
+ mail = Parser().parse(f)
+ return mail \ No newline at end of file