summaryrefslogtreecommitdiff
path: root/service/test
diff options
context:
space:
mode:
authorFolker Bernitt <fbernitt@thoughtworks.com>2014-10-08 18:06:28 +0200
committerFolker Bernitt <fbernitt@thoughtworks.com>2014-10-09 18:24:41 +0200
commit85264c9ab3052dd844016d3ec44cb8af43dd5869 (patch)
treed6a5cb6511039407fdef40804c5338347b71c551 /service/test
parentfb8782d3f66b1068153a9948a01864ee52e39b10 (diff)
Added whoosh as search engine (issue #94).
Diffstat (limited to 'service/test')
-rw-r--r--service/test/adapter/draft_service_test.py29
-rw-r--r--service/test/integration/delete_mail_test.py6
-rw-r--r--service/test/integration/mark_as_read_test.py2
-rw-r--r--service/test/integration/tags_test.py4
-rw-r--r--service/test/support/integration_helper.py14
-rw-r--r--service/test/unit/adapter/mail_service_test.py7
-rw-r--r--service/test/unit/adapter/pixelated_mailboxes_test.py17
-rw-r--r--service/test/unit/user_agent_test.py13
8 files changed, 57 insertions, 35 deletions
diff --git a/service/test/adapter/draft_service_test.py b/service/test/adapter/draft_service_test.py
new file mode 100644
index 00000000..92b25d36
--- /dev/null
+++ b/service/test/adapter/draft_service_test.py
@@ -0,0 +1,29 @@
+import unittest
+from pixelated.adapter.pixelated_mail import InputMail
+from pixelated.adapter.draft_service import DraftService
+import test_helper
+from mockito import *
+
+
+class DraftServiceTest(unittest.TestCase):
+
+ def setUp(self):
+ self.mailboxes = mock()
+ self.drafts_mailbox = mock()
+ self.draft_service = DraftService(self.mailboxes)
+ when(self.mailboxes).drafts().thenReturn(self.drafts_mailbox)
+
+ def test_add_draft(self):
+ mail = InputMail()
+ self.draft_service.create_draft(mail)
+
+ verify(self.drafts_mailbox).add(mail)
+
+ def test_update_draft(self):
+ mail = test_helper.input_mail()
+ when(self.drafts_mailbox).add(mail).thenReturn(mail)
+
+ self.draft_service.update_draft(mail.ident, mail)
+
+ inorder.verify(self.drafts_mailbox).add(mail)
+ inorder.verify(self.drafts_mailbox).remove(mail.ident)
diff --git a/service/test/integration/delete_mail_test.py b/service/test/integration/delete_mail_test.py
index 3d4a6af7..665c7793 100644
--- a/service/test/integration/delete_mail_test.py
+++ b/service/test/integration/delete_mail_test.py
@@ -26,13 +26,13 @@ class DeleteMailTest(unittest.TestCase, SoledadTestBase):
self.teardown_soledad()
def test_move_mail_to_trash_when_deleting(self):
- mail = MailBuilder().with_subject('Mail with tags').build_input_mail()
- self.pixelated_mailboxes.inbox().add(mail)
+ input_mail = MailBuilder().with_subject('Mail with tags').build_input_mail()
+ self.add_mail_to_inbox(input_mail)
inbox_mails = self.get_mails_by_tag('inbox')
self.assertEquals(1, len(inbox_mails))
- self.delete_mail(mail.ident)
+ self.delete_mail(input_mail.ident)
inbox_mails = self.get_mails_by_tag('inbox')
self.assertEquals(0, len(inbox_mails))
diff --git a/service/test/integration/mark_as_read_test.py b/service/test/integration/mark_as_read_test.py
index 2c95ebc1..5dd90d77 100644
--- a/service/test/integration/mark_as_read_test.py
+++ b/service/test/integration/mark_as_read_test.py
@@ -27,7 +27,7 @@ class MarkAsReadTest(unittest.TestCase, SoledadTestBase):
def test_mark_as_read(self):
input_mail = MailBuilder().build_input_mail()
- self.pixelated_mailboxes.inbox().add(input_mail)
+ self.add_mail_to_inbox(input_mail)
mails = self.get_mails_by_tag('inbox')
self.assertFalse('read' in mails[0].status)
diff --git a/service/test/integration/tags_test.py b/service/test/integration/tags_test.py
index e2ef1c0e..dea9fbd2 100644
--- a/service/test/integration/tags_test.py
+++ b/service/test/integration/tags_test.py
@@ -31,7 +31,7 @@ class TagsTest(unittest.TestCase, SoledadTestBase):
def test_add_tag_to_an_inbox_mail_and_query(self):
mail = MailBuilder().with_subject('Mail with tags').build_input_mail()
- self.pixelated_mailboxes.inbox().add(mail)
+ self.add_mail_to_inbox(mail)
self.post_tags(mail.ident, self._tags_json(['IMPORTANT']))
@@ -43,7 +43,7 @@ class TagsTest(unittest.TestCase, SoledadTestBase):
def test_addition_of_reserved_tags_is_not_allowed(self):
mail = MailBuilder().with_subject('Mail with tags').build_input_mail()
- self.pixelated_mailboxes.inbox().add(mail)
+ self.add_mail_to_inbox(mail)
response = self.post_tags(mail.ident, self._tags_json(['DRAFTS']))
self.assertEquals("None of the following words can be used as tags: drafts", response)
diff --git a/service/test/support/integration_helper.py b/service/test/support/integration_helper.py
index 616485ee..e776e3c3 100644
--- a/service/test/support/integration_helper.py
+++ b/service/test/support/integration_helper.py
@@ -21,8 +21,10 @@ import os
from mock import Mock
import shutil
from pixelated.adapter.mail_service import MailService
+from pixelated.adapter.search import SearchEngine
from pixelated.adapter.tag_index import TagIndex
from pixelated.adapter.tag_service import TagService
+from pixelated.adapter.draft_service import DraftService
import pixelated.user_agent
from pixelated.adapter.pixelated_mail import PixelatedMail, InputMail
from pixelated.adapter.pixelated_mailboxes import PixelatedMailBoxes
@@ -121,13 +123,19 @@ class SoledadTestBase:
PixelatedMail.from_email_address = self.mail_address
self.app = pixelated.user_agent.app.test_client()
self.account = FakeAccount()
+ self.pixelated_mailboxes = PixelatedMailBoxes(self.account)
self.mail_sender = mock()
self.tag_index = TagIndex(os.path.join(soledad_test_folder, 'tag_index'))
self.tag_service = TagService(self.tag_index)
- self.pixelated_mailboxes = PixelatedMailBoxes(self.account)
+ self.draft_service = DraftService(self.pixelated_mailboxes)
self.mail_service = MailService(self.pixelated_mailboxes, self.mail_sender, self.tag_service)
+ self.search_engine = SearchEngine()
+ self.search_engine.index_mails(self.mail_service.all_mails())
pixelated.user_agent.mail_service = self.mail_service
+ pixelated.user_agent.draft_service = self.draft_service
+ pixelated.user_agent.tag_service = self.tag_service
+ pixelated.user_agent.search_engine = self.search_engine
def get_mails_by_tag(self, tag):
response = json.loads(self.app.get("/mails?q=tag:" + tag).data)
@@ -151,6 +159,10 @@ class SoledadTestBase:
def mark_as_read(self, mail_ident):
self.app.post('/mail/' + mail_ident + '/read', content_type="application/json")
+ def add_mail_to_inbox(self, input_mail):
+ mail = self.pixelated_mailboxes.inbox().add(input_mail)
+ self.search_engine.index_mail(mail)
+
class ResponseMail:
def __init__(self, mail_dict):
diff --git a/service/test/unit/adapter/mail_service_test.py b/service/test/unit/adapter/mail_service_test.py
index 549ab05c..21f34b12 100644
--- a/service/test/unit/adapter/mail_service_test.py
+++ b/service/test/unit/adapter/mail_service_test.py
@@ -47,13 +47,6 @@ class TestMailService(unittest.TestCase):
verify(mail).mark_as_read()
- def test_create_draft(self):
- mail = ''
-
- self.mail_service.create_draft(mail)
-
- verify(self.mailboxes).add_draft(mail)
-
def test_delete_mail(self):
self.mail_service.delete_mail(1)
diff --git a/service/test/unit/adapter/pixelated_mailboxes_test.py b/service/test/unit/adapter/pixelated_mailboxes_test.py
index 8314f7f8..fce06a22 100644
--- a/service/test/unit/adapter/pixelated_mailboxes_test.py
+++ b/service/test/unit/adapter/pixelated_mailboxes_test.py
@@ -48,20 +48,3 @@ class PixelatedMailboxesTest(unittest.TestCase):
self.assertEqual(1, len(mails))
self.assertEqual("mail", mails[0])
-
- def test_add_draft(self):
- mail = InputMail()
- when(self.drafts_mailbox).add(mail).thenReturn(1)
-
- self.mailboxes.add_draft(mail)
-
- verify(self.drafts_mailbox).add(mail)
-
- def test_update_draft(self):
- mail = test_helper.input_mail()
- when(self.drafts_mailbox).add(mail).thenReturn(mail)
-
- self.mailboxes.update_draft(mail.ident, mail)
-
- inorder.verify(self.drafts_mailbox).add(mail)
- inorder.verify(self.drafts_mailbox).remove(mail.ident)
diff --git a/service/test/unit/user_agent_test.py b/service/test/unit/user_agent_test.py
index 22199333..83a35246 100644
--- a/service/test/unit/user_agent_test.py
+++ b/service/test/unit/user_agent_test.py
@@ -35,10 +35,14 @@ class UserAgentTest(unittest.TestCase):
self.app = pixelated.user_agent.app.test_client()
self.mail_service = mock()
self.tag_service = mock()
- self.mail_service.tag_service = self.tag_service
+ self.draft_service = mock()
+ self.search_engine = mock()
pixelated.user_agent.DISABLED_FEATURES = []
pixelated.user_agent.mail_service = self.mail_service
+ pixelated.user_agent.tag_service = self.tag_service
+ pixelated.user_agent.draft_service = self.draft_service
+ pixelated.user_agent.search_engine = self.search_engine
self.input_mail = None
pixelated.adapter.pixelated_mail.input_mail_from_dict = lambda x: self.input_mail
@@ -50,7 +54,7 @@ class UserAgentTest(unittest.TestCase):
self.app.post('/mails', data='{}', content_type="application/json")
- verify(self.mail_service).create_draft(self.input_mail)
+ verify(self.draft_service).create_draft(self.input_mail)
def test_create_or_send_draft_should_send_draft_if_mail_has_ident(self):
self.input_mail = self.draft()
@@ -61,6 +65,7 @@ class UserAgentTest(unittest.TestCase):
def test_sending_mail_return_sent_mail_data_when_send_succeeds(self):
self.input_mail = self.draft()
+ when(self.mail_service).send(1, self.input_mail).thenReturn(self.input_mail)
self.input_mail.as_dict = lambda: {'header': {'from': 'a@a.a', 'to': 'b@b.b'},
'ident': 1,
'tags': [],
@@ -89,11 +94,11 @@ class UserAgentTest(unittest.TestCase):
def test_update_draft(self):
self.input_mail = self.draft()
- when(self.mail_service).update_draft(1, self.input_mail).thenReturn(self.input_mail)
+ when(self.draft_service).update_draft(1, self.input_mail).thenReturn(self.input_mail)
self.app.put('/mails', data='{"ident":1}', content_type="application/json")
- verify(self.mail_service).update_draft(1, self.input_mail)
+ verify(self.draft_service).update_draft(1, self.input_mail)
def draft(self):
return test_helper.input_mail()