예제 #1
0
    def get_collection(self, mbox_collection=True, mbox_name=None,
                       mbox_uuid=None):
        """
        Get a collection for tests.
        """
        adaptor = SoledadMailAdaptor()
        store = self._soledad
        adaptor.store = store

        if mbox_collection:
            mbox_indexer = MailboxIndexer(store)
            mbox_name = mbox_name or "TestMbox"
            mbox_uuid = mbox_uuid or str(uuid.uuid4())
        else:
            mbox_indexer = mbox_name = None

        def get_collection_from_mbox_wrapper(wrapper):
            wrapper.uuid = mbox_uuid
            return MessageCollection(
                adaptor, store,
                mbox_indexer=mbox_indexer, mbox_wrapper=wrapper)

        d = adaptor.initialize_store(store)
        if mbox_collection:
            d.addCallback(lambda _: mbox_indexer.create_table(mbox_uuid))
        d.addCallback(lambda _: adaptor.get_or_create_mbox(store, mbox_name))
        d.addCallback(get_collection_from_mbox_wrapper)
        return d
예제 #2
0
class SoledadTestBase(unittest.TestCase, AppTestClient):
    # these are so long because our CI is so slow at the moment.
    DEFERRED_TIMEOUT = 120
    DEFERRED_TIMEOUT_LONG = 300

    @defer.inlineCallbacks
    def setUp(self):
        set_events_enabled(False)
        super(SoledadTestBase, self).setUp()
        self.adaptor = SoledadMailAdaptor()
        self.mbox_uuid = str(uuid4())
        yield self.start_client()

    def tearDown(self):
        set_events_enabled(True)
        self.cleanup()

    @defer.inlineCallbacks
    def _create_mail_in_soledad(self, mail):
        yield self.adaptor.initialize_store(self.soledad)
        mbox = yield self.adaptor.get_or_create_mbox(self.soledad, 'INBOX')
        message = self._convert_mail_to_leap_message(mail, mbox.uuid)
        yield self.adaptor.create_msg(self.soledad, message)

        defer.returnValue(message.get_wrapper().mdoc.doc_id)

    def _convert_mail_to_leap_message(self, mail, mbox_uuid):
        message = self.adaptor.get_msg_from_string(Message, mail.as_string())
        message.get_wrapper().set_mbox_uuid(mbox_uuid)
        return message
class SoledadTestBase(unittest.TestCase, AppTestClient):
    # these are so long because our CI is so slow at the moment.
    DEFERRED_TIMEOUT = 120
    DEFERRED_TIMEOUT_LONG = 300

    @defer.inlineCallbacks
    def setUp(self):
        set_events_enabled(False)
        super(SoledadTestBase, self).setUp()
        self.adaptor = SoledadMailAdaptor()
        self.mbox_uuid = str(uuid4())
        yield self.start_client()

    def tearDown(self):
        set_events_enabled(True)
        self.cleanup()

    @defer.inlineCallbacks
    def _create_mail_in_soledad(self, mail):
        yield self.adaptor.initialize_store(self.soledad)
        mbox = yield self.adaptor.get_or_create_mbox(self.soledad, "INBOX")
        message = self._convert_mail_to_leap_message(mail, mbox.uuid)
        yield self.adaptor.create_msg(self.soledad, message)

        defer.returnValue(message.get_wrapper().mdoc.doc_id)

    def _convert_mail_to_leap_message(self, mail, mbox_uuid):
        message = self.adaptor.get_msg_from_string(Message, mail.as_string())
        message.get_wrapper().set_mbox_uuid(mbox_uuid)
        return message