# HG changeset patch # Parent 4d60ea3a5ab59d48e5080c913f6aeea9af55fccb Add request method to XMPPHandler, passing up to its StreamManager. diff -r 4d60ea3a5ab5 wokkel/subprotocols.py --- a/wokkel/subprotocols.py Wed Aug 03 09:45:01 2011 +0200 +++ b/wokkel/subprotocols.py Wed Aug 03 09:46:32 2011 +0200 @@ -94,6 +94,18 @@ self.parent.send(obj) + def request(self, request): + """ + Send an IQ request and track the response. + + This passes the request to the parent for sending and response + tracking. + + @see: L{StreamManager.request}. + """ + return self.parent.request(request) + + class XMPPHandlerCollection(object): """ diff -r 4d60ea3a5ab5 wokkel/test/test_subprotocols.py --- a/wokkel/test/test_subprotocols.py Wed Aug 03 09:45:01 2011 +0200 +++ b/wokkel/test/test_subprotocols.py Wed Aug 03 09:46:32 2011 +0200 @@ -71,6 +71,15 @@ +class IQGetStanza(generic.Stanza): + timeout = None + + stanzaKind = 'iq' + stanzaType = 'get' + stanzaID = 'test' + + + class XMPPHandlerTest(unittest.TestCase): """ Tests for L{subprotocols.XMPPHandler}. @@ -126,6 +135,27 @@ self.assertIdentical(None, handler.xmlstream) + def test_request(self): + """ + A request is passed up to the stream manager. + """ + class DummyStreamManager(object): + def __init__(self): + self.requests = [] + + def request(self, request): + self.requests.append(request) + return defer.succeed(None) + + handler = subprotocols.XMPPHandler() + handler.parent = DummyStreamManager() + request = IQGetStanza() + d = handler.request(request) + self.assertEquals(1, len(handler.parent.requests)) + self.assertIdentical(request, handler.parent.requests[-1]) + return d + + class XMPPHandlerCollectionTest(unittest.TestCase): """ @@ -165,13 +195,6 @@ -class IQGetStanza(generic.Stanza): - stanzaKind = 'iq' - stanzaType = 'get' - stanzaID = 'test' - - - class StreamManagerTest(unittest.TestCase): """ Tests for L{subprotocols.StreamManager}.