diff options
author | Folker Bernitt <fbernitt@thoughtworks.com> | 2015-08-03 17:49:25 +0200 |
---|---|---|
committer | Folker Bernitt <fbernitt@thoughtworks.com> | 2015-08-11 17:00:31 +0200 |
commit | 5f0df1ecb43ba0a3520047b49d50e840c9727afc (patch) | |
tree | 8a984e00b71433f0336afa337c59ecaafb38c998 /service/test | |
parent | 992f0b4f8832f7e5eb3e8e73737051bd585720e6 (diff) |
Added common LeapMailStore to soledad test base.
- provides instance to all integration tests
Diffstat (limited to 'service/test')
-rw-r--r-- | service/test/integration/test_leap_mailstore.py | 40 | ||||
-rw-r--r-- | service/test/support/integration/__init__.py | 1 | ||||
-rw-r--r-- | service/test/support/integration/soledad_test_base.py | 25 | ||||
-rw-r--r-- | service/test/support/integration/util.py | 26 |
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 |