Ejemplo n.º 1
0
    def execute(self, jid, password, host,
                callback, extra_handlers=[], errback=None):

        jid.resource = randomResource()

        factory = client.DeferredClientFactory(jid, password)
        for handler in extra_handlers:
            handler.setHandlerParent(factory.streamManager)

        d = client.clientCreator(factory)

        def disconnect(result):
            factory.streamManager.xmlstream.sendFooter()
            factory.streamManager.xmlstream.transport.connector.disconnect()
            return result

        def defaultErrBack(error_stanza):
            log.error(error_stanza.getErrorMessage())
            log.error("StanzaError: %s" % error_stanza.value.stanza.toXml())

        d.addCallback(callback)
        d.addCallback(disconnect)

        if errback:
            d.addErrback(errback)
        else:
            d.addErrback(defaultErrBack)

        zr = getUtility(IZopeReactor)
        zr.reactor.callFromThread(zr.reactor.connectTCP,
                                  host, 5222, factory)
        return d
Ejemplo n.º 2
0
    def test_call(self):
        """
        The factory is passed to an SRVConnector and a connection initiated.
        """

        d1 = defer.Deferred()
        factory = client.DeferredClientFactory(JID('*****@*****.**'),
                                               'secret')

        def cb(connector):
            self.assertEqual('xmpp-client', connector.service)
            self.assertIsInstance(connector.domain, bytes)
            self.assertEqual(b'example.org', connector.domain)
            self.assertEqual(factory, connector.factory)

        def connect(connector):
            d1.callback(connector)

        d1.addCallback(cb)
        self.patch(client.SRVConnector, 'connect', connect)

        d2 = client.clientCreator(factory)
        self.assertEqual(factory.deferred, d2)

        return d1
Ejemplo n.º 3
0
    def execute(self, jid, password, host,
                callback, extra_handlers=[], errback=None):

        jid.resource = randomResource()

        factory = client.DeferredClientFactory(jid, password)
        for handler in extra_handlers:
            handler.setHandlerParent(factory.streamManager)

        d = client.clientCreator(factory)

        def disconnect(result):
            factory.streamManager.xmlstream.sendFooter()
            factory.streamManager.xmlstream.transport.connector.disconnect()
            return result

        def defaultErrBack(error_stanza):
            log.error(error_stanza.getErrorMessage())
            log.error("StanzaError: %s" % error_stanza.value.stanza.toXml())

        d.addCallback(callback)
        d.addCallback(disconnect)

        if errback:
            d.addErrback(errback)
        else:
            d.addErrback(defaultErrBack)

        zr = getUtility(IZopeReactor)
        zr.reactor.callFromThread(zr.reactor.connectTCP,
                                  host, 5222, factory)
        return d
Ejemplo n.º 4
0
    def test_call(self):
        """
        The factory is passed to an SRVConnector and a connection initiated.
        """

        d1 = defer.Deferred()
        factory = client.DeferredClientFactory(JID('*****@*****.**'),
                                               'secret')

        def cb(connector):
            self.assertEqual('xmpp-client', connector.service)
            self.assertIsInstance(connector.domain, bytes)
            self.assertEqual(b'example.org', connector.domain)
            self.assertEqual(factory, connector.factory)

        def connect(connector):
            d1.callback(connector)

        d1.addCallback(cb)
        self.patch(client.SRVConnector, 'connect', connect)

        d2 = client.clientCreator(factory)
        self.assertEqual(factory.deferred, d2)

        return d1
Ejemplo n.º 5
0
def createPurger(domain, service, node, username, password, debug=False):
    
    factory = client.DeferredClientFactory(jid.internJID(username), password)
    factory.streamManager.logTraffic = debug

    purger = Purger(jid.internJID(service), node)
    purger.setHandlerParent(factory.streamManager)

    yield client.clientCreator(factory)
Ejemplo n.º 6
0
def createPublisher(domain, service, node, username, password, blog, author=None, debug=False):
    
    factory = client.DeferredClientFactory(jid.internJID(username), password)
    factory.streamManager.logTraffic = debug

    blogger = Blogger(jid.internJID(service), node)
    blogger.blog = blog
    if author is not None:
        blogger.author_name = author
    blogger.setHandlerParent(factory.streamManager)

    yield client.clientCreator(factory)
Ejemplo n.º 7
0
def createClient(bosh, domain, debug):
    if bosh:
        factory = BOSHClientFactory(jid.internJID(domain), None)
    else:
        factory = ClientFactory(jid.internJID(domain), None)
    factory.streamManager.logTraffic = debug

    protocol = MessageProtocol()
    protocol.setHandlerParent(factory.streamManager)

    if bosh:
        yield boshClientCreator(bosh, factory)
    else:
        yield client.clientCreator(factory)
Ejemplo n.º 8
0
    def test_call(self):
        """
        The factory is passed to an SRVConnector and a connection initiated.
        """

        d1 = defer.Deferred()
        factory = client.DeferredClientFactory(JID("*****@*****.**"), "secret")

        def cb(connector):
            self.assertEqual("xmpp-client", connector.service)
            self.assertEqual("example.org", connector.domain)
            self.assertEqual(factory, connector.factory)

        def connect(connector):
            d1.callback(connector)

        d1.addCallback(cb)
        self.patch(client.SRVConnector, "connect", connect)

        d2 = client.clientCreator(factory)
        self.assertEqual(factory.deferred, d2)

        return d1