summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVictor Shyba <victor.shyba@gmail.com>2015-08-24 20:49:31 -0300
committerVictor Shyba <victor.shyba@gmail.com>2015-08-24 20:49:31 -0300
commitd0ae96039273ecc0c1d06f76209484ae420431f8 (patch)
tree26889e5daba02f2b9bf4beb701a336e7b88caa92
parent87553d5975084ff8a8c05ec876a2ce06c134bd3a (diff)
[bug] adapt MailboxIndexer to mail_store
-- Issue #439
-rw-r--r--service/pixelated/adapter/listeners/mailbox_indexer_listener.py14
-rw-r--r--service/test/unit/adapter/test_mailbox_indexer_listener.py20
2 files changed, 18 insertions, 16 deletions
diff --git a/service/pixelated/adapter/listeners/mailbox_indexer_listener.py b/service/pixelated/adapter/listeners/mailbox_indexer_listener.py
index 3af4e62e..ce056a3c 100644
--- a/service/pixelated/adapter/listeners/mailbox_indexer_listener.py
+++ b/service/pixelated/adapter/listeners/mailbox_indexer_listener.py
@@ -24,23 +24,25 @@ class MailboxIndexerListener(object):
@classmethod
@defer.inlineCallbacks
- def listen(cls, account, mailbox_name, soledad_querier):
- listener = MailboxIndexerListener(mailbox_name, soledad_querier)
+ def listen(cls, account, mailbox_name, mail_store):
+ listener = MailboxIndexerListener(mailbox_name, mail_store)
if listener not in (yield account.getMailbox(mailbox_name)).listeners:
mbx = yield account.getMailbox(mailbox_name)
mbx.addListener(listener)
- def __init__(self, mailbox_name, soledad_querier):
+ def __init__(self, mailbox_name, mail_store):
self.mailbox_name = mailbox_name
- self.querier = soledad_querier
+ self.mail_store = mail_store
+ @defer.inlineCallbacks
def newMessages(self, exists, recent):
indexed_idents = set(self.SEARCH_ENGINE.search('tag:' + self.mailbox_name.lower(), all_mails=True))
- soledad_idents = self.querier.idents_by_mailbox(self.mailbox_name)
+ soledad_idents = yield self.mail_store.get_mailbox_mail_ids(self.mailbox_name)
+ soledad_idents = set(soledad_idents)
missing_idents = soledad_idents.difference(indexed_idents)
- self.SEARCH_ENGINE.index_mails(self.querier.mails(missing_idents))
+ self.SEARCH_ENGINE.index_mails((yield self.mail_store.get_mails(missing_idents)))
def __eq__(self, other):
return other and other.mailbox_name == self.mailbox_name
diff --git a/service/test/unit/adapter/test_mailbox_indexer_listener.py b/service/test/unit/adapter/test_mailbox_indexer_listener.py
index 71c9cd15..d107c68a 100644
--- a/service/test/unit/adapter/test_mailbox_indexer_listener.py
+++ b/service/test/unit/adapter/test_mailbox_indexer_listener.py
@@ -21,7 +21,7 @@ from pixelated.adapter.listeners.mailbox_indexer_listener import MailboxIndexerL
class MailboxListenerTest(unittest.TestCase):
def setUp(self):
- self.querier = mock()
+ self.mail_store = mock()
self.account = mock()
self.account.mailboxes = []
@@ -32,11 +32,11 @@ class MailboxListenerTest(unittest.TestCase):
mailbox.listeners = set()
when(mailbox).addListener = lambda x: mailbox.listeners.add(x)
- self.assertNotIn(MailboxIndexerListener('INBOX', self.querier), mailbox.listeners)
+ self.assertNotIn(MailboxIndexerListener('INBOX', self.mail_store), mailbox.listeners)
- MailboxIndexerListener.listen(self.account, 'INBOX', self.querier)
+ MailboxIndexerListener.listen(self.account, 'INBOX', self.mail_store)
- self.assertIn(MailboxIndexerListener('INBOX', self.querier), mailbox.listeners)
+ self.assertIn(MailboxIndexerListener('INBOX', self.mail_store), mailbox.listeners)
def test_reindex_missing_idents(self):
search_engine = mock()
@@ -44,11 +44,11 @@ class MailboxListenerTest(unittest.TestCase):
MailboxIndexerListener.SEARCH_ENGINE = search_engine
- listener = MailboxIndexerListener('INBOX', self.querier)
- when(self.querier).idents_by_mailbox('INBOX').thenReturn({'ident1', 'ident2', 'missing_ident'})
- self.querier.used_arguments = []
- self.querier.mails = lambda x: self.querier.used_arguments.append(x)
+ listener = MailboxIndexerListener('INBOX', self.mail_store)
+ when(self.mail_store).get_mailbox_mail_ids('INBOX').thenReturn({'ident1', 'ident2', 'missing_ident'})
+ self.mail_store.used_arguments = []
+ self.mail_store.get_mails = lambda x: self.mail_store.used_arguments.append(x)
listener.newMessages(10, 5)
- verify(self.querier, times=1).idents_by_mailbox('INBOX')
- self.assertIn({'missing_ident'}, self.querier.used_arguments)
+ verify(self.mail_store, times=1).get_mails('INBOX')
+ self.assertIn({'missing_ident'}, self.mail_store.used_arguments)