Exemplo n.º 1
0
    def setUp(self):

        soledad_adaptor.cleanup_deferred_locks()

        USERID = TEST_USER

        def setup_server(account):
            self.server = TestSoledadIMAPServer(account=account,
                                                contextFactory=self.serverCTX)
            self.server.theAccount = account

            d_server_ready = defer.Deferred()
            self.client = SimpleClient(d_server_ready,
                                       contextFactory=self.clientCTX)
            self.connected = d_server_ready

        def setup_account(_):
            self.parser = parser.Parser()

            # XXX this should be fixed in soledad.
            # Soledad sync makes trial block forever. The sync it's mocked to
            # fix this problem. _mock_soledad_get_from_index can be used from
            # the tests to provide documents.
            # TODO see here, possibly related?
            # -- http://www.pythoneye.com/83_20424875/
            self._soledad.sync = Mock()

            d = defer.Deferred()
            self.acc = IMAPAccount(self._soledad, USERID, d=d)
            return d

        d = super(IMAP4HelperMixin, self).setUp()
        d.addCallback(setup_account)
        d.addCallback(setup_server)
        return d
Exemplo n.º 2
0
    def setUp(self):
        cleanup_deferred_locks()
        try:
            del self._soledad
            del self.km
        except AttributeError:
            pass

        # pytest handles correctly the setupEnv for the class,
        # but trial ignores it.
        if not getattr(self, 'tempdir', None):
            self.tempdir = tempfile.mkdtemp()

        def getCollection(_):
            adaptor = SoledadMailAdaptor()
            store = self._soledad
            adaptor.store = store
            mbox_indexer = MailboxIndexer(store)
            mbox_name = "INBOX"
            mbox_uuid = str(uuid.uuid4())

            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)
            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

        def setUpFetcher(inbox_collection):
            self.fetcher = IncomingMail(
                self.km,
                self._soledad,
                inbox_collection,
                ADDRESS)

            # The messages don't exist on soledad will fail on deletion
            self.fetcher._delete_incoming_message = Mock(
                return_value=defer.succeed(None))

        d = KeyManagerWithSoledadTestCase.setUp(self)
        d.addCallback(getCollection)
        d.addCallback(setUpFetcher)
        d.addErrback(log.err)
        return d