summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDuda Dornelles <ddornell@thoughtworks.com>2014-10-17 14:46:39 +0200
committerDuda Dornelles <ddornell@thoughtworks.com>2014-10-17 14:46:39 +0200
commit790b641f5709bf5ac40c6c1151395ce7c18fa8fb (patch)
tree955d8a24c66e618ce88411abf6731fe2f1710ea9
parent362040299d52a33a2cf61f0a6e1111ec70a5263b (diff)
improving matching for filtering tags and fixing pep8 warnings
-rw-r--r--service/pixelated/adapter/search.py10
-rw-r--r--service/pixelated/support/functional.py2
-rw-r--r--service/test/integration/search_test.py9
3 files changed, 8 insertions, 13 deletions
diff --git a/service/pixelated/adapter/search.py b/service/pixelated/adapter/search.py
index cd02f09b..a187b444 100644
--- a/service/pixelated/adapter/search.py
+++ b/service/pixelated/adapter/search.py
@@ -35,7 +35,7 @@ class SearchEngine(object):
self._index = self._create_index()
def _add_to_tags(self, tags, group, skip_default_tags, count_type, query=None):
- query_matcher = re.compile(query) if query else re.compile(".*")
+ query_matcher = re.compile(".*%s.*" % query.lower()) if query else re.compile(".*")
for tag, count in group.iteritems():
@@ -111,7 +111,7 @@ class SearchEngine(object):
header = mdict['header']
tags = mdict.get('tags', [])
tags.append(mail.mailbox_name.lower())
-
+
index_data = {
'sender': unicode(header.get('from', '')),
'subject': unicode(header.get('subject', '')),
@@ -140,11 +140,7 @@ class SearchEngine(object):
def search(self, query, window=25, page=1, all_mails=False):
query = self.prepare_query(query)
-
- if(all_mails):
- return self._search_all_mails(query)
- else:
- return self._paginated_search_mails(query, window, page)
+ return self._search_all_mails(query) if all_mails else self._paginated_search_mails(query, window, page)
def _search_all_mails(self, query):
with self._index.searcher() as searcher:
diff --git a/service/pixelated/support/functional.py b/service/pixelated/support/functional.py
index 8d258635..734eba0b 100644
--- a/service/pixelated/support/functional.py
+++ b/service/pixelated/support/functional.py
@@ -23,4 +23,4 @@ def flatten(_list):
def unique(_list):
seen = set()
seen_add = seen.add
- return [ x for x in _list if not (x in seen or seen_add(x))]
+ return [x for x in _list if not (x in seen or seen_add(x))]
diff --git a/service/test/integration/search_test.py b/service/test/integration/search_test.py
index 04151b55..ac91f0b0 100644
--- a/service/test/integration/search_test.py
+++ b/service/test/integration/search_test.py
@@ -40,7 +40,7 @@ class SearchTest(unittest.TestCase, SoledadTestBase):
self.assertTrue('important' in all_tag_names)
def test_that_tags_are_filtered_by_query(self):
- input_mail = MailBuilder().with_tags(['ateu', 'atoa', 'atado', 'zuado']).build_input_mail()
+ input_mail = MailBuilder().with_tags(['ateu', 'catoa', 'luat', 'zuado']).build_input_mail()
self.add_mail_to_inbox(input_mail)
all_tags = self.get_tags('?q=at&skipDefaultTags=true')
@@ -48,8 +48,8 @@ class SearchTest(unittest.TestCase, SoledadTestBase):
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('atoa' in all_tag_names)
- self.assertTrue('atado' in all_tag_names)
+ self.assertTrue('catoa' in all_tag_names)
+ self.assertTrue('luat' in all_tag_names)
def test_that_default_tags_are_ignorable(self):
input_mail = MailBuilder().with_tags(['sometag']).build_input_mail()
@@ -83,7 +83,7 @@ class SearchTest(unittest.TestCase, SoledadTestBase):
first_page = self.get_mails_by_tag('inbox', page=1, window=1)
self.assertEqual(len(first_page), 1)
-
+
def test_search_mails_with_multiple_pages(self):
input_mail = MailBuilder().build_input_mail()
input_mail2 = MailBuilder().build_input_mail()
@@ -108,4 +108,3 @@ class SearchTest(unittest.TestCase, SoledadTestBase):
for tag in tags_count:
if tag['name'] == mailbox:
return tag['counts']
-