Changeset 63:b8139f79276f
- Timestamp:
- Jul 6, 2009, 9:26:47 AM (13 years ago)
- Branch:
- default
- Convert:
- svn:b33ecbfc-034c-dc11-8662-000475d9059e/trunk@175
- Location:
- wokkel
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
wokkel/compat.py
r53 r63 1 1 # -*- test-case-name: wokkel.test.test_compat -*- 2 2 # 3 # Copyright (c) 2001-200 8Twisted Matrix Laboratories.3 # Copyright (c) 2001-2009 Twisted Matrix Laboratories. 4 4 # See LICENSE for details. 5 5 6 6 from twisted.internet import protocol 7 7 from twisted.words.protocols.jabber import xmlstream 8 from twisted.words.xish import domish9 8 10 9 class BootstrapMixin(object): … … 95 94 self.installBootstraps(xs) 96 95 return xs 96 97 98 99 class IQ(xmlstream.IQ): 100 def __init__(self, *args, **kwargs): 101 # Make sure we have a reactor parameter 102 try: 103 reactor = kwargs['reactor'] 104 except KeyError: 105 from twisted.internet import reactor 106 kwargs['reactor'] = reactor 107 108 # Check if IQ's init accepts the reactor parameter 109 try: 110 xmlstream.IQ.__init__(self, *args, **kwargs) 111 except TypeError: 112 # Guess not. Remove the reactor parameter and try again. 113 del kwargs['reactor'] 114 xmlstream.IQ.__init__(self, *args, **kwargs) 115 116 # Patch the XmlStream instance so that it has a _callLater 117 self._xmlstream._callLater = reactor.callLater -
wokkel/disco.py
r62 r63 12 12 13 13 from twisted.internet import defer 14 from twisted.words.protocols.jabber import error, jid , xmlstream14 from twisted.words.protocols.jabber import error, jid 15 15 from twisted.words.xish import domish 16 16 17 17 from wokkel import data_form 18 from wokkel.compat import IQ 18 19 from wokkel.iwokkel import IDisco 19 20 from wokkel.subprotocols import IQHandlerMixin, XMPPHandler … … 346 347 347 348 348 class _DiscoRequest( xmlstream.IQ):349 class _DiscoRequest(IQ): 349 350 """ 350 351 Element representing an XMPP service discovery request. … … 362 363 @type nodeIdentifier: C{unicode} 363 364 """ 364 xmlstream.IQ.__init__(self, xs, "get")365 IQ.__init__(self, xs, "get") 365 366 query = self.addElement((namespace, 'query')) 366 367 if nodeIdentifier: -
wokkel/pubsub.py
r59 r63 1 1 # -*- test-case-name: wokkel.test.test_pubsub -*- 2 2 # 3 # Copyright (c) 2003-200 8Ralph Meijer3 # Copyright (c) 2003-2009 Ralph Meijer 4 4 # See LICENSE for details. 5 5 … … 15 15 from twisted.internet import defer 16 16 from twisted.python import log 17 from twisted.words.protocols.jabber import jid, error , xmlstream17 from twisted.words.protocols.jabber import jid, error 18 18 from twisted.words.xish import domish 19 19 20 20 from wokkel import disco, data_form, generic, shim 21 from wokkel.compat import IQ 21 22 from wokkel.subprotocols import IQHandlerMixin, XMPPHandler 22 23 from wokkel.iwokkel import IPubSubClient, IPubSubService, IPubSubResource … … 476 477 477 478 This renders all of the relevant parameters for this specific 478 requests into an L{ xmlstream.IQ}, and invoke its C{send} method.479 requests into an L{IQ}, and invoke its C{send} method. 479 480 This returns a deferred that fires upon reception of a response. See 480 L{ xmlstream.IQ} for details.481 L{IQ} for details. 481 482 482 483 @param xs: The XML stream to send the request on. … … 492 493 raise NotImplementedError() 493 494 494 iq = xmlstream.IQ(xs, self.stanzaType)495 iq = IQ(xs, self.stanzaType) 495 496 iq.addElement((childURI, 'pubsub')) 496 497 verbElement = iq.pubsub.addElement(childName) -
wokkel/test/test_compat.py
r53 r63 7 7 """ 8 8 9 from zope.interface import implements 9 10 from zope.interface.verify import verifyObject 10 from twisted.internet import defer, protocol11 from twisted.internet.interfaces import IProtocolFactory 11 from twisted.internet import protocol, task 12 from twisted.internet.interfaces import IProtocolFactory, IReactorTime 12 13 from twisted.trial import unittest 13 from twisted.words.xish import domish,utility14 from twisted.words.xish import utility 14 15 from twisted.words.protocols.jabber import xmlstream 15 from wokkel.compat import BootstrapMixin, XmlStreamServerFactory16 from wokkel.compat import BootstrapMixin, IQ, XmlStreamServerFactory 16 17 17 18 class DummyProtocol(protocol.Protocol, utility.EventDispatcher): … … 166 167 xs = self.factory.buildProtocol(None) 167 168 self.assertIdentical(self.factory, xs.factory) 169 170 171 172 class FakeReactor(object): 173 174 implements(IReactorTime) 175 def __init__(self): 176 self.clock = task.Clock() 177 self.callLater = self.clock.callLater 178 self.getDelayedCalls = self.clock.getDelayedCalls 179 180 181 182 class IQTest(unittest.TestCase): 183 """ 184 Tests for L{IQ}. 185 """ 186 187 def setUp(self): 188 self.reactor = FakeReactor() 189 self.clock = self.reactor.clock 190 191 192 def testRequestTimingOutEventDispatcher(self): 193 """ 194 Test that an iq request with a defined timeout times out. 195 """ 196 from twisted.words.xish import utility 197 output = [] 198 xs = utility.EventDispatcher() 199 xs.send = output.append 200 201 self.iq = IQ(xs, reactor=self.reactor) 202 self.iq.timeout = 60 203 d = self.iq.send() 204 self.assertFailure(d, xmlstream.TimeoutError) 205 206 self.clock.pump([1, 60]) 207 self.assertFalse(self.reactor.getDelayedCalls()) 208 self.assertFalse(xs.iqDeferreds) 209 return d -
wokkel/test/test_disco.py
r62 r63 526 526 527 527 response = toResponse(iq, u'result') 528 query =response.addElement((NS_DISCO_ITEMS, u'query'))528 response.addElement((NS_DISCO_ITEMS, u'query')) 529 529 self.stub.send(response) 530 530 … … 582 582 583 583 response = toResponse(iq, u'result') 584 query =response.addElement((NS_DISCO_INFO, u'query'))584 response.addElement((NS_DISCO_INFO, u'query')) 585 585 self.stub.send(response) 586 586 -
wokkel/xmppim.py
r28 r63 14 14 15 15 from twisted.words.protocols.jabber.jid import JID 16 from twisted.words.protocols.jabber.xmlstream import IQ17 16 from twisted.words.xish import domish 18 17 18 from wokkel.compat import IQ 19 19 from wokkel.subprotocols import XMPPHandler 20 20
Note: See TracChangeset
for help on using the changeset viewer.