summaryrefslogtreecommitdiff
path: root/service
diff options
context:
space:
mode:
authorFolker Bernitt <fbernitt@thoughtworks.com>2015-07-21 08:00:34 +0000
committerFolker Bernitt <fbernitt@thoughtworks.com>2015-08-11 17:00:26 +0200
commitda3cb330b6959cb7c84b6200fa2041aa9e4f7c9c (patch)
treec83b81b96091b6b82352c64733a33172e428b2cd /service
parent4b433c6e9b18f6086fffbc250b8e6b2534dd0e77 (diff)
Fixed get_lastuid in test_soledad_querier.py.
Diffstat (limited to 'service')
-rw-r--r--service/pixelated/adapter/soledad/soledad_facade_mixin.py2
-rw-r--r--service/test/unit/adapter/test_soledad_querier.py51
2 files changed, 41 insertions, 12 deletions
diff --git a/service/pixelated/adapter/soledad/soledad_facade_mixin.py b/service/pixelated/adapter/soledad/soledad_facade_mixin.py
index bc12e8ff..81280eaa 100644
--- a/service/pixelated/adapter/soledad/soledad_facade_mixin.py
+++ b/service/pixelated/adapter/soledad/soledad_facade_mixin.py
@@ -82,7 +82,7 @@ class SoledadDbFacadeMixin(object):
mbox = (yield defer.maybeDeferred(self.get_mbox, mbox))[0]
indexer = MailboxIndexer(self.soledad)
- indexer.create_table(mbox.content['uuid'])
+ yield indexer.create_table(mbox.content['uuid'])
last_uuid = yield indexer.get_last_uid(mbox.content['uuid'])
defer.returnValue(last_uuid)
diff --git a/service/test/unit/adapter/test_soledad_querier.py b/service/test/unit/adapter/test_soledad_querier.py
index 160cb767..e15484d4 100644
--- a/service/test/unit/adapter/test_soledad_querier.py
+++ b/service/test/unit/adapter/test_soledad_querier.py
@@ -13,19 +13,24 @@
#
# You should have received a copy of the GNU Affero General Public License
# along with Pixelated. If not, see <http://www.gnu.org/licenses/>.
-import unittest
+from twisted.trial import unittest
import json
import base64
import quopri
+from uuid import uuid4
+import pixelated.adapter.soledad.soledad_facade_mixin
from pixelated.adapter.soledad.soledad_querier import SoledadQuerier
-from mockito import mock, when, any
+from mockito import mock, when, any, unstub
from twisted.internet import defer
import os
class SoledadQuerierTest(unittest.TestCase):
+ def tearDown(self):
+ unstub()
+
@defer.inlineCallbacks
def test_extract_parts(self):
soledad = mock()
@@ -135,27 +140,51 @@ class SoledadQuerierTest(unittest.TestCase):
yield call_with_bad_parameters(querier.idents_by_mailbox)
yield call_with_bad_parameters(querier.get_mbox)
- def test_get_lastuid(self):
+ def test_get_lastuid_broken(self):
+ # FIXME this is completely out of sync with the new implementation
soledad = mock()
mbox = mock()
mbox.content = {'lastuid': 0}
when(soledad).get_from_index('by-type-and-mbox', 'mbox', 'INBOX').thenReturn([mbox])
querier = SoledadQuerier(soledad)
- self.assertEquals(querier.get_lastuid(querier.get_mbox('INBOX')[0]), 0)
+ self.assertEquals(querier.get_lastuid(querier.get_mbox('INBOX')), 0)
mbox.content = {'lastuid': 1}
- self.assertEquals(querier.get_lastuid(querier.get_mbox('INBOX')[0]), 1)
+ self.assertEquals(querier.get_lastuid(querier.get_mbox('INBOX')), 1)
+
+ @defer.inlineCallbacks
+ def test_get_lastuid(self):
+ soledad = mock()
+ mbox = mock()
+ indexer = mock()
+ mbox.content = {'uuid': str(uuid4())}
+ when(soledad).get_from_index('by-type-and-mbox', 'mbox', 'INBOX').thenReturn(defer.succeed([mbox]))
+ querier = SoledadQuerier(soledad)
- def test_create_mail_increments_uid(self):
+ when(pixelated.adapter.soledad.soledad_facade_mixin).MailboxIndexer(soledad).thenReturn(indexer)
+ when(indexer).create_table(any()).thenReturn(defer.succeed(None))
+ when(indexer).get_last_uid(any()).thenReturn(defer.succeed(42))
+
+ last_uid = (yield querier.get_lastuid('INBOX'))
+
+ self.assertEquals(42, last_uid)
+
+ @defer.inlineCallbacks
+ def test_create_mail(self):
soledad = mock()
mbox = mock()
mail = mock()
+ indexer = mock()
+ mbox.content = {'uuid': 'some uuid'}
when(mail).get_for_save(next_uid=any(), mailbox='INBOX').thenReturn([])
- mbox.content = {'lastuid': 0}
- when(soledad).get_from_index('by-type-and-mbox', 'mbox', 'INBOX').thenReturn([mbox])
+ when(soledad).get_from_index('by-type-and-mbox', 'mbox', 'INBOX').thenReturn(defer.succeed([mbox]))
querier = SoledadQuerier(soledad)
when(querier).mail(any()).thenReturn([])
- self.assertEquals(querier.get_lastuid(querier.get_mbox('INBOX')[0]), 0)
- querier.create_mail(mail, 'INBOX')
- self.assertEquals(querier.get_lastuid(querier.get_mbox('INBOX')[0]), 1)
+ when(pixelated.adapter.soledad.soledad_facade_mixin).MailboxIndexer(soledad).thenReturn(indexer)
+ when(indexer).create_table(any()).thenReturn('')
+ when(indexer).get_last_uid('some uuid').thenReturn(defer.succeed(42))
+
+ mail_result = yield querier.create_mail(mail, 'INBOX')
+
+ self.assertEquals([], mail_result)