summaryrefslogtreecommitdiff
path: root/service
diff options
context:
space:
mode:
authorVictor Shyba <victor.shyba@gmail.com>2015-07-17 22:12:08 +0200
committerFolker Bernitt <fbernitt@thoughtworks.com>2015-08-11 17:00:24 +0200
commit422c434224c965385a21d0d2948b005b6d44cccb (patch)
tree6a8bd9ff9ccc6c10994aed36f3cbc897fff35b62 /service
parent27ad1503842dd92d4d3a8697f3aec8140446780a (diff)
fix integration test_search
Diffstat (limited to 'service')
-rw-r--r--service/pixelated/adapter/search/__init__.py1
-rw-r--r--service/test/integration/test_search.py114
-rw-r--r--service/test/support/integration/app_test_client.py6
3 files changed, 60 insertions, 61 deletions
diff --git a/service/pixelated/adapter/search/__init__.py b/service/pixelated/adapter/search/__init__.py
index d2bd58c3..b8d3e7ca 100644
--- a/service/pixelated/adapter/search/__init__.py
+++ b/service/pixelated/adapter/search/__init__.py
@@ -152,7 +152,6 @@ class SearchEngine(object):
try:
with AsyncWriter(self._index) as writer:
for mail in mails:
- print 'Mail fdoc: %s' % mail.fdoc
self._index_mail(writer, mail)
if callback:
callback()
diff --git a/service/test/integration/test_search.py b/service/test/integration/test_search.py
index f90ed80f..38abb7f8 100644
--- a/service/test/integration/test_search.py
+++ b/service/test/integration/test_search.py
@@ -15,107 +15,103 @@
# along with Pixelated. If not, see <http://www.gnu.org/licenses/>.
from test.support.integration import SoledadTestBase, MailBuilder
+from twisted.internet import defer
class SearchTest(SoledadTestBase):
+ @defer.inlineCallbacks
def test_that_tags_returns_all_tags(self):
input_mail = MailBuilder().with_tags(['important']).build_input_mail()
- self.add_mail_to_inbox(input_mail)
+ yield self.add_mail_to_inbox(input_mail)
- d = self.get_tags()
+ all_tags = yield self.get_tags()
- def _assert(all_tags):
- all_tag_names = [t['name'] for t in all_tags]
- self.assertTrue('inbox' in all_tag_names)
- self.assertTrue('sent' in all_tag_names)
- self.assertTrue('trash' in all_tag_names)
- self.assertTrue('drafts' in all_tag_names)
- self.assertTrue('important' in all_tag_names)
- d.addCallback(_assert)
- return d
+ all_tag_names = [t['name'] for t in all_tags]
+ self.assertTrue('inbox' in all_tag_names)
+ self.assertTrue('sent' in all_tag_names)
+ self.assertTrue('trash' in all_tag_names)
+ self.assertTrue('drafts' in all_tag_names)
+ self.assertTrue('important' in all_tag_names)
+ @defer.inlineCallbacks
def test_that_tags_are_filtered_by_query(self):
input_mail = MailBuilder().with_tags(['ateu', 'catoa', 'luat', 'zuado']).build_input_mail()
- self.add_mail_to_inbox(input_mail)
+ yield self.add_mail_to_inbox(input_mail)
- d = self.get_tags(q=["at"], skipDefaultTags=["true"])
+ all_tags = yield self.get_tags(q=["at"], skipDefaultTags=["true"])
- def _assert(all_tags):
- all_tag_names = [t['name'] for t in all_tags]
- self.assertEqual(3, len(all_tag_names))
- self.assertTrue('ateu' in all_tag_names)
- self.assertTrue('catoa' in all_tag_names)
- self.assertTrue('luat' in all_tag_names)
-
- d.addCallback(_assert)
- return d
+ all_tag_names = [t['name'] for t in all_tags]
+ self.assertEqual(3, len(all_tag_names))
+ self.assertTrue('ateu' in all_tag_names)
+ self.assertTrue('catoa' in all_tag_names)
+ self.assertTrue('luat' in all_tag_names)
+ @defer.inlineCallbacks
def test_tags_with_multiple_words_are_searchable(self):
input_mail = MailBuilder().with_tags(['one tag four words']).build_input_mail()
- self.add_mail_to_inbox(input_mail)
+ yield self.add_mail_to_inbox(input_mail)
- first_page = self.get_mails_by_tag('"one tag four words"', page=1, window=1)
+ first_page = yield self.get_mails_by_tag('"one tag four words"', page=1, window=1)
self.assertEqual(len(first_page), 1)
+ @defer.inlineCallbacks
def test_that_default_tags_are_ignorable(self):
input_mail = MailBuilder().with_tags(['sometag']).build_input_mail()
- self.add_mail_to_inbox(input_mail)
+ yield self.add_mail_to_inbox(input_mail)
- d = self.get_tags(skipDefaultTags=["true"])
+ all_tags = yield self.get_tags(skipDefaultTags=["true"])
- def _assert(all_tags):
- all_tag_names = [t['name'] for t in all_tags]
- self.assertEqual(1, len(all_tag_names))
- self.assertTrue('sometag' in all_tag_names)
- d.addCallback(_assert)
- return d
+ all_tag_names = [t['name'] for t in all_tags]
+ self.assertEqual(1, len(all_tag_names))
+ self.assertTrue('sometag' in all_tag_names)
+ @defer.inlineCallbacks
def test_tags_count(self):
- self.add_multiple_to_mailbox(num=10, mailbox='inbox', flags=['\\Recent'])
- self.add_multiple_to_mailbox(num=5, mailbox='inbox', flags=['\\Seen'])
- self.add_multiple_to_mailbox(num=3, mailbox='inbox', flags=['\\Recent'], tags=['important', 'later'])
- self.add_multiple_to_mailbox(num=1, mailbox='inbox', flags=['\\Seen'], tags=['important'])
+ yield self.add_multiple_to_mailbox(num=10, mailbox='inbox', flags=['\\Recent'])
+ yield self.add_multiple_to_mailbox(num=5, mailbox='inbox', flags=['\\Seen'])
+ yield self.add_multiple_to_mailbox(num=3, mailbox='inbox', flags=['\\Recent'], tags=['important', 'later'])
+ yield self.add_multiple_to_mailbox(num=1, mailbox='inbox', flags=['\\Seen'], tags=['important'])
- d = self.get_tags()
+ tags_count = yield self.get_tags()
- def _assert(tags_count):
- self.assertEqual(self.get_count(tags_count, 'inbox')['total'], 19)
- self.assertEqual(self.get_count(tags_count, 'inbox')['read'], 6)
- self.assertEqual(self.get_count(tags_count, 'important')['total'], 4)
- self.assertEqual(self.get_count(tags_count, 'important')['read'], 1)
- d.addCallback(_assert)
- return d
+ self.assertEqual(self.get_count(tags_count, 'inbox')['total'], 19)
+ self.assertEqual(self.get_count(tags_count, 'inbox')['read'], 6)
+ self.assertEqual(self.get_count(tags_count, 'important')['total'], 4)
+ self.assertEqual(self.get_count(tags_count, 'important')['read'], 1)
+ @defer.inlineCallbacks
def test_search_mails_different_window(self):
input_mail = MailBuilder().build_input_mail()
input_mail2 = MailBuilder().build_input_mail()
- self.add_mail_to_inbox(input_mail)
- self.add_mail_to_inbox(input_mail2)
+ yield self.add_mail_to_inbox(input_mail)
+ yield self.add_mail_to_inbox(input_mail2)
- first_page = self.get_mails_by_tag('inbox', page=1, window=1)
+ first_page = yield self.get_mails_by_tag('inbox', page=1, window=1)
self.assertEqual(len(first_page), 1)
+ @defer.inlineCallbacks
def test_search_mails_with_multiple_pages(self):
input_mail = MailBuilder().build_input_mail()
input_mail2 = MailBuilder().build_input_mail()
- self.add_mail_to_inbox(input_mail)
- self.add_mail_to_inbox(input_mail2)
+ yield self.add_mail_to_inbox(input_mail)
+ yield self.add_mail_to_inbox(input_mail2)
- first_page = self.get_mails_by_tag('inbox', page=1, window=1)
- second_page = self.get_mails_by_tag('inbox', page=2, window=1)
+ first_page = yield self.get_mails_by_tag('inbox', page=1, window=1)
+ second_page = yield self.get_mails_by_tag('inbox', page=2, window=1)
idents = [input_mail.ident, input_mail2.ident]
self.assertIn(first_page[0].ident, idents)
self.assertIn(second_page[0].ident, idents)
+ @defer.inlineCallbacks
def test_page_zero_fetches_first_page(self):
input_mail = MailBuilder().build_input_mail()
- self.add_mail_to_inbox(input_mail)
- page = self.get_mails_by_tag('inbox', page=0, window=1)
+ yield self.add_mail_to_inbox(input_mail)
+ page = yield self.get_mails_by_tag('inbox', page=0, window=1)
self.assertEqual(page[0].ident, input_mail.ident)
def get_count(self, tags_count, mailbox):
@@ -123,22 +119,24 @@ class SearchTest(SoledadTestBase):
if tag['name'] == mailbox:
return tag['counts']
+ @defer.inlineCallbacks
def test_order_by_date(self):
input_mail = MailBuilder().with_date('2014-10-15T15:15').build_input_mail()
input_mail2 = MailBuilder().with_date('2014-10-15T15:16').build_input_mail()
- self.add_mail_to_inbox(input_mail)
- self.add_mail_to_inbox(input_mail2)
+ yield self.add_mail_to_inbox(input_mail)
+ yield self.add_mail_to_inbox(input_mail2)
- results = self.get_mails_by_tag('inbox')
+ results = yield self.get_mails_by_tag('inbox')
self.assertEqual(results[0].ident, input_mail2.ident)
self.assertEqual(results[1].ident, input_mail.ident)
+ @defer.inlineCallbacks
def test_search_base64_body(self):
body = u'bl\xe1'
input_mail = MailBuilder().with_body(body.encode('utf-8')).build_input_mail()
- self.add_mail_to_inbox(input_mail)
- results = self.search(body)
+ yield self.add_mail_to_inbox(input_mail)
+ results = yield self.search(body)
self.assertGreater(len(results), 0, 'No results returned from search')
self.assertEquals(results[0].ident, input_mail.ident)
diff --git a/service/test/support/integration/app_test_client.py b/service/test/support/integration/app_test_client.py
index e5c845cc..e139d879 100644
--- a/service/test/support/integration/app_test_client.py
+++ b/service/test/support/integration/app_test_client.py
@@ -170,13 +170,15 @@ class AppTestClient(object):
tags = 'tag:%s' % tag
return self.search(tags, page, window)
+ @defer.inlineCallbacks
def search(self, query, page=1, window=100):
- res, req = self.get("/mails", {
+ res, _ = self.get("/mails", {
'q': [query],
'w': [str(window)],
'p': [str(page)]
})
- return [ResponseMail(m) for m in res['mails']]
+ res = yield res
+ defer.returnValue([ResponseMail(m) for m in res['mails']])
def get_attachment(self, ident, encoding):
res, req = self.get("/attachment/%s" % ident, {'encoding': [encoding]}, as_json=False)