Changeset 98:c3b20ad2bb70 for wokkel
- Timestamp:
- Mar 7, 2011, 7:40:16 PM (11 years ago)
- Branch:
- default
- Location:
- wokkel
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
wokkel/subprotocols.py
r96 r98 11 11 12 12 from twisted.internet import defer 13 from twisted.python import log 13 from twisted.internet.error import ConnectionDone 14 from twisted.python import failure, log 14 15 from twisted.words.protocols.jabber import error, xmlstream 15 16 from twisted.words.protocols.jabber.xmlstream import toResponse … … 247 248 248 249 249 def _disconnected(self, _):250 def _disconnected(self, reason): 250 251 """ 251 252 Called when the stream has been closed. … … 258 259 self._initialized = False 259 260 261 # Twisted versions before 11.0 passed an XmlStream here. 262 if not hasattr(reason, 'trap'): 263 reason = failure.Failure(ConnectionDone()) 264 260 265 # Notify all child services which implement 261 266 # the IService interface 262 267 for e in self: 263 e.connectionLost( None)268 e.connectionLost(reason) 264 269 265 270 -
wokkel/test/test_subprotocols.py
r96 r98 11 11 from twisted.test import proto_helpers 12 12 from twisted.internet import defer 13 from twisted.python import failure 13 14 from twisted.words.xish import domish 14 15 from twisted.words.protocols.jabber import error, xmlstream … … 53 54 def connectionLost(self, reason): 54 55 self.doneLost += 1 56 57 58 59 class FailureReasonXMPPHandler(subprotocols.XMPPHandler): 60 """ 61 Dummy handler specifically for failure Reason tests. 62 """ 63 def __init__(self): 64 self.gotFailureReason = False 65 66 67 def connectionLost(self, reason): 68 if isinstance(reason, failure.Failure): 69 self.gotFailureReason = True 55 70 56 71 … … 235 250 def test_disconnected(self): 236 251 """ 237 Test that protocol handlers have their connectionLost method 238 called when the XML stream is disconnected. 239 """ 240 sm = self.streamManager 241 handler = DummyXMPPHandler() 242 handler.setHandlerParent(sm) 243 xs = xmlstream.XmlStream(xmlstream.Authenticator()) 244 sm._disconnected(xs) 252 Protocol handlers have connectionLost called on stream disconnect. 253 """ 254 sm = self.streamManager 255 handler = DummyXMPPHandler() 256 handler.setHandlerParent(sm) 257 sm._disconnected(None) 245 258 self.assertEquals(0, handler.doneMade) 246 259 self.assertEquals(0, handler.doneInitialized) 247 260 self.assertEquals(1, handler.doneLost) 261 262 263 def test_disconnectedReason(self): 264 """ 265 A L{STREAM_END_EVENT} results in L{StreamManager} firing the handlers 266 L{connectionLost} methods, passing a L{failure.Failure} reason. 267 """ 268 sm = self.streamManager 269 handler = FailureReasonXMPPHandler() 270 handler.setHandlerParent(sm) 271 xs = xmlstream.XmlStream(xmlstream.Authenticator()) 272 sm._disconnected(failure.Failure(Exception("no reason"))) 273 self.assertEquals(True, handler.gotFailureReason) 248 274 249 275
Note: See TracChangeset
for help on using the changeset viewer.