summaryrefslogtreecommitdiff
path: root/service/test/support
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 /service/test/support
parent992f0b4f8832f7e5eb3e8e73737051bd585720e6 (diff)
Added common LeapMailStore to soledad test base.
- provides instance to all integration tests
Diffstat (limited to 'service/test/support')
-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
3 files changed, 51 insertions, 1 deletions
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