Changeset 46:4ee1f9c08b22 for wokkel/test/helpers.py
- Timestamp:
- Dec 26, 2008, 2:40:11 PM (14 years ago)
- Branch:
- default
- Convert:
- svn:b33ecbfc-034c-dc11-8662-000475d9059e/trunk@140
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
wokkel/test/helpers.py
r10 r46 6 6 """ 7 7 8 from twisted.internet import defer 9 from twisted.words.xish import xpath 8 10 from twisted.words.xish.utility import EventDispatcher 11 12 from wokkel.generic import parseXml 9 13 10 14 class XmlStreamStub(object): … … 55 59 """ 56 60 self.xmlstream.dispatch(obj) 61 62 63 class TestableRequestHandlerMixin(object): 64 """ 65 Mixin for testing XMPPHandlers that process iq requests. 66 67 Handlers that use L{wokkel.subprotocols.IQHandlerMixin} define a 68 C{iqHandlers} attribute that lists the handlers to be called for iq 69 requests. This mixin provides L{handleRequest} to mimic the handler 70 processing for easier testing. 71 """ 72 73 def handleRequest(self, xml): 74 """ 75 Find a handler and call it directly. 76 77 @param xml: XML stanza that may yield a handler being called. 78 @type xml: C{str}. 79 @return: Deferred that fires with the result of a handler for this 80 stanza. If no handler was found, the deferred has its errback 81 called with a C{NotImplementedError} exception. 82 """ 83 handler = None 84 iq = parseXml(xml) 85 for queryString, method in self.service.iqHandlers.iteritems(): 86 if xpath.internQuery(queryString).matches(iq): 87 handler = getattr(self.service, method) 88 89 if handler: 90 d = defer.maybeDeferred(handler, iq) 91 else: 92 d = defer.fail(NotImplementedError()) 93 94 return d
Note: See TracChangeset
for help on using the changeset viewer.